Comment résoudre l'erreur « An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation » (Une erreur s'est produite (TargetNotConnectedException) lors de l'appel de l'opération ExecuteCommand) dans Amazon ECS ?

Lecture de 3 minute(s)
0

Lorsque j'essaie d'exécuter la commande AWS Command Line Interface (AWS CLI) execute-command dans Amazon Elastic Container Service (Amazon ECS), l'erreur suivante s'affiche : « An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation: The execute command failed due to an internal error. Try again later » ( (Une erreur s'est produite (TargetNotConnectedException) lors de l'appel de l'opération ExecuteCommand : La commande execute a échoué en raison d'une erreur interne). Réessayez plus tard).

Brève description

Cette erreur peut survenir pour les raisons suivantes :

  • Le rôle de tâche Amazon ECS ne dispose pas des autorisations requises pour exécuter la commande execute-command.
  • Le rôle ou l'utilisateur AWS Identity and Access Management (IAM) qui exécute la commande ne dispose pas des autorisations requises.

Remarque : en cas d'erreurs lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Solution

Vérification des autorisations du rôle de tâche Amazon ECS

Cette erreur s'affiche lorsque le rôle de tâche Amazon ECS ne dispose pas des autorisations requises. Vous pouvez résoudre cette erreur en créant une politique IAM avec les autorisations requises, puis en attachant la politique au rôle de tâche Amazon ECS.

1.    Créez la politique IAM suivante :

{
   "Version": "2012-10-17",
   "Statement": [
       {
       "Effect": "Allow",
       "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
       ],
      "Resource": "*"
      }
   ]
}

Remarque : assurez-vous que ces autorisations ne sont pas refusées au niveau AWS Organizations.

2.    Attachez la politique au rôle de tâche Amazon ECS.

Il peut exister des délais de propagation de ces modifications au niveau des tâches. Par conséquent, attendez quelques instants après avoir attaché la politique au rôle de tâche, puis essayez d'exécuter la commande execute-command.

Vérification des autorisations des utilisateurs ou des rôles IAM

Assurez-vous que l'utilisateur ou le rôle IAM qui exécute la commande execute-command dispose des autorisations suivantes :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ecs:ExecuteCommand",
            "Resource": "arn:aws:ecs:example-region:example-arn:cluster/example-cluster/*"
        }
    ]
}

Si l'erreur persiste, exécutez le script amazon-ecs-exec-checker. Ce script vous permet de vérifier et de valider votre environnement AWS CLI et le cluster ou la tâche Amazon ECS. Le script vous informe également de la condition préalable qui n'est pas remplie.


Informations connexes

Activation et utilisation d'ECS Exec

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans