Perché la pipeline di creazione immagini restituisce l'errore "Step timed out while step is verifying the Systems Manager Agent availability on the target instance(s)" (Passaggio scaduto durante la verifica della disponibilità dell'agente Systems Manager sulle istanze di destinazione) in Image Builder?

5 minuti di lettura
0

Il mio processo di creazione immagini scade in Amazon Elastic Compute Cloud (Amazon EC2) Image Builder. Quindi, restituisce l'errore "messaggio di errore = 'Passaggio scaduto durante la verifica della disponibilità dell'agente Systems Manager sulle istanze di destinazione'". Come posso risolvere questo problema?

Breve descrizione

EC2 Image Builder utilizza l'automazione AWS Systems Manager per creare immagini personalizzate. Assicurati che l'istanza Amazon EC2 utilizzata per creare immagini ed eseguire test abbia accesso al servizio AWS Systems Manager.

Il messaggio di errore, messaggio di errore = "Passaggio scaduto durante la verifica della disponibilità dell'agente SSM sulle istanze di destinazione", può verificarsi per i seguenti motivi:

  • L'istanza di build o test non riesce ad accedere agli endpoint di Systems Manager. Per risolvere questo problema, controllare le regole in entrata e in uscita per il gruppo di sicurezza e la lista di controllo degli accessi alla rete (ACL di rete).
  • Il profilo dell'istanza non dispone delle autorizzazioni richieste. Per risolvere questo problema, verifica che al profilo dell'istanza siano collegate le policy corrette.
  • L'istanza non può raggiungere Instance Metadata Service (IMDS). Per risolvere questo problema, verifica che l'istanza possa raggiungere IMDS.
  • Agente AWS Systems Manager (agente SSM) non è installato nell'immagine di base.

Risoluzione

Controlla le regole in uscita e in entrata per il gruppo di sicurezza e l'ACL di rete

Se l'istanza di build o di test non è in grado di accedere agli endpoint di Systems Manager, verifica quanto segue:

  • Il gruppo di sicurezza deve essere aperto in uscita per la porta 443.
  • L'ACL di rete deve avere un'apertura in entrata per le porte temporanee (1024-65535) e un'apertura in uscita per la porta 443.

Per le build di sottoreti pubbliche:

  • La sottorete deve avere l'opzione Abilita assegnazione automatica dell'indirizzo IPv4 pubblico attivata.
  • La tabella di instradamento deve avere un gateway Internet collegato.

Per le build di sottoreti private:

  • La tabella di instradamento deve avere un gateway o un'istanza NAT oppure endpoint AWS PrivateLink verso Systems Manager (ssm, ssmmessages, ec2messages) e Image Builder. Se la registrazione è attivata, la tabella di instradamento deve contenere anche endpoint verso Amazon Simple Storage Service (Amazon S3) o Amazon CloudWatch.
  • Il gruppo di sicurezza per l'endpoint Amazon Virtual Private Cloud (Amazon VPC) deve consentire il traffico in entrata sulla porta 443 verso il CIDR VPC.

Verifica che il profilo dell'istanza abbia le policy corrette

Il profilo dell'istanza è il ruolo AWS Identity and Access Management (IAM) definito nella configurazione dell'infrastruttura. Se non dispone delle autorizzazioni richieste, la compilazione non riesce. Il profilo dell'istanza deve avere le seguenti policy gestite collegate per avere l'autorizzazione a creare immagini:

  • EC2InstanceProfileForImageBuilder
  • EC2InstanceProfileForImageBuilderECRContainerBuilds (per le immagini Docker)
  • AmazonSSMManagedInstanceCore

Puoi inoltre creare policy personalizzate con autorizzazioni simili alle policy gestite precedenti.

Nota: controlla la policy di attendibilità del ruolo per assicurarti che ec2.amazonaws.com sia autorizzato ad assumere il ruolo.

Verifica che l'istanza possa raggiungere IMDS

IMDS viene utilizzato per accedere ai metadati da un'istanza in esecuzione. Se la tua istanza non riesce a raggiungere IMDS, la compilazione non riesce. Assicurati che il firewall del tuo sistema operativo (SO) consenta il traffico 169.254.169.254 sulla porta 80 in modo che l'istanza possa raggiungere IMDS.

Utilizza il seguente comando per testare la connettività:

$ telnet 169.254.169.254 80

Se utilizzi un proxy, configura l'agente SSM in modo che funzioni con un proxy. Per Linux, consulta Configurazione dell'agente SSM per l'utilizzo di un proxy (Linux). Per Microsoft Windows, consulta Configurazione dell'agente SSM per l'utilizzo di un proxy per le istanze Windows Server.

Verifica che l'agente SSM sia installato sull'immagine di base

Le istanze utilizzate da Image Builder per creare immagini ed eseguire test devono avere installato l'agente Systems Manager.

Linux

Per le istanze Amazon EC2 Linux che non dispongono dell'agente SSM, Image Builder lo installa sull'istanza di build per impostazione predefinita. Tuttavia, se fornisci dati utente nella ricetta, devi anche assicurarti che l'agente SSM sia installato sull'immagine di base. Oppure, installa l'agente SSM inserendo i dati utente.

Windows

Image Builder non installa l'agente SSM sulle istanze di build di Amazon EC2 per Windows Server. Per verificare se l'agente SSM è preinstallato sull'immagine di base, avvia un'istanza Amazon EC2 utilizzando l'immagine di base. Quindi, esegui il seguente comando in PowerShell:

Get-Service AmazonSSMAgent

Se l'agente SSM non è preinstallato sull'immagine di base, è necessario avviare un'istanza dall'immagine di origine. Successivamente, installa manualmente l'agente SSM sull'istanza EC2, quindi crea una nuova immagine di base dalla tua istanza.

Disabilita l'opzione "Termina l'istanza in caso di errore"

Se le soluzioni precedenti non risolvono il problema, allora:

1.    Apri la console di EC2 Image Builder.

2.    In Infrastructure configuration (Configurazione dell'infrastruttura), attiva l'opzione Termina l'istanza in caso di errore ed esegui nuovamente la pipeline.

3.    Connettiti all'istanza ed esegui i seguenti comandi per verificare la connessione agli endpoint di Systems Manager:

Istanza Linux

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

Istanza 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: sostituisci il campo regione con la tua regione AWS.

4.    Utilizza i seguenti percorsi per verificare la presenza di errori nei registri 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

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa