Quando tento executar o comando execute-command da AWS Command Line Interface (AWS CLI) no Amazon Elastic Container Service (Amazon ECS), recebo o seguinte erro: “An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation: The execute command failed due to an internal error. Try again later.”
Breve descrição
Você pode receber esse erro pelos seguintes motivos:
- O perfil de tarefa do Amazon ECS não tem as permissões necessárias para executar o comando execute-command.
- O perfil ou usuário do AWS Identity and Access Management (IAM) que está executando o comando não tem as permissões necessárias.
Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Resolução
Verifique as permissões do perfil de tarefas do Amazon ECS
Você recebe esse erro quando o perfil de tarefa do Amazon ECS não tem as permissões necessárias. Para resolver esse erro, crie uma política do IAM com as permissões necessárias e, em seguida, anexe a política ao perfil de tarefa do Amazon ECS.
- Crie a seguinte política do IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
]
}
Observação: certifique-se de que essas permissões não sejam negadas no nível do AWS Organizations.
- Anexe a política ao perfil de tarefa do Amazon ECS.
Pode haver atrasos na realização dessas alterações no nível da tarefa. Portanto, aguarde algum tempo depois de anexar a política ao perfil de tarefa e, em seguida, execute o comando execute-command.
Verifique as permissões de usuário ou perfil do IAM
O usuário ou o perfil do IAM que executa o comando execute-command deve ter as seguintes permissões:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:ExecuteCommand",
"Resource": "arn:aws:ecs:example-region:example-arn:cluster/example-cluster/*"
}
]
}
Se o erro persistir, execute o script amazon-ecs-exec-checker no site do GitHub. Esse script permite que você verifique e valide seu ambiente da AWS CLI e o cluster ou tarefa do Amazon ECS. O script também notifica você sobre o pré-requisito que não foi atendido.
Informações relacionadas
Usar o ECS Exec