Quando tento executar o comando execute-command do AWS Command Line Interface (AWS CLI) no Amazon Elastic Container Service (Amazon ECS), recebo o seguinte erro:
“Ocorreu um erro (TargetNotConnectedException) ao chamar a operação ExecuteCommand: O comando execute falhou devido a um erro interno. Tente novamente mais tarde”
Breve descrição
Você pode receber esse erro devido aos seguintes motivos:
- A função de tarefa do Amazon ECS não tem as permissões necessárias para executar o comando execute-command.
- A função ou o 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 do AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.
Resolução
Verifique as permissões da função de tarefa do Amazon ECS
Você recebe esse erro quando a função de tarefa do Amazon ECS não tem as permissões necessárias. Você pode resolver esse erro criando uma política do IAM com as permissões necessárias e anexando a política à função de tarefa do Amazon ECS.
1. 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.
2. Anexe a política à função de tarefa do Amazon ECS.
Pode haver atrasos na propagação dessas alterações no nível da tarefa. Portanto, aguarde algum tempo depois de anexar a política à função de tarefa e tente executar o comando execute-command.
Verifique as permissões de usuário ou função do IAM
Certifique-se de que o usuário ou a função do IAM que está executando o comando execute-command tenha 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 você ainda estiver recebendo o erro, execute o script amazon-ecs-exec-checker. Esse script permite verificar e validar o ambiente da AWS CLI e o cluster ou tarefa do Amazon ECS. O script também o notifica sobre o pré-requisito que não foi atendido.
Informações relacionadas
Habilitar e usar o ECS Exec