Manual de Operações Super Secreto do AWS SSM: Acesso Remoto de EC2 sem abrir portas!

Olá, futuro mestre do controle remoto de instâncias EC2! Prepare-se para embarcar em uma jornada onde a arte de acessar suas máquinas na nuvem se torna tão intuitiva quanto pedir uma pizza online. Esqueça a era das portas SSH expostas como vitrines de loja; com o AWS Systems Manager (SSM), você terá um passe VIP para o backstage das suas instâncias, tudo isso sem alarde e com uma segurança de dar inveja ao 007.

Imagine a seguinte situação: você precisa dar aquela “geral” no seu servidor, verificar uns logs, rodar um comando crucial, mas a ideia de abrir a porta 22 para o mundo te dá calafrios? Seus problemas acabaram! O SSM é como aquele amigo super conectado que tem a chave de todos os lugares e te leva para dentro sem que ninguém precise saber a senha da frente.

A Real Utilidade da Magia do SSM

Pense no SSM como um canivete suíço para gerenciamento de instâncias. Ele oferece uma gama de funcionalidades, e o acesso remoto via aws ssm e SSH é apenas a ponta do iceberg (um iceberg seguro e bem protegido, claro).

  • Segurança em Primeiro Lugar (e nos lugares seguintes também!): Adeus portas SSH abertas! O SSM utiliza um agente instalado na sua instância e um canal seguro e criptografado para comunicação com a AWS. Sua superfície de ataque agradece!
  • Conveniência que Abraça: Chega de lembrar IPs públicos, configurar security groups complexos para acesso temporário. Com o SSM, o acesso é feito de forma lógica e organizada.
  • Auditoria Tranquila: Todas as suas sessões são logadas e podem ser auditadas, garantindo que você saiba quem fez o quê e quando. Perfeito para manter a casa em ordem!
  • Gerenciamento Centralizado: O SSM não se limita ao acesso remoto. Ele oferece recursos para automação, gerenciamento de patches, inventário e muito mais. É um verdadeiro centro de comando para suas instâncias.

Vamos ao Que Interessa: O Passo a Passo da Dominação Remota!

Aqui está o seu guia de bolso para configurar e usar o acesso remoto via SSM, tanto pelo comando aws ssm quanto via SSH (sim, ele faz isso também!)

Parte 1: Preparando o Terreno (Configuração Essencial)

  1. O Agente Secreto (SSM Agent): Certifique-se de que o SSM Agent está instalado e rodando nas suas instâncias EC2. A maioria das AMIs da AWS já vem com ele, mas se você usa uma AMI customizada, pode precisar instalá-lo manualmente. A boa notícia é que a AWS tem documentações excelentes para isso (por hora vou deixar que você dê um Google por “install ssm agent ec2 [seu sistema operacional]”, futuramente eu coloco esta dica em um texto separado para facilitar).
  2. Dando as Permissões (IAM Role): Sua instância EC2 precisa de permissão para conversar com o serviço SSM. Isso é feito através de uma IAM Role anexada à instância. Essa role deve ter a política AmazonSSMManagedInstanceCore (o nome já diz tudo, né?). Se você pretende usar o acesso via SSH, precisará também da política AmazonSSMManagedInstanceProfile.
    • Como fazer: Ao criar a instância, você pode associar uma IAM Role existente ou criar uma nova com as políticas necessárias. Se a instância já existe, você pode anexar a role através do console da EC2 (selecione a instância, vá em “Actions” -> “Security” -> “Modify IAM role”).
  3. Configurando o SSM (Opcional, mas Recomendado): No console do AWS SSM, explore o “Session Manager”. É aqui que a mágica acontece para o acesso via aws ssm. Verifique se a região que você está usando é a correta.
Fig 1: Tela de configuração do SSM a partir do Console da AWS

Parte 2: A Arte do Acesso Remoto (Usando o Comando aws ssm)

Este é o método mais direto e “sem porta” para acessar suas instâncias via terminal.

  1. Instale a Ferramenta (AWS CLI): Se você ainda não tem a AWS CLI instalada e configurada, essa é a hora! Ela é a sua linha de comando para o universo AWS. Siga as instruções da AWS, ou este texto aqui do blog, para instalar e configurar com suas credenciais.
  2. O Comando Mágico: Para iniciar uma sessão com sua instância, você precisa do ID da instância. Você pode encontrá-lo no console da EC2. O comando é simples:

    aws ssm start-session --target <id_da_instancia>

    Substitua “<id_da_instancia>” pelo ID real da sua instância (ex: i-0abcdef1234567890).
  3. Pronto, Você Chegou a sua instância!: Se tudo estiver configurado corretamente, você será conectado diretamente ao terminal da sua instância. É como se um portal secreto se abrisse! Execute seus comandos, verifique seus logs, faça o que precisar.
    • Ops, este não sou eu: Você não entra na sua instância como root, ubuntu ou o usuário que você criou. Ao aparecer o prompt você será o o usuário “ssm-user” e para se tornar “root” ou qualquer outro usuário use o comando “sudo”, como em “sudo -i“.
  4. Saindo da Sessão: Para encerrar a sessão, basta usar o comando exit no terminal da instância.

Parte 3: Acesso SSH disfarçado (SSM Port Forwarding)

Essa funcionalidade é para quem sente falta do bom e velho SSH, mas quer a segurança do SSM. Ela permite “tunelar” conexões SSH através do SSM.

  1. Pré-requisitos: Além do SSM Agent e da IAM Role com as políticas mencionadas, sua instância precisa ter um servidor SSH rodando (geralmente já está).
  2. O Comando Secreto de Port Forwarding: A mágica acontece com parâmetros extras no comando aws ssm start-session. Você precisa especificar o tipo de porta que quer encaminhar (no caso do SSH, a porta 22) e a porta local na sua máquina que você quer usar para a conexão.

    aws ssm start-session --target <id_da_instancia> --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["22"],"localPortNumber"=["<sua_porta_local>"]

    Substitua <id_da_instancia> pelo ID da sua instância e <sua_porta_local> por uma porta livre na sua máquina (ex: 3456).
  3. Conectando via SSH (Agora com um Toque de Magia): Com a sessão de port forwarding ativa, abra outro terminal na sua máquina e conecte-se via SSH para a porta local que você especificou, direcionando para o endereço local (localhost ou 127.0.0.1):

    ssh -i <sua_chave_privada> <seu-usuario>@localhost -p <sua_porta_local>

    Lembre-se de substituir pelo caminho para o seu arquivo de chave privada SSH e <seu-usuario> pelo nome de usuário correto da sua instância.
  4. Desconectando: Para encerrar a conexão SSH, basta fechar a janela do terminal SSH. Para encerrar o túnel do SSM, volte ao terminal onde você executou o aws ssm start-session e pressione Ctrl+C.

Dicas de Mestre SSM

Dica 1 – Use Perfis da AWS CLI: Se você gerencia múltiplas contas ou regiões, configure perfis na sua AWS CLI para facilitar a troca de contextos.

Dica 2 – Session Manager no Console: Para sessões rápidas e sem precisar da CLI, você pode iniciar uma sessão diretamente do console do AWS SSM, via browser.

Dica 3 – Personalize o seu SSH: Configure o seu ~/.ssh/config para simplificar o acesso. Como em:

Host i-* mi-*                                                                                        ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

Dica 4 – Seja você mesmo, ou não: Se você seguiu a “dica 3”, agora você pode acessar suas instâncias por SSH, com suas credencias, incluindo login e chave privada, apenas informando o ID da instância.

ssh -i ~/.ssh/chave_para_aws ubuntu@i-05f9519e67780553d

Conclusão: Desbloqueando o Poder do Gerenciamento Remoto Inteligente

Parabéns! Agora você tem as chaves (virtuais e seguras) para acessar suas instâncias EC2 sem a necessidade de expor portas SSH. O AWS SSM não é apenas uma ferramenta de acesso remoto; é um portal para um gerenciamento de infraestrutura mais seguro, eficiente e centralizado.

Explore as outras funcionalidades do SSM, como o Run Command para executar comandos em várias instâncias simultaneamente, ou o Patch Manager para manter seus sistemas atualizados. O universo do SSM é vasto e cheio de possibilidades para simplificar sua vida na nuvem.

Lembre-se, a prática leva à perfeição. Experimente, teste e descubra como o AWS SSM pode se tornar seu maior aliado no dia a dia do gerenciamento das suas instâncias EC2. E o melhor de tudo? Seus servidores dormirão mais tranquilos sem aquela porta SSH escancarada para a internet.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.