Fehlerbehebung bei IAM-Rollen - AWS Identitäts- und Zugriffsverwaltung

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Fehlerbehebung bei IAM-Rollen

Verwenden Sie die hier aufgeführten Informationen, um häufige Probleme zu diagnostizieren und zu beheben, die beim Arbeiten mit IAM-Rollen auftreten können.

Ich kann eine Rolle nicht übernehmen

Überprüfen Sie, ob Folgendes der Fall ist:

  • Damit Benutzer die aktuelle Rolle innerhalb einer Rollensitzung wieder annehmen können, geben Sie den Rollen-ARN oder den AWS-Konto-ARN als Prinzipal in der Rollenvertrauensrichtlinie an. AWS-Services, die Rechenressourcen wie Amazon EC2, Amazon ECS, Amazon EKS und Lambda bereitstellen, stellen temporäre Anmeldeinformationen bereit und aktualisieren diese Anmeldeinformationen automatisch. Dadurch wird sichergestellt, dass Sie immer über gültige Anmeldeinformationen verfügen. Für diese Dienste ist es nicht erforderlich, die aktuelle Rolle erneut anzunehmen, um temporäre Anmeldeinformationen zu erhalten. Wenn Sie jedoch beabsichtigen, Sitzungs-Tags oder eine Sitzungsrichtlinie zu übergeben, müssen Sie die aktuelle Rolle erneut annehmen. Anleitungen zum Ändern einer Rollenvertrauensrichtlinie, um den ARN der Prinzipalrolle oder den AWS-Konto-ARN hinzuzufügen, finden Sie unter Rollenvertrauensrichtlinie aktualisieren .

  • Wenn Sie eine Rolle mit Hilfe des AWS Management Console übernehmen, achten Sie darauf, dass Sie den genauen Namen Ihrer Rolle verwenden. Bei Rollennamen wird die Groß-/Kleinschreibung beachtet.

  • Wenn Sie eine Rolle mit AWS STS-API oder AWS CLI übernehmen, achten Sie darauf, dass Sie den genauen Namen Ihrer Rolle im ARN verwenden. Bei Rollennamen wird die Groß-/Kleinschreibung beachtet.

  • Überprüfen Sie, ob Ihre IAM-Richtlinie die Berechtigung zum Aufrufen der Aktion sts:AssumeRole für die Rolle gewährt, die Sie übernehmen möchten. Das Action-Element Ihrer IAM-Richtlinie muss es Ihnen ermöglichen, die Aktion AssumeRole aufzurufen. Darüber hinaus muss das Resource-Element Ihrer IAM-Richtlinie die Rolle angeben, die Sie übernehmen möchten. Das Element Resource kann beispielsweise eine Rolle anhand ihres Amazon-Ressourcennamens (ARN) oder durch einen Platzhalter (*) definieren. Sie müssen durch mindestens eine für Sie gültige Richtlinie Berechtigungen wie die folgenden erhalten:

    "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"
  • Vergewissern Sie sich, dass Ihre IAM-Identität mit allen Tags markiert ist, die die IAM-Richtlinie erfordert. In den folgenden Richtlinienberechtigungen erfordert das Condition-Element beispielsweise, dass Sie als Auftraggeber, der die Übernahme der Rolle beantragt, ein bestimmtes Tag haben müssen. Sie müssen mit dem Tag department = HR oder department = CS markiert sein. Andernfalls können Sie die Rolle nicht übernehmen. Weitere Informationen zum Markieren von IAM-Benutzern und Rollen finden Sie unter Tags für AWS Identity and Access Management-Ressourcen.

    "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "*", "Condition": {"StringEquals": {"aws:PrincipalTag/department": [ "HR", "CS" ]}}
  • Stellen Sie sicher, dass Sie alle Bedingungen erfüllen, die in der Vertrauensrichtlinie der Rolle definiert sind. Eine Condition kann ein Ablaufdatum, eine externe ID oder eine bestimmte IP-Adresse festlegen, von der die Anforderung kommen muss. Sehen Sie sich das folgende Beispiel an: Wenn das aktuelle Datum nach dem angegebenen Datum liegt, sind die Bedingungen der Richtlinie nie erfüllt und die Berechtigung zum Übernehmen der Rolle kann nicht gewährt werden.

    "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" } }
  • Stellen Sie sicher, dass das AWS-Konto, vom dem aus Sie AssumeRole aufrufen, eine vertrauenswürdige Entität für die anzunehmende Rolle ist. Vertrauenswürdige Entitäten sind in der Vertrauensrichtlinie einer Rolle als Principal definiert. Das nachfolgende Beispiel enthält eine Vertrauensrichtlinie, die der Rolle angefügt ist, die Sie übernehmen möchten. In diesem Beispiel muss die Konto-ID des IAM-Benutzers, über den Sie sich angemeldet haben, 123456789012 lauten. Wenn Ihre Kontonummer nicht im Principal-Element der Vertrauensrichtlinie der Rolle aufgeführt ist, können Sie die Rolle nicht übernehmen. Es spielt keine Rolle, welche Berechtigungen Ihnen in den Zugriffsrichtlinien gewährt werden. Beachten Sie, dass in der Beispielrichtlinie nur Berechtigungen für Aktionen gewährt werden, die zwischen dem 01.07.2017 und dem 31.12.2017 (UTC) ausgeführt werden. Wenn Sie sich vor oder nach diesem Zeitraum anmelden, sind die Bedingungen der Richtlinie nicht erfüllt und Sie können die Rolle nicht übernehmen.

    "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole", "Condition": { "DateGreaterThan": {"aws:CurrentTime": "2017-07-01T00:00:00Z"}, "DateLessThan": {"aws:CurrentTime": "2017-12-31T23:59:59Z"} }
  • Quellidentität – Administratoren können Rollen so konfigurieren, dass Identitäten eine benutzerdefinierte Zeichenfolge übergeben müssen, die die Person oder Anwendung identifiziert, die Aktionen in AWS durchführt, die sogenannte Quellidentität. Überprüfen Sie, ob für die übernommene Rolle eine Quellidentität festgelegt ist. Weitere Informationen zu Quellidentität finden Sie unter Überwachen und Steuern von Aktionen mit übernommenen Rollen.

In meinem AWS-Konto wird eine neue Rolle angezeigt

Einige AWS-Services erfordern die Verwendung einer eindeutigen, mit dem Service verknüpften Servicerolle. Diese serviceverknüpfte Rolle wird vom Service vordefiniert und enthält alle vom Service benötigten Berechtigungen. Dadurch wird das Einrichten eines Service vereinfacht, da Sie die erforderlichen Berechtigungen nicht manuell hinzufügen müssen. Allgemeine Informationen zu serviceverknüpften Rollen finden Sie unter Erstellen einer serviceverknüpften Rolle.

Möglicherweise verwenden Sie einen Service bereits, wenn er damit beginnt, serviceverknüpfte Rollen zu unterstützen. In diesem Fall erhalten Sie möglicherweise eine E-Mail mit Hinweisen zu einer neuen Rolle in Ihrem Konto. Diese Rolle enthält alle Berechtigungen, die der Service benötigt, um in Ihrem Namen Aktionen auszuführen. Sie müssen keine Aktion durchführen, um diese Rolle zu unterstützen. Jedoch sollten Sie die Rolle nicht aus Ihrem Konto löschen. Andernfalls können eventuell Berechtigungen entfernt werden, die der Service für den Zugriff auf AWS-Ressourcen benötigt. Sie können die serviceverknüpften Rollen in Ihrem Konto anzeigen, indem Sie zur IAM-Seite Roles Seite der IAM-Konsole wechseln. Serviceverknüpfte Rollen werden mit dem Hinweis (Service-linked role) in der Spalte Trusted entities (Vertrauenswürdige Entitäten) der Tabelle angezeigt.

Informationen darüber, welche Services diese serviceverknüpften Rollen unterstützen, finden Sie unter AWS Dienste, die mit IAM funktionieren. Suchen Sie nach den Services, für die Yes in der Spalte Service-Linked Role angegeben ist. Weitere Informationen zur Verwendung von serviceverknüpften Rollen für einen Service erhalten Sie über den Link Yes.

Ich kann eine Rolle in meinem AWS-Konto nicht bearbeiten oder löschen

Sie können die Berechtigungen für einer serviceverknüpfte Rolle in IAM nicht löschen oder bearbeiten. Diese Rollen umfassen vordefinierte Vertrauensstellungen und Berechtigungen, die für den Service erforderlich sind, um Aktionen in Ihrem Namen durchführen zu können. Sie können die IAM-Konsole, die AWS CLI oder die API nur für das Bearbeiten der Beschreibung einer serviceverknüpften Rolle verwenden. Sie können die serviceverknüpften Rollen in Ihrem Konto anzeigen, indem Sie zur IAM-Seite Roles der Konsole wechseln. Serviceverknüpfte Rollen werden mit dem Hinweis (Service-linked role) in der Spalte Trusted entities (Vertrauenswürdige Entitäten) der Tabelle angezeigt. Ein Banner auf der Seite Summary (Übersicht) für die Rolle zeigt ebenfalls an, dass es sich um eine serviceverknüpfte Rolle handelt. Sie können diese Rollen nur über den verknüpften Service verwalten und löschen, wenn dieser Service die Aktion unterstützt. Gehen Sie beim Ändern oder Löschen einer serviceverknüpften Rolle mit Bedacht vor, da Sie dadurch möglicherweise Berechtigungen entfernen, die der Service benötigt, um auf AWS-Ressourcen zuzugreifen.

Informationen darüber, welche Services diese serviceverknüpften Rollen unterstützen, finden Sie unter AWS Dienste, die mit IAM funktionieren. Suchen Sie nach den Services, für die Yes in der Spalte Service-Linked Role angegeben ist.

Ich bin nicht berechtigt zum Durchführen von: iam:PassRole

Wenn Sie eine serviceverknüpfte Rolle erstellen, müssen Sie über die Berechtigung verfügen, diese Rolle an den Service weiterzuleiten. Einige Services erstellen automatisch eine serviceverknüpfte Rolle in Ihrem Konto, wenn Sie eine Aktion in diesem Service durchführen. Beispiel: Amazon EC2 Auto Scaling erstellt die serviceverknüpfte AWSServiceRoleForAutoScaling-Rolle für Sie, wenn Sie das erste Mal eine Auto Scaling-Gruppe erstellen. Wenn Sie versuchen, eine Auto Scaling-Gruppe ohne die PassRole-Berechtigung zu erstellen, erhalten Sie folgenden Fehler:

ClientError: An error occurred (AccessDenied) when calling the PutLifecycleHook operation: User: arn:aws:sts::111122223333:assumed-role/Testrole/Diego is not authorized to perform: iam:PassRole on resource: arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling

Um diesen Fehler zu beheben, bitten Sie Ihren Administrator, diese iam:PassRole-Berechtigung für Sie hinzuzufügen.

Informationen dazu, welche Services serviceverknüpfte Rollen unterstützen, finden Sie unter AWS Dienste, die mit IAM funktionieren. Um zu erfahren, ob ein Service automatisch eine serviceverknüpfte Rolle für Sie erstellt, wählen Sie den Link Ja aus, um die Dokumentation zur serviceverknüpften Rolle für den Service anzuzeigen.

Warum kann ich keine Rolle mit einer 12-Stunden-Sitzung übernehmen? (AWS CLI, AWS-API)

Wenn Sie die AWS STS-AssumeRole*-API oder assume-role*-CLI-Operationen verwenden, um eine Rolle anzunehmen, können Sie einen Wert für den DurationSeconds-Parameter angeben. Sie können einen Wert von 900 Sekunden (15 Minuten) bis zur maximalen Sitzungsdauer für die Rolle angeben. Wenn Sie einen Wert höher als diese Einstellung angeben, schlägt die Operation fehl. Diese Einstellung kann einen Höchstwert von 12 Stunden haben. Wenn Sie beispielsweise eine Sitzungsdauer von zwölf Stunden angeben, Ihr Administrator aber die maximale Sitzungsdauer auf sechs Stunden festgelegt hat, schlägt die Operation fehl. Weitere Informationen dazu, wie Sie den maximalen Wert für Ihre Rolle anzeigen, finden Sie unter Aktualisieren der maximalen Sitzungsdauer für eine Rolle.

Wenn Sie Verketten verwenden (Verwendung einer Rolle, um eine zweite Rolle anzunehmen), ist Ihre Sitzung auf maximale eine Stunde begrenzt. Wenn Sie den DurationSeconds-Parameter verwenden, um einen Wert größer als eine Stunde anzugeben, schlägt die Operation fehl.

Ich erhalte einen Fehler, wenn ich versuche, Rollen in der IAM-Konsole zu wechseln

Die Informationen, die Sie auf der Seite Switch Role (Rolle wechseln) eingeben, müssen mit den Informationen für die Rolle übereinstimmen. Andernfalls schlägt der Vorgang fehl und Sie erhalten die folgende Fehlermeldung:

Invalid information in one or more fields. Check your information or contact your administrator.

Wenn dieser Fehler angezeigt wird, bestätigen Sie, dass die folgenden Informationen korrekt sind:

  • Konto-ID oder Alias – Die AWS-Konto-ID ist eine 12-stellige Zahl. Ihr Konto hat möglicherweise einen Alias, bei dem es sich um eine benutzerfreundliche Kennung wie etwa Ihren Firmennamen handelt, und die anstelle Ihrer AWS-Konto-ID verwendet werden kann. Sie können entweder die Konto-ID oder den Alias in diesem Feld verwenden.

  • Role name (Rollenname) – Bei Rollennamen wird die Groß-/Kleinschreibung beachtet. Die Konto-ID und der Rollenname müssen mit dem für die Rolle konfigurierten Wert übereinstimmen.

Wenn Sie weiterhin eine Fehlermeldung erhalten, wenden Sie sich an Ihren Administrator, um die vorherigen Informationen zu überprüfen. Möglicherweise schränkt die Rollenvertrauensrichtlinie oder die IAM-Benutzerrichtlinie Ihren Zugriff ein. Ihr Administrator kann die Berechtigungen für diese Richtlinien überprüfen.

Zu meiner Rolle gehört eine Richtlinie, die es mir erlaubt, eine Aktion durchzuführen, ich erhalte aber einen "Zugriff verweigert"-Fehler

Ihre Rollensitzung wird möglicherweise durch Sitzungsrichtlinien beschränkt. Wenn Sie temporäre Sicherheitsanmeldeinformationen programmgesteuert über AWS STS anfordern, können Sie optional eingebundene oder verwaltete Sitzungsrichtlinien übergeben. Sitzungsrichtlinien sind erweiterte Richtlinien, die Sie als Parameter übergeben, wenn Sie programmgesteuert eine Sitzung mit temporären Anmeldeinformationen für eine Rolle erstellen. Sie können ein einzelnes JSON-Inline-Sitzungsrichtliniendokument mit dem Policy-Parameter übergeben. Sie können mit dem Parameter PolicyArns bis zu 10 verwaltete Sitzungsrichtlinien angeben. Die resultierenden Sitzungsberechtigungen sind eine Schnittmenge der auf der Identität des Benutzers oder der Rolle basierenden Richtlinien und der Sitzungsrichtlinien. Es kann auch sein, dass, wenn Ihr Administrator oder ein benutzerdefiniertes Programm Ihnen temporäre Anmeldeinformationen bereitstellt, bereits eine Sitzungsrichtlinie zum Einschränken Ihres Zugriffs enthalten ist.

Der Service hat die Standardrichtlinienversion der Rolle nicht erstellt

Eine Servicerolle ist eine Rolle, die ein Service annimmt, um Aktionen in Ihrem Konto für Sie auszuführen. Beim Einrichten einiger AWS-Serviceumgebungen müssen Sie eine Rolle für den zu übernehmenden Service definieren. In einigen Fällen erstellt der Service die Servicerolle und die zugehörige Richtlinie in IAM für Sie. Obwohl Sie die Servicerolle und ihre Richtlinie innerhalb von IAM ändern oder löschen können, wird dies von AWS nicht empfohlen. Die Rolle und die Richtlinie sind nur für die Verwendung durch diesen Service bestimmt. Wenn Sie die Richtlinie bearbeiten und eine andere Umgebung einrichten, kann die Operation fehlschlagen, wenn der Service versucht, dieselbe Rolle und Richtlinie zu verwenden.

Wenn Sie beispielsweise AWS CodeBuild zum ersten Mal verwenden, erstellt der Service eine Rolle mit dem Namen codebuild-RWBCore-service-role. Diese Servicerolle verwendet die Richtlinie namens codebuild-RWBCore-managed-policy. Wenn Sie die Richtlinie bearbeiten, wird eine neue Version erstellt und diese als Standardversion gespeichert. Wenn Sie eine nachfolgende Operation in AWS CodeBuild ausführen, versucht der Service möglicherweise, die Richtlinie zu aktualisieren. Wenn dies der Fall ist, wird die folgende Fehlermeldung angezeigt:

codebuild.amazon.com did not create the default version (V2) of the codebuild-RWBCore-managed-policy policy that is attached to the codebuild-RWBCore-service-role role. To continue, detach the policy from any other identities and then delete the policy and the role.

Wenn dieser Fehler angezeigt wird, müssen Sie Änderungen in IAM vornehmen, bevor Sie mit der Serviceoperation fortfahren können. Legen Sie zunächst die Standardrichtlinienversion auf V1 fest, und versuchen Sie, die Operation erneut durchzuführen. Wenn V1 zuvor gelöscht wurde oder die Auswahl von V1 nicht funktioniert, bereinigen und löschen Sie die vorhandene Richtlinie und Rolle.

Weitere Informationen zum Bearbeiten verwalteter Richtlinien finden Sie unter Bearbeiten von kundenverwalteten Richtlinien (Konsole). Weitere Informationen zu Richtlinienversionen finden Sie unter Versioning von IAM-Richtlinien.

So löschen Sie eine Servicerolle und ihre Richtlinie:
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Policies.

  3. Wählen Sie in der Richtlinienliste den Namen der Richtlinie aus, die sie löschen möchten.

  4. Wählen Sie die Registerkarte Entities attached (Angefügte Entitäten) aus, um anzuzeigen, welche IAM-Benutzer, -Gruppen oder -Rollen diese Richtlinie verwenden. Wenn eine dieser Identitäten die Richtlinie verwendet, führen Sie die folgenden Aufgaben aus:

    1. Erstellen Sie eine neue verwaltete Richtlinie mit den erforderlichen Berechtigungen. Um sicherzustellen, dass die Identitäten vor und nach Ihren Aktionen dieselben Berechtigungen haben, kopieren Sie das JSON-Richtliniendokument aus der vorhandenen Richtlinie. Erstellen Sie dann die neue verwaltete Richtlinie, und fügen Sie das JSON-Dokument ein, wie unter Creating Policies using the JSON editor (Erstellen von Richtlinien mit dem JSON-Editor) beschrieben.

    2. Hängen Sie für jede betroffene Identität die neue Richtlinie an, und trennen Sie dann die alte davon. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen.

  5. Wählen Sie im Navigationsbereich Roles.

  6. Wählen Sie in der Liste der Rollen den Namen der Rolle aus, die Sie löschen möchten.

  7. Wählen Sie die Registerkarte Trust relatiuonships (Vertrauensbeziehungen), um anzuzeigen, welche Entitäten die Rolle übernehmen können. Wenn eine andere Entität als der Service aufgeführt ist, führen Sie die folgenden Aufgaben aus:

    1. Erstellen Sie eine neue Rolle, die diesen Entitäten vertraut.

    2. Die Richtlinie, die Sie im vorherigen Schritt erstellt haben. Wenn Sie diesen Schritt übersprungen haben, erstellen Sie jetzt die neue verwaltete Richtlinie.

    3. Benachrichtigen Sie alle, die die Rolle angenommen haben darüber, dass dies jetzt nicht mehr möglich ist. Informieren Sie diese Personen darüber, wie Sie die neue Rolle übernehmen und über dieselben Berechtigungen verfügen können.

  8. Löschen Sie die Richtlinie.

  9. Löschen Sie die Rolle.

Es gibt keinen Anwendungsfall für eine Servicerolle in der Konsole

Bei einigen Diensten müssen Sie manuell eine Servicerolle erstellen, um dem Dienst Berechtigungen zum Durchführen von Aktionen in Ihrem Namen zu erteilen. Wenn der Dienst nicht in der IAM-Konsole aufgeführt ist, müssen Sie den Dienst manuell als vertrauenswürdigen Auftraggeber auflisten. Wenn die Dokumentation für den Dienst oder das Feature, die Sie verwenden, keine Anweisungen zur Auflistung des Dienstes als vertrauenswürdigen Auftraggeber enthält, geben Sie Feedback für die Seite an.

Um eine Servicerolle manuell erstellen zu können, müssen Sie den Dienstauftraggeber für den Dienst kennen, der die Rolle übernehmen wird. Ein Dienstauftraggeber ist eine Kennung, die verwendet wird, um einem Service Berechtigungen zu erteilen. Der Dienstauftraggeber wird durch den Service definiert.

Sie finden den Dienstauftraggeber für einige Dienste, indem Sie Folgendes überprüfen:

  1. Öffnen Sie AWS Dienste, die mit IAM funktionieren.

  2. Überprüfen Sie, ob der Service in der Spalte Service-linked roles (Serviceverknüpfte Rollen) Yes (Ja) anzeigt.

  3. Wählen Sie den Link Yes (Ja) aus, um die Dokumentation für die serviceverknüpfte Rolle für diesen Service anzuzeigen.

  4. Suchen Sie den Abschnitt „Berechtigungen von serviceverknüpften Rollen“ für diesen Service, um den Dienstauftraggeber anzuzeigen.

Sie können eine Servicerolle manuell mithilfe von AWS CLI Befehlen oder AWS API-Operationenerstellen. Um eine Servicerolle manuell mit der IAM-Konsole zu erstellen, führen Sie die folgenden Aufgaben aus:

  1. Erstellen Sie eine IAM-Rolle mit Ihrer Konto-ID. Hängen Sie keine Richtlinie an oder gewähren Sie keine Berechtigungen. Details hierzu finden Sie unter Erstellen Sie eine Rolle, um einem IAM-Benutzer Berechtigungen zu erteilen.

  2. Öffnen Sie die Rolle und bearbeiten Sie die Vertrauensbeziehung. Anstatt dem Konto zu vertrauen, muss die Rolle dem Dienst vertrauen. Aktualisieren Sie zum Beispiel das folgende Principal-Element:

    "Principal": { "AWS": "arn:aws:iam::123456789012:root" }

    Ändern Sie den Auftraggeber auf den Wert für Ihren Service, wie z. B. IAM.

    "Principal": { "Service": "iam.amazonaws.com" }
  3. Fügen Sie die Berechtigungen hinzu, die der Dienst benötigt, indem Sie der Rolle Berechtigungsrichtlinien hinzufügen.

  4. Kehren Sie zu dem Dienst zurück, der die Berechtigungen benötigt, und verwenden Sie die dokumentierte Methode, um den Dienst über die neue Servicerolle zu informieren.