Na DoiT, você encontra pessoas das mais diversas trajetórias, todas comprometidas em facilitar o seu dia a dia de trabalho. Se você já precisou acessar suas instâncias EC2 por VPN, sabe o quanto esse processo é cansativo. Automatizar o gerenciamento dessas instâncias sem precisar se conectar a cada uma seria uma baita vantagem. E melhor ainda seria poder centralizar essas automações em uma única interface, em vez de armazená-las em cada instância ou em uma golden image.
Em uma experiência anterior, passei por desafios parecidos quando comecei a gerenciar nossa frota de servidores AWS Active Directory e, ao mesmo tempo, precisava integrar novos colaboradores rapidamente. Foi aí que conheci o System Manager.
O que é o Systems Manager?
O Systems Manager é a resposta da AWS para gerenciar sua infraestrutura de forma inteligente. O agente instalado no computador recebe comandos das contas AWS e devolve informações, o que ajuda em várias frentes:
- Executa comandos Windows e Linux. Cada agente cria um usuário local chamado ssm-user, que pode rodar comandos na instância em bash, PowerShell e CMD. Você usa o IAM para controlar regras e permissões em vez de chaves SSH e regras de rede.
- Inventário e gerenciamento de patches. Faça o inventário dos aplicativos e patches instalados e defina uma política de patches para suas instâncias com base nas suas preferências e cronograma.
- Runbooks e Automação. Você pode criar documentos do Systems Manager com uma sequência de etapas a serem aplicadas em uma instância. Também dá para criar Systems Manager Automation, que interage com sua infraestrutura AWS por meio de uma role do IAM e de APIs da AWS, como EC2 ou Step Functions.
- Maintenance Windows permitem agendar e controlar a execução de runbooks com base em requisitos específicos de horário, disponibilidade e sucesso.
Hoje, vou te mostrar como habilitar esse serviço e se conectar às suas instâncias de forma interativa via SSM, usando o Session Manager.
Configuração do System Manager
Para usar o SSM, você precisa atender aos seguintes requisitos:
- A máquina precisa ter o agente instalado
- É preciso anexar uma role do IAM com permissões mínimas para o System Manager (chamada AmazonSSMManagedInstanceCore)
- A máquina precisa conseguir acessar a internet pela porta 443 ou usar 3 VPC endpoints
Quando você executa uma imagem fornecida pela AWS, o agente do System Manager já vem instalado por padrão na instância. Caso contrário, talvez seja preciso rodar um dos comandos abaixo:
#Se você estiver em um sistema baseado em Red Hat
sudo yum install amazon-ssm-agent
#Se você estiver em um sistema baseado em Debian
sudo apt-get install amazon-ssm-agent
#Após a instalação, inicie o serviço
sudo systemctl start amazon-ssm-agent
O segundo ponto exige anexar ou atualizar a instance role usada na sua máquina. Você precisa atribuir um conjunto de permissões gerenciadas chamado AmazonSSMManagedInstanceCore, que permite ao recurso interagir diretamente com o serviço da AWS com um conjunto limitado de permissões. Assim, você evita guardar credenciais na instância e o risco de perdê-las.
Se você ainda não tem nenhuma role configurada, dá para aproveitar a Default Host Management Configuration:
- Acesse o console do AWS System Manager e selecione Fleet Manager à esquerda. Confirme que você está na região correta, onde fica a maior parte das suas instâncias EC2.
- Em Account Management e Configure Default Host Management Configuration, ative Enable Default Host Management Configuration.
- Será solicitado que você escolha uma role do IAM; você pode usar a opção recomendada para criar uma nova Instance Management role padrão.

Ao criar a role do IAM padrão de gerenciamento de host, você pode optar por criar uma nova role ou usar uma existente
- Conclua a configuração clicando em Configure.
Todas as instâncias da região devem conseguir acessar o endpoint do System Manager usando a role padrão que você criou.
Quanto ao último ponto, é provável que a maior parte das configurações de rede já permita o acesso à internet pela porta 443. Se não for o seu caso, veja a seguir um resumo dos requisitos de rede.
O agente SSM precisa, no mínimo, conseguir contatar estes endereços na porta 443:
ssm.==region==.amazonaws.com
ssmmessages.==region==.amazonaws.com
ec2messages.==region==.amazonaws.com
Se você não libera acesso externo, pode criar Amazon VPC Endpoints para habilitar o acesso. No entanto, será preciso configurá-los em cada região em que forem usados, e ainda assim você precisa caprichar na configuração de rede para que a maioria das instâncias consiga se comunicar com o serviço. Recomendo habilitar esses endpoints em uma VPC de serviço.
Usando o Session Manager
Se você tem as credenciais corretas e acesso ao IAM, agora pode se conectar a essas instâncias diretamente, de qualquer lugar.
Se estiver rodando uma instância Windows e quiser usar a GUI, abra o Fleet Manager, selecione sua instância e clique em Connect with Remote Desktop.

A interface do Fleet Manager, onde você visualiza e se conecta às suas instâncias remotas
Como o Windows exige uma senha para a conta de administração, você precisa ter as credenciais ou ter configurado a instância com um Key Pair. A AWS o utiliza para derivar uma senha para a conta de administrador.

Interface para se conectar remotamente a instâncias usando Remote Desktop
Depois de clicar no botão de conectar, o System Manager cuida da conexão criando um túnel seguro do seu computador até a instância que você quer gerenciar, e você pode retomar suas tarefas de administração de qualquer lugar do mundo.

Interface de uma conexão remota a um Windows Remote Desktop
Conectar-se por linha de comando a instâncias Windows e Linux é ainda mais simples: basta clicar em Start Commandline session para abrir um terminal com acesso de administrador nas máquinas registradas no SSM.
Cada agente configura um usuário local chamado ssm-user, que você pode personalizar para ter ou não permissão de administrador na instância. Esse mesmo usuário também executa os runbooks, chamados Documents, que você configura no System Manager.

Interface de uma conexão remota com um terminal de linha de comando do Windows
Espero que este artigo seja útil para você. Existem várias formas de aprimorar e personalizar sua experiência com o AWS Systems Manager, e este artigo mostra um caminho para aproveitar rapidamente os recursos desse serviço.
Se precisar de ajuda para administrar instâncias na AWS, fique à vontade para falar comigo pelo nosso DoiT Support ou nos comentários deste artigo.
Fale com a gente na DoiT. Contamos exclusivamente com engenheiros sêniores e somos especialistas em consultoria avançada em nuvem, design arquitetural, orientações de debugging e serviços de consultoria.