Wenn ich meine Amazon Elastic Container Service (Amazon ECS)- oder AWS Fargate-Aufgaben ausführe, erhalte ich die Fehlermeldung „ECS was unable to assume the role“.
Behebung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Wenn du deine IAM-Rolle oder deine Vertrauensbeziehung falsch konfiguriert hast, wird möglicherweise die folgende Fehlermeldung angezeigt:
„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.“
Um das Problem zu lösen, stelle sicher, dass deine Aufgabenrolle über die richtige Vertrauensrichtlinie verfügt, und stelle sicher, dass du die erforderlichen IAM-Berechtigungen für die IAM-Rolle verwendest.
Aufgabenrollenberechtigungen überprüfen
Stelle sicher, dass eine Aufgabendefinition die richtigen Berechtigungen für deine IAM-Rolle enthält. Gehe wie folgt vor, um die Berechtigungen für deine Aufgabenrolle zu überprüfen:
- Öffne die IAM-Konsole.
- Wähle im Navigationsbereich Rollen aus.
- Wähle deine Aufgabenrolle für deine Aufgabendefinition aus.
- Führe den AWS-CLI-Befehl get-role aus, um Informationen zu deiner Aufgabenrolle zu überprüfen:
aws iam get-role --role-name task-execution-role
Hinweis: Ersetze task-execution-role durch den Namen deiner IAM-Rolle für deine Aufgabe.
Wenn du keine Aufgabenrolle hast, erstelle eine Aufgaben-IAM-Rolle.
Vertrauensrichtlinie für ecs-tasks.amazonaws.com konfigurieren
Damit die Amazon ECS-Aufgabe die IAM-Rolle übernimmt, konfiguriere die Vertrauensrichtlinie so, dass der Service ecs-tasks.amazonaws.com zugelassen wird.
Führe die folgenden Schritte aus:
-
Öffne die IAM-Konsole.
-
Wähle im Navigationsbereich Rollen aus.
-
Wähle deine Aufgabenrolle aus und wähle dann Vertrauensbeziehungen aus.
-
Stelle sicher, dass die Vertrauensrichtlinie ecs-tasks.amazonaws.com als Service enthält.
Beispiel für eine Richtlinie:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
Wenn du ecs-tasks.amazonaws.com nicht als Service eingerichtet hast, wähle Vertrauensrichtlinie bearbeiten aus.
Aktualisiere die Richtlinie mit der obigen Beispielrichtlinie und wähle dann Richtlinie aktualisieren aus.
-
Gib in deiner Aufgabendefinition den vollständigen ARN der IAM-Rolle an. Zum Beispiel arn:aws:iam::444455556666:role/ecsTaskRole. Weitere Informationen findest du unter Amazon ECS-Aufgabendefinition mithilfe der Konsole aktualisieren.
-
Stelle sicher, dass der IAM-Benutzer oder die IAM-Rolle, die die Amazon ECS-Aufgabe startet, über die Berechtigung iam:PassRole verfügt.
Ähnliche Informationen
Problembehandlung bei IAM-Rollen
IAM-Rolle zur Ausführung von Amazon ECS-Aufgaben
Fehlerbehebung bei Identität und Zugriff auf Amazon Elastic Container Service