¿Por qué Systems Manager no muestra mi instancia de Amazon EC2 como una instancia administrada?

11 minutos de lectura
0

Tengo una instancia de Amazon Elastic Compute Cloud (Amazon EC2), pero no aparece como instancia administrada en AWS Systems Manager.

Descripción corta

Para determinar por qué AWS Systems Manager no muestra su instancia como administrada, puede utilizar el runbook AWSSupport-TroubleshootManagedInstance. Para obtener más información, consulte Ejecución de una operación automatizada con la tecnología de Automatización de Systems Manager y Configuración de Automatización.

También puedes solucionar manualmente los problemas de la instancia de Amazon EC2.

Resolución

Nota: Si se muestran errores al poner en marcha comandos de Interfaz de la línea de comandos de AWS (AWS CLI), consulte Solución de problemas de AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Ejecución del runbook de Automatización de Systems Manager

Requisitos previos: Instale y ejecute AWS Systems Manager Agent (SSM Agent) en su instancia. Antes de ejecutar la automatización, asegúrese de que su usuario o rol de AWS Identity and Access Management (IAM) tenga los permisos necesarios. Consulte la sección Permisos de IAM requeridos en AWSSupport-TroubleshootManagedInstance.

Para ejecutar el runbook, siga estos pasos:

  1. Abra la consola de Systems Manager.
  2. En el panel de navegación, seleccione Documentos.
  3. En la barra de búsqueda, escriba AWSSupport-TroubleshootManagedInstance (Propietario: Amazon).
  4. Seleccione el documento AWSSupport-TroubleshootManagedInstance.
  5. Seleccione Ejecutar automatización.
  6. En los parámetros de entrada, introduzca la siguiente información:
    En InstanceId, introduzca el ID de la instancia afectada. Puede introducir manualmente el ID de la instancia o usar el selector de instancias interactivo. Si utiliza el selector de instancias, cambie el filtro de Mostrar solo la instancia administrada a Mostrar todas las instancias.
    (Opcional) En AutomationAssumeRole, introduzca el ARN del rol de IAM que permite a Automatización de Systems Manager realizar las acciones en su nombre. Si no especifica un rol, Automatización de Systems Manager utilizará los permisos del usuario que ejecuta el runbook.
  7. Seleccione Ejecutar.

Una vez finalizada la automatización, revise la sección Salidas para obtener los siguientes resultados detallados:

  • La sección InstanceisOnline.output muestra si Systems Manager administra la instancia.
  • La sección FinalOutput.output muestra si una comprobación se aprobó o no, e incluye información sobre cómo solucionar un error.

Solución manual de los problemas de la instancia de EC2

Importante: En los pasos de solución de problemas, seleccione la región de AWS en la que se encuentra su instancia.

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 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 SSM Agent se está ejecutando, ejecute el comando específico de su sistema operativo para comprobar el estado del agente.

Después de comprobar que SSM Agent se está ejecutando, ejecute el comando 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

La verificación de la conectividad a los puntos de enlace de Systems Manager en el puerto 443 es específica de la configuración de subred y del sistema operativo. Para obtener una lista de los puntos de enlace de Systems Manager por región, consulte Puntos de enlace de servicio.

Nota: En los siguientes ejemplos, el punto de enlace ssmmessages es obligatorio para Session Manager, una capacidad de AWS Systems 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. Netcat no está instalado previamente en las instancias de EC2. Para instalar Netcat manualmente, consulte Ncat en el sitio web de Nmap.

Nota: En los siguientes comandos, sustituya RegionID por el ID de región de su instancia.

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, pulse las teclas Ctrl y ]. 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

Instancias de EC2 de Windows

Para comprobar la conectividad con los puntos de enlace del puerto 443 para las instancias de EC2 de Windows, ejecute los siguientes comandos de Windows PowerShell:

`Test-NetConnection ssm.RegionID.amazonaws.com -port 443 Test-N`etConnection 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 de conectividad con las instancias de una subred pública, la tabla de enrutamiento de la instancia debe dirigir el tráfico de Internet a una puerta de enlace de Internet. Además, los grupos de seguridad de Amazon Virtual Private Cloud (Amazon VPC) y las listas de control de acceso de la red (ACL de la red) deben permitir las conexiones salientes en el puerto 443.

Subredes privadas

Utilice direcciones IP privadas para acceder de forma privada a las API de Amazon EC2 y Systems Manager. Para resolver los problemas de conectividad con una instancia en una subred privada, la tabla de enrutamiento de la instancia debe dirigir el tráfico de Internet a una puerta de enlace de NAT. O bien, debe configurar el punto de enlace de VPC para que llegue a los puntos de enlace de Systems Manager.

Para obtener más información, consulte ¿Cómo puedo crear puntos de enlace de VPC que me permitan utilizar Systems Manager para administrar instancias de EC2 privadas sin acceso a Internet?

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 ha activado 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.

Si el rol de IAM que creó la configuración de administración de host predeterminada no tiene permisos suficientes para su caso de uso, puede añadir políticas.

Todas las instancias asociadas deben usar la versión 2 del servicio de metadatos de instancias (IMDSv2). Para comprobar la configuración de IMDSv2, utilice la métrica MetadataNoToken de Amazon CloudWatch para determinar si no se utiliza IMDSv1. A continuación, compruebe si 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 de SSM Agent, consulte Verificación del número de versión de SSM Agent.

Para verificar la configuración de administración de hosts predeterminada, utilice la consola de Systems Manager o la AWS CLI.

Consola de Systems Manager

Siga estos pasos:

  1. Abra la consola de Systems Manager.
  2. En el panel de navegación, seleccione Administrador de flotas.
  3. En el menú 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.

AWS CLI

Ejecute el comando get-service-setting de la AWS CLI para verificar la configuración de la administración de hosts predeterminada:

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

Nota: Sustituya AccountID por el ID de su cuenta de AWS.

Después de activar la configuración de la administración de hosts predeterminada, recibirá un resultado similar al 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» utiliza un rol de IAM adecuado

Se recomienda utilizar AWSSystemsManagerDefaultEC2InstanceManagementRole IAM al establecer la configuración de la administración de hosts predeterminada. Para usar un rol diferente, asegúrese de adjuntar la política de IAM AmazonSSMManagedEC2InstanceDefaultPolicy al rol.

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 ha activado 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 el rol. Para obtener más información, consulte Configuración alternativa para permisos de instancia de EC2.

Cómo comprobar la conectividad con el IMDS

SSM Agent debe comunicarse con el IMDS para obtener información 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 su instancia actual, utilice la consola de Amazon EC2 o la AWS CLI.

Consola de Amazon EC2

Sigue estos pasos:

  1. Abra la consola de Amazon EC2.
  2. En el panel de navegación, elija Instancias y, a continuación, seleccione la instancia.
  3. Seleccione Acciones y, a continuación, seleccione Configuración de la instancia.
  4. Seleccione Modificar las opciones de metadatos de instancia.
  5. En el cuadro de diálogo, asegúrese de que el servicio de metadatos de la instancia esté habilitado.

AWS CLI

Ejecute el comando describe-instances de la AWS CLI para verificar que el IMDS esté configurado para la instancia existente:

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

Resultado de ejemplo:

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

Nota: Si el resultado muestra «HttpTokens»: «optional», significa que se admiten tanto IMDSv1 como IMDSv2. Si el resultado muestra «HttpTokens»: «required», significa que solo se admite IMDSv2. Si el resultado muestra ** «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 evitar el bloqueo, configure el SSM Agent para que funcione con un proxy y establezca no_proxy para la URL de metadatos.

Para configurar SSM Agent para que utilice un proxy, consulte la siguiente documentación:

Resolución de problemas adicionales

Si la instancia sigue sin aparecer como un nodo administrado o muestra un mensaje «Se perdió la conexión» en Systems Manager, revise los registros de SSM Agent para continuar con la solución de problemas. Para Linux y macOS, los registros están en /var/log/amazon/ssm. Para Windows, los registros están en %PROGRAMDATA%\Amazon\SSM\Logs.

Si la instancia no informa a SSM Agent, use el Protocolo de escritorio remoto (RDP) para Windows o SSH para Linux para recopilar los registros. Si no puede recopilar los registros, detenga la instancia y desconecte 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

Referencia del runbook de Automatización de Systems Manager

Adjuntar un volumen de Amazon Elastic Block Store (Amazon EBS) a una instancia de Amazon EC2

Desconectar el volumen raíz de la instancia

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

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 meses