Passer au contenu

Pourquoi ne puis-je pas démarrer SSM Agent sur mon instance Windows Amazon EC2 ?

Lecture de 5 minute(s)
0

Je ne parviens pas à démarrer AWS Systems Manager Agent (SSM Agent) sur mon instance Windows Amazon Elastic Compute Cloud (Amazon EC2).

Résolution

Remarque : Pour déterminer si une instance EC2 présente la configuration requise pour un nœud géré, il est recommandé d'utiliser ssm-cli version 3.1.501.0 ou ultérieure. Pour plus d'informations, consultez la sectionRésolution des problèmes liés à la disponibilité des nœuds gérés à l'aide de ssm-cli.

S’assurer que le rôle IAM dispose des autorisations requises

Le rôle Gestion des identités et des accès AWS (AWS IAM) de l'instance doit disposer des autorisations requises pour effectuer des appels d'API vers le point de terminaison AWS Systems Manager. Associez la politique AmazonSSMManagedInstanceCore au rôle ou assurez-vous que votre politique personnalisée inclut toutes les autorisations répertoriées dans AmazonSSMManagedInstanceCore.

Assurez-vous également que la politique d’approbation du rôle autorise ec2.amazonaws.com à assumer le rôle.

Exemple de politique d’approbation :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "ec2.amazonaws.com",
                    "ssm.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

S’assurer que SSM Agent peut accéder aux métadonnées de l'instance

SSM Agent doit communiquer avec le service de métadonnées de l'instance pour obtenir les informations nécessaires sur l'instance. Pour accéder aux métadonnées de votre instance, utilisez le navigateur de l'instance en cours d'exécution.

Si vous utilisez le service de métadonnées d'instance version 2 (IMDSv2), exécutez la commande suivante en fonction de votre système d'exploitation (OS).

Linux :

TOKEN=curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/

Windows :

[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token

Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/

Remarque : Pour plus d'informations, consultez la section Comment fonctionne la version 2 du service de métadonnées d'instance.

Si vous ne parvenez pas à accéder aux métadonnées, exécutez la commande suivante depuis Windows PowerShell ou depuis l'invite de commandes :

route print

Dans la sortie, confirmez qu'il existe un itinéraire pour 169.254.169.254.

Exemple de sortie :

Persistent Routes:     
Network Address     Netmask             Gateway Address     Metric  
169.254.169.254     255.255.255.255     172.31.16.1         15  
169.254.169.250     255.255.255.255     172.31.16.1         15  
169.254.169.251     255.255.255.255     172.31.16.1         15  
169.254.169.249     255.255.255.255     172.31.16.1         15  
169.254.169.123     255.255.255.255     172.31.16.1         15  
169.254.169.253     255.255.255.255     172.31.16.1         15

Si l’itinéraire est manquant ou si l'adresse de la passerelle ne correspond pas au sous-réseau actuel, effectuez l'une des opérations suivantes :

  • Exécutez la commande suivante pour ajouter manuellement l'itinéraire :

    route add -p 169.254.169.254 mask 255.255.255.255 0.0.0.0

    Remarque : Remplacez 0.0.0.0 par l'adresse de passerelle de votre instance.

  • Si l'instance utilise EC2Launch v1, exécutez la commande suivante à partir d'une session Windows PowerShell élevée pour ajouter les routes de métadonnées :

    import-Module c:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psm1 ; Add-Routes
  • Si l'instance utilise EC2Launch v2 ou EC2Config, exécutez la commande suivante pour redémarrer les services :

    Restart-Service -Name EC2Launch

    Remarque : La commande précédente définit des itinéraires statiques non persistants pour accéder au service de métadonnées.

Si l’itinéraire existe mais que l'instance ne peut pas récupérer les métadonnées, vérifiez que la configuration du pare-feu ou de l'antivirus de votre instance ne refuse pas explicitement le trafic vers 169.254.169.254. Pour en savoir plus, consultez la section Comment résoudre l'erreur « Waiting for the metadata service » sur mon instance Windows Amazon EC2 ?

S’assurer que l'instance peut se connecter aux points de terminaison requis

Pour vérifier que l'instance peut se connecter aux points de terminaison de Systems Manager sur le port 443, exécutez les commandes Windows PowerShell suivantes :

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

Remarque : Remplacez RegionID par la région AWS de l'instance.

Si l'instance ne parvient pas à se connecter sur le port 443, effectuez les actions suivantes en fonction du type de sous-réseau dans lequel se trouve l'instance.

Sous-réseaux publics

Systems Manager comporte des points de terminaison publics. Votre instance doit donc utiliser une passerelle Internet pour accéder à Internet. Assurez-vous que la table de routage de votre instance contient un itinéraire vers Internet. Aussi, vérifiez que vos groupes de sécurité d’Amazon Virtual Private Cloud (Amazon VPC) et vos listes de contrôle d’accès au réseau (ACL réseau) autorisent les connexions sortantes sur le port 443.

Sous-réseaux privés

Pour les sous-réseaux privés, votre instance doit utiliser une passerelle NAT pour accéder à Internet. Ou bien, vous devez configurer les points de terminaison Amazon VPC pour atteindre les points de terminaison Systems Manager.

Pour plus d'informations sur les exigences de configuration réseau, consultez la section Pourquoi Systems Manager n'affiche-t-il pas mon instance Amazon EC2 en tant qu'instance gérée ?

Vérifier les paramètres du proxy

Si vous utilisez des proxys, Systems Manager évalue et applique les paramètres de proxy à la configuration de l'agent lorsque vous démarrez SSM Agent. Assurez-vous d'avoir correctement configuré SSM Agent pour utiliser un proxy.

Mettre à niveau SSM Agent

Il est recommandé de télécharger et d'installer la dernière version de SSM Agent. Pour trouver les dernières versions de SSM Agent, consultez la page aws/amazon-ssm-agent Releases sur le site Web de GitHub.

Résoudre d'autres problèmes

Si l'instance ne parvient toujours pas à démarrer l'agent, consultez les journaux de SSM Agent pour identifier les erreurs que vous devez résoudre.

AWS OFFICIELA mis à jour il y a 6 mois