Pourquoi mon instance EC2 ne s’affiche-t-elle pas sous forme de nœud géré ou affiche-t-elle un statut « Connexion perdue » dans Systems Manager ?

Lecture de 10 minute(s)
0

Mon instance Amazon Elastic Compute Cloud (Amazon EC2) a perdu sa connexion ou ne s’affiche pas sous Fleet Manager dans la console AWS Systems Manager.

Résolution

Une instance gérée est une instance EC2 utilisée par Systems Manager sous forme de nœud géré.

Pour vérifier que votre instance EC2 répond aux conditions requises pour être une instance gérée, exécutez le document AWSSupport-TroubleshootManagedInstance Systems Manager Automation. Vérifiez ensuite que votre instance EC2 répond aux exigences suivantes.

Important : au cours des étapes de résolution des problèmes, sélectionnez la région AWS qui inclut votre instance EC2.

Vérifier que SSM Agent est bien installé et en cours d’exécution sur l’instance

Après avoir vérifié que votre système d’exploitation prend en charge Systems Manager, vérifiez que l’agent AWS Systems Manager Agent (SSM Agent) est installé et s’exécute sur votre instance.

SSM Agent est préinstallé sur certaines Amazon Machine Images (AMI) Linux, macOS et Windows. Pour installer manuellement SSM Agent alors que l’agent n’est pas préinstallé, consultez la documentation suivante :

Pour vérifier que SSM Agent est en cours d’exécution, utilisez des commandes propres au système d’exploitation pour vérifier le statut d’agent.

Une fois que vous avez terminé de vérifier de SSM Agent, exécutez ssm-cli pour résoudre les problèmes de disponibilité d’instances gérées.

Vérifiez la connectivité aux points de terminaison de Systems Manager sur le port 443

Pour vérifier la connectivité aux points de terminaison de Systems Manager sur le port 443, vous devez prendre en compte les paramètres de votre système d’exploitation et de sous-réseau. Pour obtenir la liste des points de terminaison de Systems Manager par région, consultez la section Points de terminaison et quotas d’AWS Systems Manager.

Remarque : parmi les exemples, le point de terminaison ssmmessages est requis pour le Gestionnaire de session d’AWS Systems Manager.

Instances Linux EC2

Utilisez les commandes Telnet ou Netcat pour vérifier la connectivité aux points de terminaison sur le port 443 pour les instances Linux EC2.

Remarque : remplacez RegionID par la région de votre instance en exécutant des commandes.

Commandes Telnet :

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

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

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

Commandes Netcat :

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

Netcat n’est pas préinstallé sur les instances EC2. Pour installer Netcat manuellement, consultez Ncat sur le site Web de Nmap.

Instances Windows EC2

Utilisez les commandes Windows PowerShell suivantes pour vérifier la connectivité aux points de terminaison sur le port 443 pour les instances Windows EC2.

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

Sous-réseaux publics

Les points de terminaison de Systems Manager sont des points publics de terminaison. Pour résoudre les problèmes liés à la connexion à un point de terminaison à partir d’une instance d’un sous-réseau public, confirmez les points suivants :

Sous-réseaux privés

Utilisez des adresses IP privées pour accéder en privé aux API Amazon EC2 et Systems Manager. Pour résoudre les problèmes liés à la connexion à un point de terminaison à partir d’une instance d’un sous-réseau privé, confirmez l’un des points suivants :

  • La table de routage de votre instance achemine le trafic Internet jusqu’à une passerelle NAT.
  • Le point de terminaison de votre VPC est configuré pour atteindre les points de terminaison de Systems Manager.

Pour plus d’informations, consultez la section Comment puis-je créer des points de terminaison de VPC pour pouvoir utiliser Systems Manager pour gérer des instances EC2 privées sans accès à Internet ?

Remarque : chaque point de terminaison d’interface crée une interface réseau élastique dans le sous-réseau fourni.

Dans le cadre des meilleures pratiques de sécurité pour les sous-réseaux privés, vérifiez les paramètres suivants :

  • Le groupe de sécurité attaché à l’interface réseau de votre point de terminaison d’un VPC autorise le trafic entrant de port TCP 443 en provenance du groupe de sécurité attaché à votre instance.
  • Le groupe de sécurité attaché à votre instance autorise la sortie de trafic du port TCP 443 jusqu’à l’adresse IP privée de l’interface réseau du point de terminaison de votre VPC.

Vérifier la configuration pour Configuration de la gestion de l’hôte par défaut

Remarque : si vous n’utilisez pas Configuration de la gestion de l’hôte par défaut, passez à la section Vérifier que le rôle IAM approprié est associé à l’instance.

Systems Manager gère automatiquement les instances EC2 sans profil d’instance AWS Identity and Access Management (AWS IAM) lorsque vous configurez Configuration de la gestion de l’hôte par défaut. Lorsque vous configurez cette fonctionnalité, Systems Manager est autorisé à gérer toutes les instances de votre région et de votre compte. Si les autorisations ne sont pas suffisantes pour votre cas d’utilisation, ajoutez des politiques au rôle IAM par défaut créé par Configuration de la gestion de l’hôte par défaut.

Toutes les instances associées doivent utiliser le Service de métadonnées d’instances de Version 2 (IMDSv2). Pour vérifier votre configuration IMDSv2, consultez les sections En cas d’inutilisation d’IMDSv1 et Vérifiez si vos instances sont transférées jusqu’à IMDSv2.

Configuration de la gestion de l’hôte par défaut est disponible dans la version 3.2.582.0 ou ultérieure de SSM Agent. Pour vérifier la version de votre SSM Agent, consultez la section Vérification du numéro de version de SSM Agent.

Pour vérifier la configuration de Configuration de la gestion de l’hôte par défaut, procédez comme suit :

  1. Ouvrez la console Systems Manager.
  2. Dans le volet de navigation, choisissez Fleet Manager.
  3. Dans la liste déroulante Gestion de compte, sélectionnez Configuration de la gestion de l’hôte par défaut.
  4. Vérifiez l’activation du paramètre Activer Configuration de la gestion de l’hôte par défaut.

Vous pouvez également utiliser la commande de l’interface de la ligne de commande AWS (AWS CLI) suivante pour vérifier la configuration de Configuration de la gestion de l’hôte par défaut :

Remarque : remplacez AccountID par l’identifiant de votre compte AWS lorsque vous exécutez des commandes.

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

Lorsque Configuration de la gestion de l’hôte par défaut est configurée, vous recevez une réponse similaire à la suivante :

{
  "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"
  }
}

Remarque : si la valeur de SettingValue est $None, cela signifie que Configuration de la gestion de l’hôte par défaut n’est pas configurée.

Vérifier que Configuration de la gestion de l’hôte par défaut utilise un rôle IAM approprié

Le rôle AWSSystemsManagerDefaultEC2InstanceManagementRole est le rôle IAM recommandé lorsque vous configurez Configuration de la gestion de l’hôte par défaut. Pour utiliser un autre rôle, assurez-vous que la politique IAM AmazonSSMManagedEC2InstanceDefaultPolicy y est associée.

Si des profils d’instance sont attachés à vos instances EC2, supprimez toutes les autorisations permettant l’opération ssm:UpdateInstanceInformation. SSM Agent essaie d’utiliser les autorisations de profil d’instance avant d’utiliser les autorisations de Configuration de la gestion de l’hôte par défaut. Lorsque vous autorisez l’opération ssm:UpdateInstanceInformation dans vos profils d’instance, votre instance n’utilise pas les autorisations de Configuration de la gestion de l’hôte par défaut.

Vérifier que le bon rôle IAM est associé à l’instance

Remarque : si vous utilisez Configuration de la gestion de l’hôte par défaut, passez à la section Vérifier la connectivité à IMDS.

Pour effectuer des appels d’API vers un point de terminaison de Systems Manager, vous devez associer la politique AmazonSSMManagedInstanceCore au rôle IAM associé à votre instance. Si vous utilisez une politique IAM personnalisée, vérifiez que celle-ci utilise les autorisations disponibles dans AmazonSSMManagedInstanceCore. Assurez-vous également que la politique de confiance de votre rôle IAM autorise ec2.amazonaws.com à endosser ce rôle.

Pour plus d’informations, consultez la section Ajouter des autorisations à un profil d’instance de Systems Manager (console).

Vérifier la connectivité à IMDS

SSM Agent doit communiquer avec le service de métadonnées d’instance (IMDS) pour obtenir les informations nécessaires sur votre instance. Pour tester la connexion, exécutez la commande Netcat suivante :

nc -vz 169.254.169.254 80

Pour vérifier qu’IMDS est configuré pour votre instance en cours, suivez l’une des étapes suivantes :

  • Ouvrez la console Amazon EC2. Dans le volet de navigation, choisissez Instances, sélectionnez votre instance, puis choisissez Actions, Paramètres d’instances, Modifier les options de métadonnées d’instances. Dans la fenêtre de dialogue, Service de métadonnées d’instance doit être Activé.

  • Dans l’interface de la ligne de commande AWS, exécutez la commande de CLIdescribe-instances.

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

    Exemple de sortie :

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

    Remarque : « HttpTokens » : « facultatif » signifie que les formats IMDSv1 et IMDSv2 sont tous deux pris en charge. « HttpTokens » : « obligatoire » signifie que c’est le protocole IMDSv2 qui est pris en charge. « HttpEndpoint » : « activé » signifie qu’IMDS est activé.

Si vous utilisez un proxy sur votre instance, celui-ci peut bloquer la connectivité à l’URL des métadonnées. Pour éviter cela, assurez-vous de configurer votre SSM Agent pour qu’il fonctionne avec un proxy et de ne définir no_proxy pour l’URL de métadonnées. Pour configurer SSM Agent pour qu’il utilise un proxy, consultez la documentation suivante :

Dépannage supplémentaire

Si votre instance n’apparaît toujours pas sous forme de nœud géré ou qu’elle montre une perte de connexion dans Systems Manager, poursuivez le dépannage dans les journaux de SSM Agent :

  • Linux et macOS : les journaux de SSM Agent se trouvent dans /var/log/amazon/ssm.
  • Windows : les journaux de SSM Agent se trouvent dans %PROGRAMDATA%\Amazon\SSM\Logs.

Lorsque votre instance ne communique pas avec SSM Agent, essayez de vous connecter via RDP (Windows) ou SSH (Linux) pour collecter les journaux. Si vous ne parvenez pas à collecter les journaux, vous devez arrêter votre instance et détacher le volume racine. Ensuite, attachez le volume racine à une autre instance de la même zone de disponibilité qu’un volume secondaire pour obtenir les journaux.

Informations connexes

Associer un volume Amazon Elastic Block Store (Amazon EBS) à une instance

Détacher un volume Amazon EBS d’une instance Linux

Rendre un volume Amazon EBS disponible pour une utilisation sous Linux

Rendre un volume Amazon EBS disponible pour une utilisation sous Windows

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an