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