Gerenciar múltiplas contas AWS mantendo padronização, segurança e rastreabilidade é um desafio comum em ambientes enterprise.
Neste artigo, veremos como automatizar:
- Instalação do Zabbix Agent
- Instalação e configuração do Nginx
- Aplicação de patches de segurança
- Execução em múltiplas contas AWS
- Tudo sem SSH, utilizando:
- AWS Systems Manager
- Ansible
Arquitetura Proposta
Modelo centralizado:
- Conta de Automação (onde roda o Ansible)
- Múltiplas contas alvo
- Execução via SSM Run Command
- Controle via IAM cross-account
- Auditoria via AWS CloudTrail

Pré-requisitos
1️⃣ IAM Cross-Account
- Role em cada conta alvo com permissão:
ssm:SendCommandssm:StartSessionssm:ListCommandsec2:DescribeInstances
- Conta central usando
sts:AssumeRole
2️⃣ Instâncias preparadas
- SSM Agent instalado
- IAM Instance Profile com permissão para Systems Manager
- Porta 22 fechada (opcional, recomendado)
Estratégia de Execução com Ansible
O Ansible atuará como orquestrador, utilizando:
- AWS CLI
- Módulos AWS do Ansible
- Ou chamada direta ao SSM Run Command
Modelo:
Ansible → AWS API → Systems Manager → EC2

Playbook: Instalação do Nginx
Exemplo simplificado:
</> YAML
- name: Instalar Nginx
hosts: all
gather_facts: no
tasks:
- name: Instalar Nginx via SSM
command: >
aws ssm send-command
--document-name "AWS-RunShellScript"
--targets "Key=tag:Role,Values=web"
--parameters commands=["yum install -y nginx","systemctl enable nginx","systemctl start nginx"]
Esse modelo permite:
- Execução por tag
- Execução paralela
- Controle por conta/região
Playbook: Instalação do Zabbix Agent
Instalando o agente do Zabbix:
</> YAML
- name: Instalar Zabbix Agent
hosts: all
gather_facts: no
tasks:
- name: Instalar agente
command: >
aws ssm send-command
--document-name "AWS-RunShellScript"
--targets "Key=tag:Monitoring,Values=enabled"
--parameters commands=["yum install -y zabbix-agent",
"systemctl enable zabbix-agent",
"systemctl start zabbix-agent"]
Você pode incluir:
- Configuração automática do
zabbix_agentd.conf - Registro automático no servidor central

Patching Multi-Account com Patch Manager
O Systems Manager possui o Patch Manager nativo.
Fluxo recomendado:
- Criar Patch Baseline
- Criar Maintenance Window
- Registrar instâncias por tag
- Executar automaticamente
Ou via Ansible:
</> YAML
- name: Executar Patch via SSM
command: >
aws ssm send-command
--document-name "AWS-RunPatchBaseline"
--targets "Key=tag:PatchGroup,Values=production"
Vantagens:
- Execução controlada
- Janela de manutenção
- Rate control
- Relatórios centralizados
Estratégia Multi-Account
Para múltiplas contas:
- Ansible itera lista de contas
- Assume role em cada conta
- Executa comandos SSM
- Consolida resultados
Estrutura recomendada:
</> YAML accounts: - 111111111111 - 222222222222 - 333333333333 Cada execução gera:
- Logs no Systems Manager
- Eventos registrados no AWS CloudTrail

Benefícios de Segurança
✅ Eliminação de SSH
✅ Sem bastion host
✅ Controle granular via IAM
✅ Auditoria completa
✅ Execução por tag
✅ Escalável para centenas de instâncias
Boas Práticas
- Utilizar tags padronizadas (
Role,Environment,PatchGroup) - Isolar conta de automação
- Usar permissões mínimas necessárias
- Ativar logging do Session Manager
- Integrar resultados ao Security Hub ou SIEM
Conclusão
A combinação de:
- AWS Systems Manager
- Ansible
- Estratégia multi-account
Permite criar uma plataforma de automação centralizada, segura e auditável para:
- Instalar Nginx
- Instalar Zabbix Agent
- Aplicar patches
- Gerenciar ambientes em larga escala
Esse modelo elimina dependência de SSH e eleva o nível de governança operacional em ambientes AWS corporativos.



