Wie behebe ich den Fehler „AccessDenied“ oder „Ungültige Informationen“, wenn ich versucht habe, eine kontoübergreifende IAM-Rolle anzunehmen?

Lesedauer: 3 Minute
0

Ich habe versucht, eine kontoübergreifende Rolle bei AWS Identity and Access Management (IAM) zu übernehmen. Ich habe jedoch eine Fehlermeldung erhalten, die der folgenden ähnelt: „An error occurred (AccessDenied) when calling the AssumeRole operation:“ or „Invalid information in one or more fields. Check your information or contact your administrator.“

Behebung

**Anmerkung:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.

Um die IAM-Rolle kontoübergreifend zu übernehmen, bearbeiten Sie zunächst die Berechtigungen für das Konto, das die IAM-Rolle übernommen hat. Bearbeiten Sie dann die Vertrauensrichtlinie in dem anderen Konto (dem Konto, das die Übernahme der IAM-Rolle ermöglicht).

Nehmen wir zum Beispiel an, Sie haben zwei Konten, eines mit dem Namen Konto_Bob und das andere mit dem Namen Konto_Alice. Sie haben auch einen IAM-Benutzer oder eine IAM-Rolle namens Bob in Konto_Bob und eine IAM-Rolle namens Alice in Konto_Alice. In diesem Szenario übernimmt Bob die IAM-Rolle mit dem Namen Alice.

Um den AssumeRole-API-Aufruf mit mehreren AWS-Konten oder kontoübergreifend verwenden zu können, müssen Sie über eine Vertrauensrichtlinie verfügen, die die Berechtigung zur Übernahme von Rollen gewährt.

Beispiel für Berechtigungen, die für Bob erforderlich sind:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PermissionToAssumeAlice",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::Account_Alice:role/Alice"
    }
  ]
}

Beispiel für eine Vertrauensrichtlinie, die für Alice erforderlich ist:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT_Bob:user/Bob"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Beispiel für einen AWS-CLI-Befehl zur Übernahme einer kontoübergreifenden IAM-Rolle:

aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/example-role" --role-session-name assume-cross-account

Weitere Informationen finden Sie unter Wie übernehme ich mit der AWS CLI eine IAM-Rolle?

Um Fehler zu vermeiden, wenn Sie eine kontoübergreifende IAM-Rolle übernehmen, stellen Sie sicher, dass Sie die folgenden Best Practices für Ihren Anwendungsfall befolgen:

  • Die übernehmende Rolle, Bob, muss über Berechtigungen für die API-Aktion AssumeRole verfügen.
  • Sie müssen als Bob im AWS-Konto angemeldet sein. Weitere Informationen finden Sie unter Ein Alias für Ihre AWS-Konto-ID verwenden.
  • Die Rolle, die übernommen wird, Alice, muss existieren. Stellen Sie sicher, dass sie nicht gelöscht wird und dass der Amazon-Ressourcenname (ARN) korrekt konfiguriert ist.
  • Wenn Sie Rollenverkettung verwenden, stellen Sie sicher, dass Sie keine IAM-Anmeldeinformationen aus einer früheren Sitzung verwenden. Weitere Informationen finden Sie im Abschnitt Rollenverkettung unter Begriffe und Konzepte von Rollen.
  • Wenn Konto_Bob Teil einer AWS-Organisation ist, gibt es möglicherweise eine Service-Kontrollrichtlinie (SCP), die den AssumeRole-Zugriff mit Konto_Bob oder Konto_Alice einschränkt. Stellen Sie sicher, dass Sie die SCP, die den Zugriff einschränkt, mit Konto_Bob oder Konto_Alice bearbeiten oder entfernen. Weitere Informationen finden Sie unter SCPs.

Ähnliche Informationen

Wie kann ich Daten erhalten, die mir bei der Behebung von IAM-Zugriffsverweigerungsfehlern oder unautorisierten Fehlern helfen?

Von einem Benutzer zu einer IAM-Rolle wechseln (Konsole)

Zu einer IAM-Rolle wechseln (AWS CLI)