Quando executo minhas tarefas do Amazon Elastic Container Service (Amazon ECS) ou do AWS Fargate, recebo o erro "ECS was unable to assume the role."
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Se você configurou incorretamente seu perfil ou relação de confiança do IAM, talvez receba o seguinte erro:
"ECS was unable to assume the role 'arn:aws:iam::444455556666:role/Admin' that was provided for this task. Please verify that the role being passed has the proper trust relationship and permissions and that your IAM user has permissions to pass this role."
Para resolver, verifique se sua função de tarefa tem a política de confiança correta e confirme se você usa as permissões do IAM necessárias para o perfil do IAM.
Verifique suas permissões de perfil de tarefa
Certifique-se de que sua definição de tarefa inclua as permissões corretas para seu perfil do IAM. Para verificar as permissões do seu perfil de tarefa, conclua as seguintes etapas:
- Abra o console do IAM.
- No painel de navegação, selecione Perfis.
- Selecione seu perfil de tarefa para sua definição de tarefa.
- Execute o comando get-role da AWS CLI para consultar as informações sobre seu perfil de tarefa:
aws iam get-role --role-name task-execution-role
Observação: substitua task-execution-role pelo nome do seu perfil do IAM para sua tarefa.
Se você não tiver um perfil de tarefa, crie um perfil do IAM de tarefa.
Configurar a política de confiança para ecs-tasks.amazonaws.com
Para que a tarefa do Amazon ECS assuma o perfil do IAM, configure a política de confiança para permitir o serviço ecs-tasks.amazonaws.com.
Conclua as etapas a seguir:
-
Abra o console do IAM.
-
No painel de navegação, selecione Perfis.
-
Selecione seu perfil de tarefa e, em seguida, escolha Relacionamentos de confiança.
-
Verifique se a política de confiança tem ecs-tasks.amazonaws.com como serviço.
Exemplo de política:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
Se você não tiver o ecs-tasks.amazonaws.com definido como o serviço, escolha Editar política de confiança.
Atualize a política com o exemplo de política acima e escolha Atualizar política.
-
Em sua definição de tarefa, especifique o ARN completo do perfil do IAM. Por exemplo, arn:aws:iam::444455556666:role/ecsTaskRole. Para obter mais informações, consulte Atualização de uma definição de tarefa do Amazon ECS usando o console.
-
Certifique-se de que o usuário ou o perfil do IAM que inicia a tarefa do Amazon ECS tenha a permissão iam:PassRole.
Informações relacionadas
Solucionar problemas dos perfis do IAM
Perfil do IAM de execução de tarefas do Amazon ECS
Solução de problemas de identidade e acesso ao Amazon Elastic Container Service