Warum habe ich beim Versuch, eine kontoübergreifende IAM-Rolle anzunehmen, die Fehlermeldung „AccessDenied“ oder „Ungültige Informationen“ erhalten?

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: „Beim Aufrufen der AssumeRole-Operation ist ein Fehler aufgetreten (AccessDenied):“ -oder- „Ungültige Informationen in einem oder mehreren Feldern. Überprüfen Sie Ihre Informationen oder wenden Sie sich an Ihren Administrator.“

Kurzbeschreibung

Um die IAM-Rolle in einem anderen AWS-Konto zu übernehmen, bearbeiten Sie zunächst die Berechtigungen in einem Konto (dem 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 Account\ _Bob und eine IAM-Rolle namens Alice in Account\ _Alice. In diesem Szenario übernimmt Bob die IAM-Rolle mit dem Namen Alice.

Um den AssumeRole-API-Aufruf mit mehreren Konten oder cross-accounts verwenden zu können, müssen Sie über eine Vertrauensrichtlinie verfügen, um die Berechtigung zur Übernahme von Rollen zu gewähren, die den folgenden ähneln:

Hier ist ein Beispiel für die 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"
    }
  ]
}

Und hier ist das Beispiel der Vertrauensrichtlinie für Alice:

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

Lösung

Beachten Sie die folgenden Punkte, um Fehler bei der Annahme einer kontenübergreifenden IAM-Rolle zu vermeiden:

Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

  • Die übernehmende Rolle, Bob, muss über Berechtigungen für AssumeRole verfügen.
  • Sie müssen als Bob im AWS-Konto angemeldet sein. Weitere Informationen finden Sie in Ihrer AWS-Konto-ID und dem zugehörigen Alias.
  • Die Rolle, die übernommen wird, Alice, muss existieren. Stellen Sie sicher, dass sie nicht gelöscht wurde und dass der ARN korrekt konfiguriert ist.
  • Wenn Sie die 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 Account\ _Bob Teil einer AWS-Organisation ist, gibt es möglicherweise eine Service Control Policy (SCP), die den AssumeRole-Zugriff mit Account\ _Bob oder Account\ _Alice einschränkt. Weitere Informationen finden Sie unter Richtlinien zur Dienststeuerung (SCPs).

Ähnliche Informationen

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

Zu einer Rolle wechseln (Konsole)

Zu einer IAM-Rolle wechseln (AWS CLI)