¿Por qué mi instancia de EC2 no aparece como un nodo administrado o muestra el estado de «Se perdió la conexión» en Systems Manager?

10 minutos de lectura
0

Mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) perdió la conexión o no aparece en Administrador de flotas en la consola de AWS Systems Manager.

Solución

Una instancia administrada es una instancia de EC2 que se usa con Systems Manager como un nodo administrado.

Para confirmar si la instancia de EC2 cumple los requisitos previos para ser una instancia administrada, ejecute el documento AWSSupport-TroubleshootManagedInstance de Systems Manager Automation. A continuación, compruebe que la instancia de EC2 cumple los siguientes requisitos.

Importante: En los pasos de solución de problemas, seleccione la región de AWS que incluye su instancia de EC2.

Cómo comprobar si SSM Agent está instalado y se está ejecutando en la instancia

Tras confirmar que su sistema operativo es compatible con Systems Manager, compruebe que AWS Systems Manager Agent (SSM Agent) esté instalado y se esté ejecutando en la instancia.

SSM Agent está instalado previamente en algunas imágenes de máquina de Amazon (AMI) de Linux, macOS y Windows. Para instalar manualmente SSM Agent si el agente no está instalado previamente, consulte la siguiente documentación:

Para comprobar que el agente SSM se está ejecutando, utilice comandos específicos del sistema operativo para comprobar el estado del agente.

Cuando termine de verificar el agente SSM, ejecute ssm-cli para solucionar los problemas de disponibilidad de las instancias administradas.

Cómo comprobar la conectividad con los puntos de enlace de Systems Manager en el puerto 443

Para comprobar la conectividad con los puntos de enlace de Systems Manager en el puerto 443, debe tener en cuenta la configuración del sistema operativo y subred. Para obtener una lista de los puntos de enlace de Systems Manager por región, consulte AWS Systems Manager endpoints and quotas.

Nota: En los ejemplos, el punto de enlace ssmmessages es obligatorio para AWS Systems Manager Session Manager.

Instancias de EC2 de Linux

Utilice los comandos Telnet o Netcat para verificar la conectividad con los puntos de enlace del puerto 443 para las instancias de EC2 de Linux.

Nota: Sustituya RegionID por la región de su instancia al ejecutar los comandos.

Comandos de Telnet:

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

Ejemplo de conexión 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 salir de Telnet, mantenga pulsada la tecla Ctrl y pulse la tecla**]**. Escriba quit y, a continuación, pulse Intro.

Comandos de Netcat:

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

Netcat no está instalado previamente en las instancias de EC2. Para instalar Netcat manualmente, consulte Ncat en el sitio web de Nmap.

Instancias de EC2 de Windows

Utilice los siguientes comandos de Windows PowerShell para comprobar la conectividad con los puntos de enlace del puerto 443 para las instancias de EC2 de Windows.

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

Subredes públicas

Los puntos de enlace de Systems Manager son públicos. Para resolver los problemas al conectarse a un punto de enlace desde una instancia de una subred pública, confirme los siguientes puntos:

Subredes privadas

Utilice direcciones IP privadas para acceder de forma privada a las API de Amazon EC2 y Systems Manager. Para resolver los problemas al conectarse a un punto de enlace desde una instancia de una subred privada, confirme uno de los siguientes puntos:

  • La tabla de enrutamiento de la instancia dirige el tráfico de Internet a una puerta de enlace de NAT.
  • El punto de enlace de VPC está configurado para llegar a los puntos de enlace de Systems Manager.

Para obtener más información, consulte How do I create VPC endpoints so that I can use Systems Manager to manage private EC2 instances without internet access?

Nota: Cada punto de enlace de la interfaz crea una interfaz de red elástica en la subred proporcionada.

Como práctica recomendada de seguridad para las subredes privadas, compruebe la siguiente configuración:

  • El grupo de seguridad adjunto a la interfaz de red del punto de enlace de VPC permite el tráfico entrante del puerto TCP 443 desde el grupo de seguridad que está adjunto a la instancia.
  • El grupo de seguridad adjunto a la instancia permite el tráfico saliente del puerto TCP 443 a la dirección IP privada de la interfaz de red del punto de enlace de VPC.

Cómo comprobar la «Configuración de la administración de hosts predeterminada»

Nota: Si no utiliza la «Configuración de la administración de hosts predeterminada», pase a la sección Cómo comprobar que el rol de IAM correcto esté asociado a la instancia.

Systems Manager administra automáticamente las instancias de EC2 sin un perfil de instancia de AWS Identity and Access Management (IAM) al establecer la Configuración de la administración de hosts predeterminada. Al configurar esta característica, Systems Manager tiene permisos para administrar todas las instancias de su región y cuenta. Si los permisos no son suficientes para su caso de uso, añada políticas al rol de IAM predeterminado que haya creado la «Configuración de la administración de hosts predeterminada».

Todas las instancias asociadas deben usar la versión 2 del servicio de metadatos de instancias (IMDSv2). Para comprobar la configuración de IMDSv2, consulte Cuando no hay uso de IMDSv1 y Comprobación de si todas las instancias han pasado a IMDSv2.

La «Configuración de la administración de hosts predeterminada» está disponible en la versión 3.2.582.0 o posterior de SSM Agent. Para comprobar la versión del SSM Agent, consulte Checking the SSM Agent version number.

Para comprobar la «Configuración de la administración de hosts predeterminada», complete los siguientes pasos:

  1. Abra la consola de Systems Manager.
  2. En el panel de navegación, seleccione Administrador de flotas.
  3. En la lista desplegable Administración de la cuenta, elija Configuración de la administración de hosts predeterminada.
  4. Compruebe que la opción Habilitación de la configuración de la administración de hosts predeterminada esté activada.

También puede usar el siguiente comando de la Interfaz de la línea de comandos de AWS (AWS CLI) para verificar la «Configuración de la administración de hosts predeterminada»:

Nota: Sustituya AccountID por el ID de su cuenta de AWS al ejecutar los comandos.

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

Cuando establezca la «Configuración de la administración de hosts predeterminada», recibirá una respuesta similar a la siguiente:

{
  "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"
  }
}

Nota: Si el valor de SettingValue es $None, la «Configuración de la administración de hosts predeterminada» no está configurada.

Cómo comprobar que la «Configuración de la administración de hosts predeterminada» utilice un rol de IAM adecuado

El rol AWSSystemsManagerDefaultEC2InstanceManagementRole es el rol de IAM recomendado al establecer la «Configuración de la administración de hosts predeterminada». Para usar un rol diferente, asegúrese de que el rol tenga adjunta la política de IAM AmazonSSMManagedEC2InstanceDefaultPolicy.

Si tiene perfiles de instancia adjuntos a sus instancias de EC2, elimine todos los permisos que permitan la operación ssm:UpdateInstanceInformation. SSM Agent intenta usar los permisos del perfil de instancia antes de usar los permisos de la «Configuración de la administración de hosts predeterminada». Cuando se permite la operación ssm:UpdateInstanceInformation en los perfiles de instancia, esta no usa los permisos de la «Configuración de la administración de hosts predeterminada».

Cómo comprobar que el rol de IAM correcto esté asociado a la instancia

Nota: Si utiliza la «Configuración de la administración de hosts predeterminada», vaya a la sección Cómo comprobar la conectividad con el IMDS.

Para hacer llamadas a la API a un punto de enlace de Systems Manager, debe adjuntar la política AmazonSSMManagedInstanceCore al rol de IAM adjunto a la instancia. Si utiliza una política de IAM personalizada, confirme que esta usa los permisos que se encuentran en AmazonSSMManagedInstanceCore. Además, asegúrese de que la política de confianza del rol de IAM permita a ec2.amazonaws.com asumir este rol.

Para obtener más información, consulte Add permissions to a Systems Manager instance profile (console).

Cómo comprobar la conectividad con el IMDS

SSM Agent debe comunicarse con el servicio de metadatos de instancias (IMDS) para obtener la información necesaria sobre la instancia. Para probar la conexión, ejecute el siguiente comando de Netcat:

nc -vz 169.254.169.254 80

Para comprobar que el IMDS está configurado para la instancia existente, siga uno de los siguientes pasos:

  • Abra la consola de Amazon EC2. En el panel de navegación, elija Instancias, seleccione su instancia y, a continuación, elija Acciones, Configuración de la instancia y Modificar las opciones de metadatos de instancia. En el cuadro de diálogo, el Servicio de metadatos de instancias debe estar Habilitado.

  • En la AWS CLI, ejecute el comando describe-instances de la CLI.

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

    Ejemplo de salida:

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

    Nota:** "HttpTokens": "optional"** significa que tanto IMDSv1 como IMDSv2 son compatibles. "HttpTokens": "required" significa que IMDSv2 es compatible. "HttpEndpoint": "enabled" significa que el IMDS está activado.

Si usa un proxy en su instancia, es posible que bloquee la conectividad con la URL de metadatos. Para evitarlo, asegúrese de configurar el SSM Agent para que funcione con un proxy y de configurar no_proxy para la URL de metadatos. Para configurar que SSM Agent utilice un proxy, consulte la siguiente documentación:

Otras soluciones

Si la instancia sigue sin aparecer como un nodo administrado o muestra un mensaje «Se perdió la conexión» en Systems Manager, continúe con la solución de problemas en los registros de SSM Agent:

  • Linux y macOS: Los registros de SSM Agent están en /var/log/amazon/ssm.
  • Windows: Los registros de SSM Agent están en %PROGRAMDATA%\Amazon\SSM\Logs.

Si la instancia no informa a SSM Agent, intente iniciar sesión con RDP (Windows) o SSH (Linux) para recopilar los registros. Si no puede recopilar los registros, debe detener la instancia y separar el volumen raíz. A continuación, adjunte el volumen raíz a otra instancia en la misma zona de disponibilidad como volumen secundario para obtener los registros.

Información relacionada

Adjunte un volumen de Amazon EBS a una instancia

Cómo separar un volumen de Amazon EBS de una instancia

Cómo hacer que un volumen de Amazon EBS esté disponible para su uso

Cómo hacer que un volumen de Amazon EBS esté disponible para su uso

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 10 meses