Pourquoi mon instance EC2 ne s'affiche-t-elle pas en tant que nœud géré ou affiche-t-elle l'état « 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 avec Systems Manager en tant que 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 AWS Support-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érifiez que l'agent SSM est 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.

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

Pour vérifier que l'agent SSM est en cours d'exécution, utilisez des commandes spécifiques au système d'exploitation pour vérifier l'état de l'agent.

Une fois que vous avez terminé de vérifier l'agent SSM, exécutez ssm-cli pour résoudre les problèmes de disponibilité des 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 : Dans 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 ID Region par la région de votre instance lorsque vous exécutez 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 quit, 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 de terminaison publics. 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 toute confidentialité 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 vers 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 créer des points de terminaison VPC afin de 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 VPC autorise le trafic entrant sur le port TCP 443 en provenance du groupe de sécurité attaché à votre instance.
  • Le groupe de sécurité attaché à votre instance autorise le trafic sortant du port TCP 443 vers l'adresse IP privée de l'interface réseau de votre point de terminaison VPC.

Vérifiez la configuration pour la configuration de gestion des hôtes par défaut

Remarque : Si vous n'utilisez pas la configuration de gestion des hôtes 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 (IAM) lorsque vous configurez la configuration de gestion des hôtes 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 Default Host Management Configuration.

Toutes les instances associées doivent utiliser le service de métadonnées d'instance version 2 (IMDSv2). Pour vérifier votre configuration IMDSv2, consultez les sections Lorsqu'il n'y a aucune utilisation d'IMDSv1 et Vérifiez si vos instances sont transférées vers IMDSv2.

La configuration de gestion des hôtes par défaut est disponible dans la version 3.2.582.0 ou ultérieure de l'agent SSM. Pour vérifier la version de votre agent SSM, consultez la section Vérification du numéro de version de l'agent SSM.

Pour vérifier la configuration de la gestion des hôtes 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 des comptes, sélectionnez Configuration de gestion des hôtes par défaut.
  4. Vérifiez que le paramètre Activer la configuration de gestion des hôtes par défaut est activé.

Vous pouvez également utiliser la commande AWS Command Line Interface (AWS CLI) suivante pour vérifier la configuration de la gestion des hôtes par défaut :

Remarque : Remplacez AccountID par l'ID 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 la configuration de gestion des hôtes 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 la configuration de gestion des hôtes par défaut n'est pas configurée.

Vérifiez que la configuration de gestion des hôtes par défaut utilise un rôle IAM approprié

Le rôle AWSSystemsManagerDefaultEC2InstanceManagementRole est le rôle IAM recommandé lorsque vous configurez la configuration de gestion des hôtes 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 qui autorisent l'opération ssm:UpdateInstanceInformation. L'agent SSM essaie d'utiliser les autorisations du profil d'instance avant d'utiliser les autorisations de configuration de gestion des hôtes 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 gestion des hôtes par défaut.

Vérifiez que le rôle IAM approprié est associé à l'instance

Remarque : Si vous utilisez la configuration de gestion des hôtes 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 à assumer ce rôle.

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

Vérifiez la connectivité à IMDS

L'agent SSM 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 existante, effectuez 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 de l'instance, Options de modification des métadonnées de l'instance. Dans la boîte de dialogue, le service de métadonnées de l'instance doit être activé.

  • Dans l'interface de ligne de commande AWS, exécutez la commande describe-instances CLI.

    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 le protocole IMDSv2 est pris en charge. « HttpEndpoint » : « activé » signifie que l'IMDS est activé.

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

Résolution des problèmes supplémentaires

Si votre instance n'apparaît toujours pas en tant que nœud géré ou montre une perte de connexion dans Systems Manager, poursuivez le dépannage dans les journaux de l'agent SSM :

  • Linux et macOS : Les journaux de l'agent SSM se trouvent dans /var/log/amazon/ssm.
  • Windows : Les journaux de l'agent SSM se trouvent dans %PROGRAMDATA%\Amazon\SSM\Logs.

Lorsque votre instance ne communique pas avec l'agent SSM, 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 7 mois