Perché la mia istanza EC2 non viene visualizzata come nodo gestito o mostra lo stato "Connessione persa" in Systems Manager?

9 minuti di lettura
0

La mia istanza Amazon Elastic Compute Cloud (Amazon EC2) ha perso la connessione o non viene visualizzata in Fleet Manager nella console AWS Systems Manager.

Risoluzione

Un'istanza gestita è un'istanza EC2 utilizzata con Systems Manager come nodo gestito.

Per confermare che l'istanza EC2 soddisfa i prerequisiti per essere un'istanza gestita, esegui il documento di Automazione Systems Manager AWSSupport-TroubleshootManagedInstance. Quindi, verifica che l'istanza EC2 soddisfi i seguenti requisiti.

Importante: durante le fasi di risoluzione dei problemi, seleziona la Regione AWS che include l'istanza EC2.

Verifica che Agente SSM sia installato e in esecuzione sull'istanza

Dopo aver verificato che il tuo sistema operativo supporti Systems Manager, controlla che Agente AWS Systems Manager (Agente SSM) sia installato e in esecuzione sull'istanza.

Agente SSM è preinstallato su alcune Amazon Machine Images (AMI) per Linux, macOS e Windows. Per installare manualmente Agente SSM quando l'agente non è preinstallato, consulta la seguente documentazione:

Per verificare che Agente SSM sia in esecuzione, utilizza i comandi specifici del sistema operativo per controllare lo stato dell'agente.

Dopo aver completato la verifica, esegui il comando ssm-cli per risolvere i problemi di disponibilità delle istanze gestite.

Verifica la connettività agli endpoint di Systems Manager sulla porta 443

Per verificare la connettività agli endpoint di Systems Manager sulla porta 443, è necessario considerare le impostazioni del sistema operativo e della sottorete. Per un elenco degli endpoint di Systems Manager suddivisi per regione, consulta la pagina Endpoint e quote di AWS Systems Manager.

Nota: negli esempi, l'endpoint ssmmessages è richiesto per Gestione sessione di AWS Systems Manager.

Istanze EC2 per Linux

Usa i comandi Telnet o Netcat per verificare la connettività agli endpoint sulla porta 443 per le istanze EC2 per Linux.

Nota: sostituisci RegionID con la regione dell'istanza durante l'esecuzione dei comandi.

Comandi Telnet:

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

Esempio di connessione 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 '^]'.

Per uscire da telnet, tieni premuto il tasto Ctrl e premi il tasto ]. Inserisci quit, quindi premi Invio.

Comandi Netcat:

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

Netcat non è preinstallato sulle istanze EC2. Per installare manualmente Netcat, consulta Ncat sul sito web di Nmap.

Istanze EC2 per Windows

Utilizza i seguenti comandi di Windows PowerShell per verificare la connettività agli endpoint sulla porta 443 per le istanze EC2 per 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

Sottoreti pubbliche

Gli endpoint di Systems Manager sono endpoint pubblici. Per risolvere i problemi che si presentano durante la connessione a un endpoint da un'istanza in una sottorete pubblica, conferma i punti seguenti:

Sottoreti private

Usa indirizzi IP privati per accedere privatamente alle API di Amazon EC2 e Systems Manager. Per risolvere i problemi che si presentano durante la connessione a un endpoint da un'istanza in una sottorete privata, conferma uno dei punti seguenti:

  • La tabella di routing dell'istanza indirizza il traffico Internet verso un gateway NAT.
  • L'endpoint VPC è configurato per raggiungere gli endpoint di Systems Manager.

Per maggiori informazioni, consulta la pagina How do I create VPC endpoints so that I can use Systems Manager to manage private EC2 instances without internet access?

Nota: ogni endpoint di interfaccia crea un'interfaccia di rete elastica nella sottorete fornita.

Per la sicurezza delle sottoreti private è consigliabile verificare le seguenti impostazioni:

  • Il gruppo di sicurezza collegato all'interfaccia di rete dell'endpoint VPC consente il traffico in entrata sulla porta TCP 443 dal gruppo di sicurezza collegato all'istanza.
  • Il gruppo di sicurezza collegato all'istanza consente il traffico in uscita dalla porta TCP 443 verso l'indirizzo IP privato per l'interfaccia di rete dell'endpoint VPC.

Verifica l'impostazione di Configurazione di gestione host predefinita

Nota: se non stai utilizzando Configurazione di gestione host predefinita, passa alla sezione Verifica che il ruolo IAM corretto sia collegato all'istanza.

Quando si imposta Configurazione di gestione host predefinita Systems Manager gestisce automaticamente le istanze EC2 senza un profilo dell'istanza AWS Identity and Access Management (IAM). Quando configuri questa funzionalità, Systems Manager dispone delle autorizzazioni per gestire tutte le istanze nella tua regione e nel tuo account. Se le autorizzazioni non sono sufficienti per il tuo caso d'uso, aggiungi le policy al ruolo IAM predefinito creato da Configurazione di gestione host predefinita.

Tutte le istanze associate devono utilizzare il Servizio di metadati dell'istanza versione 2 (IMDSv2). Per verificare la configurazione di IMDSv2, consulta le sezioni Quando l'utilizzo di IMDSv1 è pari a zero e Verifica se le istanze hanno eseguito la transizione a IMDSv2.

Configurazione di gestione host predefinita è disponibile nella versione 3.2.582.0 o successiva di Agente SSM. Per verificare la versione di Agente SSM, consulta la pagina Verifica del numero di versione di SSM Agent.

Per verificare l'impostazione di Configurazione di gestione host predefinita, completa i passaggi seguenti:

  1. Apri la console Systems Manager.
  2. Nel pannello di navigazione, scegli Fleet Manager.
  3. Dall'elenco a discesa Gestione account, scegli Configurazione di gestione host predefinita.
  4. Verifica che l'impostazione Abilita la configurazione di gestione host predefinita sia attiva.

Puoi anche utilizzare il seguente comando dell'Interfaccia della linea di comando AWS (AWS CLI) per verificare l'impostazione di Configurazione di gestione host predefinita:

Nota: sostituisci AccountID con l'ID del tuo account AWS durante l'esecuzione dei comandi.

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

Quando Configurazione di gestione host predefinita sarà impostata, riceverai una risposta simile alla seguente:

{
  "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: se il valore di SettingValue è $None, Configurazione di gestione host predefinita non sarà impostata.

Verifica che Configurazione di gestione host predefinita stia utilizzando un ruolo IAM appropriato

Il ruolo AWSSystemsManagerDefaultEC2InstanceManagementRole è il ruolo IAM consigliato quando si imposta Configurazione di gestione host predefinita. Per utilizzare un ruolo diverso, assicurati che al ruolo sia associata la policy IAM AmazonSSMManagedEC2InstanceDefaultPolicy.

Se hai dei profili dell'istanza collegati alle tue istanze EC2, rimuovi tutte le autorizzazioni che consentono l'operazione ssm:UpdateInstanceInformation. Agente SSM tenta di utilizzare le autorizzazioni del profilo dell'istanza prima di utilizzare le autorizzazioni di Configurazione di gestione host predefinita. Se consenti l'operazione ssm:UpdateInstanceInformation nei profili dell'istanza, l'istanza non utilizzerà le autorizzazioni di Configurazione di gestione host predefinita.

Verifica che il ruolo IAM corretto sia collegato all'istanza

Nota: se stai utilizzando Configurazione di gestione host predefinita, passa alla sezione Verifica la connettività con IMDS.

Per effettuare chiamate API a un endpoint di Systems Manager, è necessario collegare la policy AmazonSSMManagedInstanceCore al ruolo IAM associato all'istanza. Se stai utilizzando una policy IAM personalizzata, conferma che la tua policy personalizzata utilizzi le autorizzazioni disponibili in AmazonSSMManagedInstanceCore. Inoltre, assicurati che la policy di attendibilità per il tuo ruolo IAM consenta di assumere questo ruolo a ec2.amazonaws.com.

Per ulteriori informazioni, consulta la sezione Aggiunta delle autorizzazioni del profilo dell'istanza per Systems Manager a un ruolo esistente (console).

Verifica la connettività con IMDS

Agente SSM deve comunicare con il Servizio di metadati dell'istanza (IMDS) per ottenere le informazioni necessarie sull'istanza. Per testare la connessione, esegui il seguente comando Netcat:

nc -vz 169.254.169.254 80

Per verificare che IMDS sia impostato per l'istanza esistente, esegui una delle seguenti operazioni:

  • Apri la console Amazon EC2. Nel pannello di navigazione scegli Istanze, seleziona l'istanza, quindi scegli Operazioni, Impostazioni istanza, Modifica opzioni metadati dell'istanza. Nella finestra di dialogo, il Servizio di metadati dell'istanza deve essere abilitato.

  • In AWS CLI, esegui il comando di AWS CLI describe-instances.

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

    Esempio di output:

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

    Nota: "HttpTokens": "optional" significa che sono supportati sia IMDSv1 che IMDSv2. "HttpTokens": "required" significa che IMDSv2 è supportato. "HttpEndpoint": "enabled" significa che IMDS è attivo.

Se utilizzi un proxy sull'istanza, il proxy potrebbe bloccare la connettività all'URL dei metadati. Per evitare ciò, assicurati di configurare Agente SSM in modo che funzioni con un proxy e di impostare no_proxy per l'URL dei metadati. Per configurare Agente SSM per l'utilizzo di un proxy, consulta la seguente documentazione:

Risoluzione di problemi aggiuntivi

Se l'istanza continua a non apparire come nodo gestito o mostra una connessione persa in Systems Manager, continua la risoluzione dei problemi nei log di Agente SSM:

  • Linux e macOS: i log dI Agente SSM si trovano in /var/log/amazon/ssm.
  • Windows: i log di Agente SSM si trovano in %PROGRAMDATA%\Amazon\SSM\Logs.

Se l'istanza non invia report ad Agente SSM, prova ad accedere utilizzando RDP (Windows) o SSH (Linux) per raccogliere i log. Se non riesci a raccogliere i log, devi arrestare l'istanza e scollegare il volume root. Quindi, collega il volume root a un'altra istanza nella stessa zona di disponibilità del volume secondario per ottenere i log.

Informazioni correlate

Collegamento di un volume Amazon EBS a un'istanza

Scollegare il volume Amazon EBS da un'istanza Linux

Rendi disponibile un volume Amazon EBS per l'uso su Linux

Rendi disponibile un volume Amazon EBS per l'uso su Windows

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa