Quando eseguo le mie attività Amazon Elastic Container Service (Amazon ECS) o AWS Fargate, ricevo l'errore "ECS was unable to assume the role".
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Se hai configurato in modo errato il ruolo IAM o la relazione di attendibilità, potresti ricevere il seguente errore:
"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."
Per risolvere il problema, verifica che il ruolo dell'attività abbia la policy di attendibilità corretta e assicurati di utilizzare le autorizzazioni IAM necessarie per il ruolo IAM.
Verifica le autorizzazioni relative al ruolo dell'attività
Assicurati che la definizione dell'attività includa le autorizzazioni corrette per il ruolo IAM. Per verificare le autorizzazioni del ruolo dell'attività, completa i seguenti passaggi:
- Apri la console IAM.
- Nel pannello di navigazione, scegli Ruoli.
- Seleziona il ruolo dell'attività per la definizione dell'attività.
- Esegui il comando AWS CLI get-role per esaminare le informazioni sul ruolo dell'attività:
aws iam get-role --role-name task-execution-role
Nota: sostituisci task-execution-role con il nome del tuo ruolo IAM per la tua attività.
Se non disponi di un ruolo IAM per l'attività, crealo.
Configura la policy di attendibilità per ecs-tasks.amazonaws.com
Affinché l'attività Amazon ECS assuma il ruolo IAM, configura la policy di attendibilità in modo da consentire il servizio ecs-tasks.amazonaws.com.
Completa i seguenti passaggi:
-
Apri la console IAM.
-
Nel pannello di navigazione, scegli Ruoli.
-
Seleziona il ruolo dell'attività, quindi scegli Relazioni di attendibilità.
-
Verifica che la policy di attendibilità contenga ecs-tasks.amazonaws.com come servizio.
Esempio di policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
Se non hai impostato ecs-tasks.amazonaws.com come servizio, scegli Modifica policy di attendibilità.
Aggiorna la policy utilizzando l'esempio di policy precedente, quindi scegli Aggiorna policy.
-
Nella definizione dell'attività, specifica l'ARN completo del ruolo IAM. Ad esempio, arn:aws:iam::444455556666:role/ecsTaskRole. Per ulteriori informazioni, consulta Aggiornamento di una definizione di attività Amazon ECS attraverso la console.
-
Assicurati che l'utente o il ruolo IAM che avvia l'attività Amazon ECS abbia l'autorizzazione iam:PassRole.
Informazioni correlate
Risoluzione dei problemi relativi ai ruoli IAM
Ruolo IAM di esecuzione di attività Amazon ECS
Risoluzione dei problemi di identità e accesso ad Amazon Elastic Container Service