Comment résoudre l'erreur « An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation » dans Amazon ECS ?

Lecture de 2 minute(s)
0

Lorsque j'essaie d'exécuter la commande execute-command de l'interface de la ligne de commande AWS (AWS CLI) 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 ».

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 gestion des identités et des accès AWS (AWS IAM) qui exécute la commande ne dispose pas des autorisations requises.

**Remarque :**Si des erreurs surviennent lorsque vous exécutez des commandes AWS CLI, consultez l’article Résoudre les erreurs AWS CLI. Vérifiez également que vous utilisez la version la plus récente de l'interface.

Résolution

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

Cette erreur survient lorsque le rôle de tâche Amazon ECS ne dispose pas des autorisations requises. Pour résoudre cette erreur, créez une politique IAM avec les autorisations requises, puis attachez 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 : vous devez vérifier que ces autorisations ne sont pas refusées au niveau d’AWS Organizations.
  2. Attachez la politique au rôle de tâche Amazon ECS.

La mise en œuvre de ces modifications au niveau des tâches peut prendre un certain temps. Une fois la politique attachée au rôle de tâche, il est donc recommandé d’attendre un peu avant d’exécuter la commande execute-command.

Vérification des autorisations de l'utilisateur ou rôle IAM

L'utilisateur ou rôle IAM qui exécute la commande execute-command doit disposer 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 provenant du site Web de GitHub. Ce script vous permet de vérifier et de valider votre environnement AWS CLI, ainsi que le cluster ou la tâche Amazon ECS. Le script vous signalera également tout prérequis non rempli.

Informations connexes

Utilisation d’ECS Exec

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