Comment résoudre le problème d'une instance gérée par Systems Manager dont le statut est Connection Lost (Connexion perdue) ?

Dernière mise à jour : 02/02/2023

Mon instance gérée Amazon Elastic Compute Cloud (Amazon EC2) a le statut « Connection Lost » (Connexion perdue) dans la console AWS Systems Manager.

Brève description

Une instance gérée est une instance Amazon EC2 configurée afin d'être utilisée avec Systems Manager. Les instances gérées peuvent utiliser les services Systems Manager tels que Run Command (Exécuter la commande), Patch Manager (Gestionnaire de correctifs) et Session Manager (Gestionnaire de session). Pour plus d'informations sur les instances gérées, veuillez consulter la section Nœuds gérés.

Afin d'être une instance gérée avec le statut Online (En ligne), les instances doivent respecter les conditions suivantes :

  • Avoir un AWS Systems Manager Agent (SSM Agent) installé et en cours d'exécution.
  • Avoir une connectivité avec les points de terminaison Systems Manager à l'aide de l'agent SSM.
  • Avoir le rôle Gestion des identités et des accès AWS (AWS IAM) adéquat attaché.
  • Avoir une connectivité au service de métadonnées d'instance.

Vous pouvez également exécuter le document Systems Manager Automation AWSSupport-TroubleshootManagedInstance pour vérifier si l'instance respecte ces conditions. Pour plus d'informations, veuillez consulter la section AWSSupport-TroubleshootManagedInstance (français non garanti).

Remarque : pour les instances hybrides, reportez-vous à la section Configuration d'AWS Systems Manager pour les environnements hybrides.

Résolution

Remarque : veillez à sélectionner la région AWS dans laquelle se trouve votre instance avant d'effectuer les actions suivantes.

Afin de résoudre les problèmes liés à une instance gérée dont le statut est Connection Lost (Connexion perdue), vérifiez que l'instance répond aux conditions requises.

L'agent SSM est installé et en cours d'exécution sur l'instance

Afin de vérifier le statut de l'agent SSM, utilisez les commandes suivantes :

Amazon Linux, RHEL 6 (ou distributions similaires) :

$ sudo status amazon-ssm-agent

Amazon Linux 2, Ubuntu, RHEL 7 (ou distributions similaires) :

$ sudo systemctl status amazon-ssm-agent

Les systèmes Ubuntu 18.04 ou version ultérieure qui utilisent snap :

$ sudo snap services amazon-ssm-agent

Windows :

$ Get-Service AmazonSSMAgent

L'instance est connectée aux points de terminaison Systems Manager sur le port 443

La meilleure méthode pour vérifier la connectivité dépend de votre système d'exploitation.

Important : dans les exemples de commandes suivants, remplacez RegionID par votre ID de région AWS.

Pour obtenir la liste des points de terminaison Systems Manager par région, veuillez consulter la section Points de terminaison et quotas AWS Systems Manager (français non garanti).

Remarque : dans les exemples suivants, seul le gestionnaire de session AWS Systems Manager Session Manager nécessite le point de terminaison ssmmessages.

Pour les instances EC2 Linux : vous pouvez exécuter des commandes telnet ou netcat pour vérifier la connectivité aux points de terminaison sur le port 443.

Telnet

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

Voici un exemple de sortie pour une connexion réussie :

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

Pour quitter Telnet, maintenez la touche Ctrl enfoncée et appuyez sur la touche ]. Saisissez quit, puis appuyez sur Entrée.

Netcat

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

Remarque : Netcat n'est pas préinstallé sur les instances Amazon EC2. Pour installer manuellement Netcat, veuillez consulter la page Ncat sur le site web de Nmap (français non garanti).

Pour les instances EC2 Windows : exécutez les commandes Windows PowerShell suivantes pour vérifier la connectivité aux points de terminaison sur le port 443 :

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

Pour les sous-réseaux publics : les points de terminaison Systems Manager sont des points de terminaison publics. Cela signifie que votre instance doit pouvoir accéder à Internet à l'aide d'une passerelle Internet. Pour les problèmes de connexion aux points de terminaison à partir d'instances d'un sous-réseau public, vérifiez les points suivants :

Pour les sous-réseaux privés : votre instance doit pouvoir accéder à Internet à l'aide d'une passerelle NAT. Ou, vous pouvez configurer les points de terminaison d'un VPC pour atteindre les points de terminaison Systems Manager pour les instances d'un sous-réseau privé. Cela vous permet d'utiliser des adresses IP privées pour accéder en privé aux API Amazon EC2 et Systems Manager. Pour plus d'informations, veuillez consulter la section Comment créer des points de terminaison d'un VPC pour utiliser Systems Manager afin de gérer les instances EC2 privées sans accès à Internet ?

Le rôle IAM approprié est attaché à l'instance

Pour effectuer des appels d'API vers un point de terminaison Systems Manager, attachez la politique d'autorisations AmazonSSMManagedInstanceCore au rôle IAM attaché à votre instance. Si vous utilisez une politique IAM personnalisée, vérifiez qu'elle utilise les autorisations qui figurent sous AmazonSSMManagedInstanceCore. Assurez-vous également que la politique d'approbation du rôle IAM permet à ec2.amazonaws.com d'assumer ce rôle.

Pour plus d'informations, veuillez consulter la section Ajouter des autorisations à un profil d'instance Systems Manager (console).

Il existe une connexion au service de métadonnées d'instance

Remarque : vous devez vérifier la connectivité des métadonnées uniquement pour une instance Amazon EC2 standard.

L'agent SSM doit pouvoir communiquer avec le service de métadonnées d'instance afin d'obtenir les informations nécessaires concernant l'instance. Exécutez la commande Netcat pour tester la connexion :

nc -vz 169.254.169.254 80

Si vous utilisez un proxy sur l'instance, celui-ci risque de bloquer la connectivité à l'URL des métadonnées. Vérifiez que vous avez configuré votre agent SSM pour qu'il fonctionne avec un proxy. Pour configurer l'agent SSM afin qu'il utilise un proxy, veuillez consulter la documentation suivante :

Windows : Configuration de l'agent SSM pour utiliser un proxy pour les instances Windows Server

Linux : Configurer l'agent SSM pour utiliser un proxy

Résolution des problèmes

Si le statut de l'instance ne devient pas En ligne et indique toujours Connexion perdue, consultez les journaux de l'agent SSM pour résoudre le problème :

Windows : sous Windows, les journaux de l'Agent SSM se trouvent sous %PROGRAMDATA%\Amazon\SSM\Logs.

Linux : les journaux de l'agent SSM se trouvent sous /var/log/amazon/ssm.

Remarque : si l'instance ne rapporte pas à SSM, essayez de vous connecter via RDP (Windows) ou SSH (Linux) afin de collecter les journaux. Si vous ne parvenez toujours pas à vous connecter, arrêtez l'instance et détachez le volume racine. Ensuite, afin d'obtenir les journaux, attachez-le à une autre instance de la même zone de disponibilité (AZ) en tant que volume secondaire.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?