¿Por qué falla la canalización de compilación de imágenes con el error “Step timed out while step is verifying the Systems Manager Agent availability on the target instance(s)” (Se ha agotado el tiempo de espera del paso mientras este verifica la disponibilidad del agente de Systems Manager en las instancias de destino) en Image Builder?

Última actualización: 29/09/2022

El tiempo de compilación de imágenes se agota en Amazon Elastic Compute Cloud (Amazon EC2) Image Builder. A continuación, devuelve el error “failure message = 'Step timed out while step is verifying the Systems Manager Agent availability on the target instance(s)'” (mensaje de error = Se ha agotado el tiempo de espera del paso mientras este verifica la disponibilidad del SSM Agent en las instancias de destino). ¿Cómo se soluciona esto?

Descripción corta

EC2 Image Builder utiliza Automatización de AWS Systems Manager para crear imágenes personalizadas. Asegúrese de que la instancia de Amazon EC2 que se utiliza para compilar imágenes y ejecutar pruebas tenga acceso al servicio AWS Systems Manager.

El mensaje de error, “failure message = 'Step timed out while step is verifying the Systems Manager Agent availability on the target instance(s)'” (mensaje de error = “Se ha agotado el tiempo de espera del paso mientras este verifica la disponibilidad del SSM Agent en las instancias de destino”), puede producirse por las siguientes razones:

  • La instancia de compilación o prueba no puede acceder a los puntos de conexión de Systems Manager. Para resolver este problema, compruebe las reglas de entrada y salida del grupo de seguridad y la lista de control de acceso de la red (ACL de la red).
  • El perfil de instancia no contiene los permisos necesarios. Para resolver este problema, verifique que el perfil de instancia tenga las políticas correctas adjuntas.
  • La instancia no puede acceder al servicio de metadatos de instancias (IMDS). Para resolver este problema, verifique que la instancia pueda alcanzar el IMDS.
  • AWS Systems Manager Agent (SSM Agent) no está instalado en la imagen base.

Resolución

Verifique las reglas de entrada y salida para el grupo de seguridad y la ACL de red

Si la instancia de compilación o prueba no puede acceder a los puntos de conexión de Systems Manager, compruebe lo siguiente:

  • El grupo de seguridad tiene la salida abierta para el puerto 443.
  • La ACL de la red tiene abierta la entrada para los puertos efímeros (1024 a 65535) y la salida abierta para el puerto 443.

Para compilaciones de subredes públicas:

  • La subred debe tener activada la opción Enable auto-assign public IPv4 address (Habilitar asignación automática de direcciones IPv4 públicas).
  • La tabla de enrutamiento debe tener una puerta de enlace de Internet adjunta.

Para compilaciones de subredes privadas:

  • La tabla de enrutamiento debe tener una puerta de enlace o instancia NAT, o puntos de conexión de AWS PrivateLink para Systems Manager (ssm, ssmmessages, ec2messages) e Image Builder. Si el registro está activado, la tabla de enrutamiento también debe tener puntos de conexión para Amazon Simple Storage Service (Amazon S3) o Amazon CloudWatch.
  • El grupo de seguridad para el punto de conexión de Amazon Virtual Private Cloud (Amazon VPC) debe permitir el tráfico entrante en el puerto 443 al CIDR de la VPC.

Verificar que el perfil de instancia tenga las políticas correctas

El perfil de instancia es la función de AWS Identity and Access Management (IAM) que se define en la configuración de la infraestructura. Si no tiene los permisos necesarios, se produce un error en la compilación. El perfil de instancia debe tener las siguientes políticas administradas adjuntas para tener permiso para crear imágenes:

  • EC2InstanceProfileForImageBuilder
  • EC2InstanceProfileForImageBuilderECRContainerBuilds (para imágenes de Docker)
  • AmazonSSMManagedInstanceCore

También puede crear políticas personalizadas que tengan permisos similares a los de las políticas administradas anteriores.

Nota: Consulte la política de confianza del rol para asegurarse de que ec2.amazonaws.com pueda asumir el rol.

Verificar que la instancia pueda llegar al IMDS

El IMDS se usa para acceder a los metadatos de una instancia en ejecución. Si la instancia no puede acceder al IMDS, se produce un error en la compilación. Asegúrese de que el firewall de su sistema operativo (SO) permita el tráfico de 169.254.169.254 en el puerto 80 para que la instancia pueda llegar al IMDS.

Ejecute el siguiente comando para probar la conectividad:

$ telnet 169.254.169.254 80

Si usa un proxy, configure SSM Agent para que funcione con un proxy. Para Linux, consulte Configuración de SSM Agent para utilizar un proxy (Linux). Para Microsoft Windows, consulte Configurar el SSM Agent para usar un proxy para las instancias de Windows Server.

Verificar que el SSM Agent esté instalado en la imagen base

Las instancias que utiliza Image Builder para crear imágenes y ejecutar pruebas deben tener instalado el agente de Systems Manager.

Linux

En el caso de las instancias Linux de Amazon EC2 que no tienen el SSM Agent, Image Builder instala lo en la instancia de compilación de forma predeterminada. Sin embargo, si proporciona datos de usuario en la receta, también debe asegurarse de que el SSM Agent esté instalado en la imagen base. O bien, instale el SSM Agent con su entrada de datos de usuario.

Windows

Image Builder no instala el SSM Agent en las instancias de compilación de Amazon EC2 para Windows Server. Para comprobar si el SSM Agent está preinstalado en la imagen base, lance una instancia de EC2 con la imagen base. A continuación, ejecute el siguiente comando en PowerShell:

Get-Service AmazonSSMAgent

Si el SSM Agent no está preinstalado en su imagen base, deberá lanzar una instancia desde su imagen de origen. Seguidamente, instale manualmente el SSM Agent en la instancia EC2 y, a continuación, cree una nueva imagen base a partir de su instancia.

Desactive “Terminate instance on failure” (Terminar instancia en caso de error)

Si las resoluciones anteriores no resuelven el problema, entonces:

1.    Abra la consola de EC2 Image Builder.

2.    En Infrastructure configuration (Configuración de infraestructura active la opción Terminate instance on failure (Terminar instancia en caso de error) y vuelva a ejecutar la canalización.

3.    Conéctese a la instancia y ejecute los siguientes comandos para verificar la conexión con los puntos de conexión de Systems Manager:

Instancia de Linux

$ curl -v https://ssm.region.amazonaws.com
$ curl -v https://ec2messages.region.amazonaws.com
$ curl -v https://ssmmessages.region.amazonaws.com

Instancia de Windows

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

Nota: Sustituya region (región) por su región de AWS.

4.    Utilice las siguientes rutas para comprobar si hay errores en los registros de SSM:

Linux

  • /var/log/amazon/ssm/amazon-ssm-agent.log
  • /var/log/amazon/ssm/errors.log

Windows

  • %PROGRAMDATA%\Amazon\SSM\Logs\amazon-ssm-agent.log
  • %PROGRAMDATA%\Amazon\SSM\Logs\errors.log

¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?