Direkt zum Inhalt

Wie behebe ich Probleme, wenn ich die AWS-Managementkonsole verwende, um die IAM-Rollen zu wechseln?

Lesedauer: 4 Minute
0

Ich habe die AWS-Managemenkonsole verwendet, um zu versuchen, die Rollen von AWS Identity and Access Management (IAM) zu wechseln. Ich habe jedoch die folgende Fehlermeldung erhalten: „Invalid information in one or more fields. Check your information or contact your administrator.“

Kurzbeschreibung

Aufgrund einer falsch konfigurierten Richtlinie erhältst du die Fehlermeldung Invalid information in one or more fields. Möglicherweise erhältst du auch eine Fehlermeldung, wenn die Anfrage die Bedingungen einer Vertrauensrichtlinie nicht erfüllt.

Lösung

Die AssumeRole-Berechtigungen für den IAM-Benutzer oder die IAM-Rolle konfigurieren

Um einem Benutzer die Berechtigung zum Rollenwechsel zu gewähren, füge der Richtlinie der IAM-Identität die AssumeRole-Aktion von AWS Security Token Service (AWS STS) hinzu.

Beispiel für eine Richtlinie:

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

Hinweis: Ersetze arn:aws:iam: :account_id_number:role/role-name-you-want-to assume durch den Amazon-Ressourcennamen (ARN) der IAM-Rolle.

Sicherstellen, dass die Vertrauensrichtlinie der IAM-Rolle einen Prinzipal enthält

Aktualisiere die Vertrauensrichtlinie, um einen Prinzipal einzubeziehen. Der Prinzipal kann ein IAM-Benutzer oder eine IAM-Rolle oder ein AWS-Konto sein.

Hinweis: Wenn du ein Konto als vertrauenswürdigen Prinzipal hinzufügst, können alle Identitäten in diesem Konto die Rolle übernehmen. Die Identitäten müssen jedoch über die AssumeRole-Berechtigung verfügen.

Beispielsweise möchte der IAM-Benutzer Carlos mit der Konto-ID 111222333444 die Maria-Rolle in der Konto-ID 444555666777 übernehmen.

Konto-ID 111222333444 ist das verlässliche Konto und die Konto-ID 444555666777 ist das vertrauenswürdige Konto. Marias IAM-Rolle hat eine Vertrauensrichtlinie, der Carlos vertraut.

Beispiel für eine Vertrauensrichtlinie für die IAM-Rolle von Maria:

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

Carlos muss außerdem über eine IAM-Richtlinie verfügen, um die IAM-Rolle von Maria im anderen Konto übernehmen zu können.

Beispiel für eine IAM-Richtlinie für Carlos, um die IAM-Rolle von Maria zu übernehmen:

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

Damit alle IAM-Identitäten in einem Konto die Rolle übernehmen können, verwende den Root-Prinzipal des Kontos.

Ersetze in der Vertrauensrichtlinie von Marias IAM-Rolle user/Carlos durch root:

"AWS": "arn:aws:iam::111222333444:root"

In der Vertrauensrichtlinie von Marias IAM-Rolle kannst du auch den Platzhalter (*) verwenden, sodass der Benutzer jede Rolle in jedem Konto übernehmen kann:

"Resource": "arn:aws:iam::444555666777:role/\\\*"

Die vorherigen Änderungen ermöglichen es jedem IAM-Benutzer oder jeder IAM-Rolle im Konto 111222333444, Marias IAM-Rolle mit der Konto-ID 444555666777 anzunehmen. Um die Anzahl der Identitäten, die die Rolle übernehmen können, zu minimieren, empfiehlt es sich, den ARN nur des IAM-Benutzers oder der IAM-Rolle anzugeben, für die Zugriff erforderlich ist.

Weitere Informationen findest du unter Aktualisieren einer Rollenvertrauensrichtlinie.

Explizite Ablehnung durch SCPs oder eine IAM-Richtlinie

Wenn das Konto Teil von AWS Organizations ist, wendet das Verwaltungskonto möglicherweise Service Control Policies (SCPs) an, die den Rollenwechsel einschränken. Weitere Informationen findest du unter Bewährte Methoden für das Verwaltungskonto.

Prüfe, ob es für die Aktion AssumeRole in der SCP- oder der IAM-Richtlinie eine explizite Ablehnung gibt. Wenn es eine explizite Ablehnung gibt, überschreibt die Ablehnung alle Zulassen-Berechtigungen, wodurch die Rollenübernahme verhindert wird. Im vorherigen Beispiel kann Carlos bei einer expliziten Ablehnung Marias IAM-Rolle nicht übernehmen.

Prüfe außerdem, ob die SCPs den Zugriff je nach AWS-Regionen einschränken. AWS STS ist ein globaler Service, daher musst du ihn in der globalen Service-Ausschlussliste auflisten.

Weitere Informationen findest du unter Verweigern Zugriff auf AWS basierend auf der angeforderten AWS-Region.

Für die Rolle ist eine sts:ExternalId erforderlich, um zur IAM-Rolle zu wechseln

Wenn für die IAM-Rolle ein sts:ExternalId-Schlüssel erforderlich ist, kannst du die AWS-Managementkonsole verwenden, um die Rollen zu wechseln. Bearbeite die Richtlinie, um die AssumeRole-Aktion mit dem Parameter sts:ExternalId zu verwenden.

Der Schlüssel sts:ExternalId ermöglicht Dritten den Zugriff auf AWS-Ressourcen.

Weitere Informationen findest du unter Zugriff auf AWS-Konten, die Dritten gehören.

Die Bedingungen in der IAM-Rollenvertrauensrichtlinie überprüfen

Überprüfe die Bedingungen, die du in der Vertrauensrichtlinie konfiguriert hast, z. B. ein Ablaufdatum oder eine ExternalId-Anforderung. Die Anfrage muss die Bedingungen der IAM-Rollenrichtlinie erfüllen.

Wenn das aktuelle Datum beispielsweise nach dem angegebenen Datum liegt, ist die Bedingung falsch und die Richtlinie kann keine Berechtigung zur Übernahme der Rolle gewähren.

Die folgende Richtlinie verweigert die Genehmigung, die Rolle nach dem 1. Mai 2016 zu übernehmen:

{
  "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"
    }
  }
}

Stelle sicher, dass die Anfrage alle Bedingungen der Vertrauensrichtlinie erfüllt.

Ähnliche Informationen

Wie stelle ich IAM-Benutzern einen Link zur Verfügung, über den sie eine IAM-Rolle übernehmen können?

Wie verwende ich IAM, um auf Ressourcen in einem anderen AWS-Konto zuzugreifen?

Was ist der Unterschied zwischen einer Servicekontrollrichtlinie von AWS Organizations und einer IAM-Richtlinie?