Por que minha instância do EC2 não está sendo exibida como um nó gerenciado ou está mostrando o status "Conexão perdida" no Systems Manager?

9 minuto de leitura
0

Minha instância do Amazon Elastic Compute Cloud (Amazon EC2) perdeu a conexão ou não está sendo exibida no Fleet Manager no console do AWS Systems Manager.

Resolução

Uma instância gerenciada é uma instância do EC2 usada com o Systems Manager como um nó gerenciado.

Para confirmar que sua instância do EC2 atende aos pré-requisitos para ser uma instância gerenciada, execute o documento AWSSupport-TroubleshootManagedInstance do Systems Manager Automation. Em seguida, verifique se sua instância do EC2 atende aos seguintes requisitos.

Importante: ao longo das etapas de solução de problemas, selecione a região da AWS que inclui sua instância do EC2.

Verifique se o SSM Agent está instalado e em execução na instância

Depois de confirmar que seu sistema operacional é compatível com o Systems Manager, verifique se o AWS Systems Manager Agent (SSM Agent) está instalado e em execução na sua instância.

O SSM Agent está pré-instalado em algumas imagens de máquina da Amazon (AMIs) de Linux, macOS e Windows. Para instalar manualmente o SSM Agent quando o agente não está pré-instalado, consulte a seguinte documentação:

Para verificar se o SSM Agent está em execução, use comandos específicos do sistema operacional para verificar o status do agente.

Depois de concluir a verificação do SSM Agent, execute ssm-cli para solucionar problemas de disponibilidade de instâncias gerenciadas.

Verifique a conectividade com os endpoints do Systems Manager na porta 443

Para verificar a conectividade com os endpoints do Systems Manager na porta 443, você deve considerar as configurações do sistema operacional e da sub-rede. Para obter uma lista dos endpoints do Systems Manager por região, consulte AWS Systems Manager endpoints and quotas.

Observação: nos exemplos, o endpoint ssmmessages é necessário para o Gerenciador de Sessões do AWS Systems Manager.

Instâncias Linux do EC2

Use os comandos Telnet ou Netcat para verificar a conectividade com endpoints na porta 443 para instâncias Linux do EC2.

Observação: substitua RegionID pela região da sua instância ao executar comandos.

Comandos Telnet:

telnet ssm.RegionID.amazonaws.com 443
telnet ec2messages.RegionID.amazonaws.com 443
telnet ssmmessages.RegionID.amazonaws.com 443

Exemplo de conexão Telnet:

root@111800186:~# telnet ssm.us-east-1.amazonaws.com 443
Trying 52.46.141.158...
Connected to ssm.us-east-1.amazonaws.com.
Escape character is '^]'.

Para sair do telnet, mantenha pressionada a tecla Ctrl e pressione a tecla ]. Digite quit e, em seguida, pressione Enter.

Comandos Netcat:

nc -vz ssm.RegionID.amazonaws.com 443
nc -vz ec2messages.RegionID.amazonaws.com 443
nc -vz ssmmessages.RegionID.amazonaws.com 443

O Netcat não vem pré-instalado em instâncias do EC2. Para instalar o Netcat manualmente, consulte Ncat no site do Nmap.

Instâncias Windows do EC2

Use os seguintes comandos do Windows PowerShell para verificar a conectividade com endpoints na porta 443 para instâncias Windows do EC2.

Test-NetConnection ssm.RegionID.amazonaws.com -port 443
Test-NetConnection ec2messages.RegionID.amazonaws.com -port 443
Test-NetConnection ssmmessages.RegionID.amazonaws.com -port 443

Sub-redes públicas

Os endpoints do Systems Manager são endpoints públicos. Para resolver problemas ao se conectar a um endpoint a partir de uma instância em uma sub-rede pública, confirme os seguintes pontos:

Sub-redes privadas

Use endereços IP privados para acessar as APIs do Amazon EC2 e do Systems Manager de forma privada. Para resolver problemas ao se conectar a um endpoint a partir de uma instância em uma sub-rede privada, confirme um dos seguintes pontos:

  • A tabela de rotas da sua instância encaminha o tráfego da Internet para um gateway NAT.
  • Seu endpoint da VPC está configurado para alcançar os endpoints do Systems Manager.

Para obter mais informações, consulte How do I create VPC endpoints so that I can use Systems Manager to manage private EC2 instances without internet access?

Observação: cada endpoint de interface cria uma interface de rede elástica na sub-rede fornecida.

Como prática recomendada de segurança para sub-redes privadas, verifique as seguintes configurações:

  • O grupo de segurança conectado à interface de rede do seu endpoint da VPC permite o tráfego de entrada da porta TCP 443 do grupo de segurança anexado à sua instância.
  • O grupo de segurança anexado à sua instância permite o tráfego de saída da porta TCP 443 para o endereço IP privado da interface de rede do seu endpoint da VPC.

Verifique a definição da configuração de gerenciamento de host padrão

Observação: se você não estiver usando a configuração de gerenciamento de host padrão, vá para a seção Verifique se o perfil correto do IAM está anexado à instância.

O Systems Manager gerencia automaticamente instâncias do EC2 sem um perfil de instância do AWS Identity and Access Management (IAM) quando você faz a configuração de gerenciamento de host padrão. Quando você configura esse atributo, o Systems Manager tem permissões para gerenciar todas as instâncias em sua região e conta. Se as permissões não forem suficientes para seu caso de uso, adicione políticas ao perfil do IAM padrão criado pela configuração de gerenciamento de host padrão.

Todas as instâncias associadas devem usar o Serviço de Metadados de Instância versão 2 (IMDSv2). Para verificar sua configuração do IMDSv2, consulte Quando a utilização do IMDSv1 é zero e Verificar se suas instâncias fizeram a transição para o IMDSv2.

A configuração de gerenciamento de host padrão está disponível na versão 3.2.582.0 ou posterior do SSM Agent. Para verificar a versão do Agente SSM, consulte Checking the SSM Agent version number.

Para verificar a definição da configuração de gerenciamento de host padrão, conclua as seguintes etapas:

  1. Abra o console do Systems Manager.
  2. No painel de navegação, escolha Fleet Manager.
  3. Na lista suspensa Gerenciamento de contas, escolha Configuração de gerenciamento de host padrão.
  4. Verifique se a configuração Habilitar configuração de gerenciamento do host padrão está ativada.

Você também pode usar o seguinte comando da AWS Command Line Interface (AWS CLI) para verificar a definição da configuração de gerenciamento de host padrão:

Observação: substitua AccountID pelo ID da sua conta da AWS ao executar comandos.

aws ssm get-service-setting \
--setting-id arn:aws:ssm:RegionID:AccountID:servicesetting/ssm/managed-instance/default-ec2-instance-management-role

Quando a configuração de gerenciamento de host padrão for configurada, você receberá uma resposta semelhante à seguinte:

{
  "ServiceSetting": {
    "SettingId": "/ssm/managed-instance/default-ec2-instance-management-role",
    "SettingValue": "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
    "LastModifiedDate": 1679492424.738,
    "LastModifiedUser": "arn:aws:sts::012345678910:assumed-role/role/role-name",
    "ARN": "arn:aws:ssm:ap-southeast-1:012345678910:servicesetting/ssm/managed-instance/default-ec2-instance-management-role",
    "Status": "Customized"
  }
}

Observação: se o valor de SettingValue for $None, a configuração de gerenciamento de host padrão não está configurada.

Verifique se a configuração de gerenciamento de host padrão está usando um perfil do IAM apropriado

O perfil AWSSystemsManagerDefaultEC2InstanceManagementRole é o perfil do IAM recomendado quando você faz a configuração de gerenciamento de host padrão. Para usar um perfil diferente, certifique-se de que o perfil tenha a política do IAM AmazonSSMManagedEC2InstanceDefaultPolicy anexada a ele.

Se você tiver perfis de instância anexados às suas instâncias do EC2, remova todas as permissões que permitam a operação ssm:UpdateInstanceInformation. O SSM Agent tenta usar as permissões do perfil de instância antes de usar as permissões da configuração de gerenciamento de host padrão. Quando você permite a operação ssm:UpdateInstanceInformation em seus perfis de instância, sua instância não usa as permissões da configuração de gerenciamento de host padrão.

Verifique se o perfil correto do IAM está anexado à instância

Observação: se você estiver usando a configuração de gerenciamento de host padrão, vá para a seção Verifique a conectividade com o IMDS.

Para fazer chamadas de API para um endpoint do Systems Manager, você deve anexar a política AmazonSSMManagedInstanceCore ao perfil do IAM anexado à sua instância. Se você estiver usando uma política do IAM personalizada, confirme se sua política personalizada usa as permissões encontradas em AmazonSSMManagedInstanceCore. Além disso, certifique-se de que a política de confiança do seu perfil do IAM permita que ec2.amazonaws.com assuma esse perfil.

Para obter mais informações, consulte Add permissions to a Systems Manager instance profile (console).

Verifique a conectividade com o IMDS

O SSM Agent deve se comunicar com o Serviço de Metadados de Instância (IMDS) para obter as informações necessárias sobre sua instância. Para testar a conexão, execute o seguinte comando Netcat:

nc -vz 169.254.169.254 80

Para verificar se o IMDS está configurado para sua instância existente, siga uma das seguintes etapas:

  • Abra o console do Amazon EC2. No painel de navegação, escolha Instâncias, selecione sua instância e escolha Ações, Configurações da instância, Modificar opções de metadados da instância. Na caixa de diálogo, Serviço de metadados de instância deve estar Ativado.

  • Na AWS CLI, execute o comando describe-instances da CLI.

    aws ec2 describe-instances --query "Reservations[*].Instances[*].MetadataOptions" --instance-ids i-012345678910

    Exemplo de saída:

    [
      [
        {
          "State": "applied",
          "HttpTokens": "optional",
          "HttpPutResponseHopLimit": 1,
          "HttpEndpoint": "enabled",
          "HttpProtocolIpv6": "disabled",
          "InstanceMetadataTags": "disabled"
        }
      ]
    ]
    

    Observação: "HttpTokens": "optional" significa que tanto o IMDSv1 quanto o IMDSv2 são compatíveis. **"HttpTokens": "required" ** significa que o IMDSv2 é compatível. **"HttpEndpoint": "enabled" ** significa que o IMDS está ativado.

Se você estiver usando um proxy na sua instância, o proxy poderá bloquear a conectividade com o URL dos metadados. Para evitar isso, certifique-se de configurar seu SSM Agent para funcionar com um proxy e defina no_proxy para o URL dos metadados. Para configurar o SSM Agent para usar um proxy, consulte a seguinte documentação:

Solução de problemas adicionais

Se sua instância ainda não aparecer como um nó gerenciado ou mostrar uma conexão perdida no Systems Manager, continue solucionando problemas nos logs do SSM Agent:

  • Linux e macOS: Os logs do SSM Agent estão em /var/log/amazon/ssm.
  • Windows: Os logs do SSM Agent estão em %PROGRAMDATA%\Amazon\SSM\Logs.

Quando sua instância não estiver reportando ao SSM Agent, tente fazer login usando RDP (Windows) ou SSH (Linux) para coletar os logs. Se você não conseguir coletar os logs, deverá interromper sua instância e desvincular o volume raiz. Em seguida, conecte o volume raiz a outra instância na mesma zona de disponibilidade que um volume secundário para obter os logs.

Informações relacionadas

Vincular um volume de Amazon EBS a uma instância

Desanexar um volume do Amazon EBS de uma instância

Disponibilizar um volume do Amazon EBS para uso no Linux

Disponibilizar um volume do Amazon EBS para uso no Windows

AWS OFICIAL
AWS OFICIALAtualizada há um ano