Wie kann ich Probleme beim Wechseln der IAM-Rollen mithilfe der AWS-Managementkonsole lösen?

Letzte Aktualisierung: 05.04.2022

Ich habe versucht, die AWS Identity and Access Management (IAM)-Rollen mithilfe der AWS-Managementkonsole zu wechseln und habe eine Fehlermeldung ähnlich der folgenden erhalten:

„Invalid information in one or more fields. Check your information or contact your administrator“ (Ungültige Informationen in einem oder mehreren Feldern. Prüfen Sie Ihre Daten oder wenden Sie sich an Ihren Administrator).

Kurzbeschreibung

Dieser Fehler kann auftreten aufgrund von:

  • Falschen AssumeRole-Aktionsberechtigungen
  • Falscher IAM-Vertrauensrichtlinie
  • Expliziter Zugriffsverweigerung von Richtlinien
  • Falsche Konto-ID oder Rollenname
  • Externe ID zum Rollenwechsel erforderlich
  • Falsche Vertrauensrichtlinien-Bedingungen

Auflösung

Befolgen Sie diese Anweisungen, um die IAM-Richtlinienkonfiguration zu überprüfen und die IAM-Rollen für Ihr Szenario zu wechseln.

Fehlende oder falsche AssumeRole-Aktionsberechtigungen

Um zu einer IAM-Rolle zu wechseln, muss die IAM-Entität über die AssumeRole-Aktionsberechtigung verfügen. Die IAM-Entität muss über eine Richtlinie mit AssumeRole-Aktionsberechtigung verfügen, die der folgenden ähnelt:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"  
}

Stellen Sie sicher, dass die Ressource mit dem Amazon-Ressourcennamen (ARN) der IAM-Rolle übereinstimmt, zu der Sie wechseln möchten. Weitere Informationen finden Sie unter Gewähren von Benutzerberechtigungen zum Rollenwechsel.

Die IAM-Rollenvertrauensrichtlinie vertraut der Konto-ID des IAM-Benutzers nicht

Die IAM-Rollenvertrauensrichtlinie definiert die Hauptbenutzer, die die Rolle übernehmen können. Verifizieren Sie, dass die Vertrauensrichtlinie die Konto-ID des IAM-Benutzers als vertrauenswürdige Prinzipalentität auflistet. Beispielsweise möchte ein IAM-Benutzer namens Bob mit der Konto-ID 111222333444 für die Konto-ID 444555666777 zu einer IAM-Rolle namens Alice wechseln. Die Konto-ID 111222333444 ist das vertrauenswürdige Konto und die Konto-ID 444555666777 ist das vertrauende Konto. Die IAM-Rolle Alice hat eine Vertrauensrichtlinie ähnlich der folgenden, die Bob vertraut:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": “<111222333444>
            },
            "Condition": {}
        }
    ]
}

Hinweis: Es empfiehlt sich, dem Prinzip der geringsten Berechtigung zu folgen und den vollständigen ARN nur für die Rollen anzugeben, die der Benutzer benötigt.

Weitere Informationen finden Sie unter Ändern einer Rollen-Vertrauensrichtlinie (Konsole).

Explizite Zugriffsverweigerung von den Service-Kontrollrichtlinien (SCPs) oder einer IAM-Richtlinie

Wenn Ihr AWS-Konto Teil von AWS Organizations ist, verfügt Ihr Verwaltungskonto möglicherweise über SCPs. Stellen Sie sicher, dass es keine explizite Zugriffsverweigerung von den SCPs für die AssumeRole-Aktion gibt. Suchen Sie nach SCPs, die API-Aktionen basierend auf AWS-Regionen verweigern. AWS Security Token Service (AWS STS) ist ein globaler Service, der in die Ausschlussliste für globale Services aufgenommen werden muss. Stellen Sie sicher, dass es keine explizite Zugriffsverweigerung von den IAM-Richtlinien gibt, da „Deny“-Anweisungen Vorrang vor „Allow“-Anweisungen haben.

Weitere Informationen finden Sie unter Zugriffsverweigerung auf AWS basierend auf der angeforderten AWS-Region.

Überprüfen der AWS-Konto-ID und des IAM-Rollennamens

Stellen Sie auf der Rollenwechsel-Seite sicher, dass die Konto-ID und der IAM-Rollenname korrekt sind. Die Konto-ID ist eine 12-stellige Kennung, und der IAM-Rollenname ist der Name der Rolle, die Sie übernehmen möchten.

Weitere Informationen finden Sie unter Wissenswertes zum Rollenwechsel in der Konsole.

Die externe ID wird benötigt, um zur IAM-Rolle zu wechseln

Administratoren können eine externe ID verwenden, um Dritten Zugriff auf AWS-Ressourcen zu gewähren. Sie können IAM-Rollen in der AWS-Managementkonsole nicht auf eine Rolle umstellen, die einen ExternalId-Bedingungsschlüsselwert erfordert. Sie können nur zu IAM-Rollen wechseln, indem Sie die AssumeRole-Aktion aufrufen, die den ExternalId-Schlüssel unterstützt.

Weitere Informationen finden Sie unter Verwenden einer externen ID, wenn Sie Dritten Zugriff auf Ihre AWS-Ressourcen gewähren.

Gültige Bedingungen für die Vertrauensrichtlinie der IAM-Rolle

Stellen Sie sicher, dass Sie alle Bedingungen erfüllen, die in der Vertrauensrichtlinie der IAM-Rolle angegeben sind. Eine Bedingung kann ein Ablaufdatum oder eine externe ID angeben oder sie kann angeben, dass Anforderungen nur von bestimmten IP-Adressen kommen dürfen. In der folgenden Beispielrichtlinie ist die Bedingung falsch, wenn das aktuelle Datum eine Zeit nach dem angegebenen Datum liegt. Die Richtlinie kann keine Berechtigungen zur Übernahme der IAM-Rolle erteilen.

"Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"
    "Condition": {
        "DateLessThan" : {
            "aws:CurrentTime" : "2016-05-01T12:00:00Z"
        }
    }