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

Date de la dernière mise à jour : 19/03/2021

Dans la console AWS Systems Manager sous Instances gérées, le statut de mon instance gérée Amazon Elastic Compute Cloud (Amazon EC2) est Connexion perdue.

Brève description

Une instance gérée est une instance Amazon EC2 configurée pour être utilisée avec Systems Manager. Les instances gérées peuvent utiliser les services Systems Manager tels que les fonctionnalités Run Command, Gestionnaire de correctifs et Gestionnaire de session.

Les instances doivent respecter les conditions suivantes pour être considérées comme des instances gérées dont le statut est En ligne :

  • Avoir l'agent 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 AWS Identity and Access Management (IAM) adéquat assigné.
  • Avoir une connectivité au service de métadonnées des instances.

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

Solution

Remarque : veillez à sélectionner la région dans laquelle se trouve votre instance avant de résoudre ce problème.

Pour résoudre le problème d'une instance gérée dont le statut est Connexion perdue, vérifiez que les conditions préalables suivantes sont remplies pour cette instance :

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

Pour vérifier l'état 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

Vérifier la connectivité 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, consultez Points de terminaison et quotas AWS Systems Manager.

Remarque : dans les exemples suivants, le point de terminaison ssmmessages est requis uniquement pour le Session Manager d'AWS Systems Manager.

Pour les instances EC2 Linux : Vous pouvez utiliser les 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

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, consultez Ncat sur le site web de Nmap.

Pour les instances EC2 Windows : vous pouvez utiliser 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, confirmez les points suivants :

Pour les sous-réseaux privés : 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'accéder en privé aux API Amazon EC2 et Systems Manager à l'aide d'adresses IP privées. Pour plus d'informations, consultez Comment créer les points de terminaison d'un VPC pour utiliser Systems Manager afin de gérer les instances EC2 privées sans accès à Internet ?

Vérifier que le rôle IAM adéquat est assigné à l'instance

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

Pour plus d'informations, consultez Ajout d'autorisations à un profil d'instance Systems Manager (console).

Vérifier la connectivité au service de métadonnées des instances

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

nc -vz 169.254.169.254 80

Si vous utilisez un proxy sur l'instance, ce dernier peut bloquer la connectivité à l'URL des métadonnées. Assurez-vous que vous avez configuré l'agent SSM pour qu'il fonctionne avec un proxy. Pour configurer l'agent SSM pour utiliser un proxy, consultez :

Windows : Configurer l'agent SSM pour utiliser un proxy pour les instances Windows

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 dans /var/log/amazon/ssm.


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


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