Rollen für OpenID-Connect-Verbund erstellen (Konsole) - 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.

Rollen für OpenID-Connect-Verbund erstellen (Konsole)

Sie können OpenID Connect (OIDC)-Verbund-Identitätsanbieter verwenden, anstatt AWS Identity and Access Management-Benutzer in Ihrem AWS-Konto-Konto zu erstellen. Mit einem Identitätsanbieter können Sie Ihre Benutzeridentitäten außerhalb von AWS verwalten und diesen externen Benutzeridentitäten die Berechtigung für den Zugriff auf AWS-Ressourcen in Ihrem Konto gewähren. Weitere Informationen über Verbund und Identitätsanbieter finden Sie unter Identitätsanbieter und Verbund.

Voraussetzungen für das Erstellen einer Rolle für OIDC

Bevor Sie eine Rolle für den OIDC-Verbund erstellen können, müssen Sie zunächst die folgenden erforderlichen Schritte ausführen.

So erstellen Sie eine Rolle für den OIDC-Verbund
  1. Melden Sie sich bei einem oder mehreren Services an, die eine Verbund-OIDC-Identität anbieten. Wenn Sie eine Anwendung erstellen, die Zugriff auf Ihre AWS-Ressourcen benötigt, konfigurieren Sie auch Ihre Anwendung mit den Anbieterinformationen. Wenn Sie dies tun, erhalten Sie vom Anbieter eine Anwendungs- oder Zielgruppen-ID, die für Ihre Anwendung eindeutig ist. (Unterschiedliche Anbieter verwenden unterschiedliche Terminologie für diesen Prozess. In diesem Handbuch wird der Begriff configure, um Ihre App beim Anbieter zu identifizieren.) Sie können mehrere Anwendungen bei jedem Anbieter oder mehrere Anbieter mit einer einzigen Anwendung konfigurieren. Informationen zur Verwendung der Identitätsanbieter finden Sie im Folgendem:

  2. Nachdem Sie die erforderlichen Informationen vom Identitätsanbieter erhalten haben, erstellen Sie einen Identitätsanbieter in IAM. Weitere Informationen finden Sie unter OpenID Connect (OIDC)-Identitätsanbieter in IAM erstellen.

    Wichtig

    Wenn Sie einen OIDC-Identitätsanbieter von Google, Facebook oder Amazon Cognito verwenden, erstellen Sie keinen separaten IAM-Identitätsanbieter in der AWS Management Console. Diese OIDC-Identitätsanbieter sind bereits in AWS integriert und können von Ihnen genutzt werden. Überspringen Sie diesen Schritt, und wechseln Sie im folgenden Schritt zum Erstellen neuer Rollen mit Ihrem Identitätsanbieter.

  3. Bereiten Sie die Richtlinien für die Rolle vor, die von den über einen Identitätsanbieter authentifizierten Benutzern übernommen werden sollen. Wie bei jeder Rolle enthält eine Rolle für eine mobile App zwei Richtlinien. Eine ist die Vertrauensrichtlinie, die angibt, wer die Rolle übernehmen kann. Die andere ist die Berechtigungsrichtlinie, die die AWS-Aktionen und -Ressourcen angibt, auf die die mobile App Zugriff hat oder nicht.

    Für Web-Identitätsanbieter empfehlen wir die Verwendung von Amazon Cognito zur Verwaltung von Identitäten. In diesem Fall verwenden Sie eine Vertrauensrichtlinie, ähnlich wie in diesem Beispiel.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Federated": "cognito-identity.amazonaws.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east-2:12345678-abcd-abcd-abcd-123456"}, "ForAnyValue:StringLike": {"cognito-identity.amazonaws.com:amr": "unauthenticated"} } } }

    Ersetzen Sie us-east-2:12345678-abcd-abcd-abcd-123456 durch die Identitätspool-ID, die Amazon Cognito Ihnen zuweist.

    Wenn Sie einen OIDC-IdP manuell konfigurieren, müssen Sie beim Erstellen der Vertrauensrichtlinie drei Werte verwenden, die sicherstellen, dass nur Ihre App die Rolle übernehmen kann:

    • Verwenden Sie für das Element Action die Aktion sts:AssumeRoleWithWebIdentity.

    • Verwenden Sie für das Element Principal die Zeichenfolge {"Federated":providerUrl/providerArn}.

      • Bei einigen gängigen OIDC-Identitätsanbietern ist providerUrl eine URL. Die folgenden Beispiele enthalten Methoden zur Angabe des Prinzips für einige gängige Identitätsanbieter:

        "Principal":{"Federated":"cognito-identity.amazonaws.com"}

        "Principal":{"Federated":"www.amazon.com"}

        "Principal":{"Federated":"graph.facebook.com"}

        "Principal":{"Federated":"accounts.google.com"}

      • Verwenden Sie für andere OIDC-Anbieter den Amazon-Ressourcenname (ARN) des OIDC-Identitätsanbieters, den Sie in Schritt 2 erstellt haben, wie im folgenden Beispiel:

        "Principal":{"Federated":"arn:aws:iam::123456789012:oidc-provider/server.example.com"}

    • Verwenden Sie für das Element Condition eine Bedingung StringEquals, um die Berechtigungen einzuschränken. Testen Sie die Identitätspool-ID für Amazon Cognito) oder die App-ID für andere Anbieter. Die Identitätspool-ID sollte mit der App-ID übereinstimmen, die Sie bei der Konfiguration der App mit dem Identitätsanbieter erhalten haben. Diese Übereinstimmung zwischen den IDs stellt sicher, dass die Anforderung von Ihrer App stammt.

      Anmerkung

      IAM-Rollen für Amazon Cognito-Identitätspools vertrauen darauf, dass der Service-Prinzipal cognito-identity.amazonaws.com die Rolle übernimmt. Rollen dieses Typs müssen mindestens einen Bedingungsschlüssel enthalten, um die Anzahl der Prinzipale einzuschränken, die die Rolle übernehmen können.

      Für Amazon-Cognito-Identitätspools, die kontenübergreifende IAM-Rollen übernehmen, gelten zusätzliche Überlegungen. Die Vertrauensrichtlinien dieser Rollen müssen den Service-Prinzipal cognito-identity.amazonaws.com akzeptieren und den Bedingungsschlüssel aud enthalten, um die Rollenübernahme auf Benutzer aus Ihren vorgesehenen Identitätspools zu beschränken. Eine Richtlinie, die Amazon-Cognito-Identitätspools ohne diese Bedingung vertraut, birgt das Risiko, dass ein Benutzer aus einem nicht vorgesehenen Identitätspool die Rolle übernehmen kann. Weitere Informationen finden Sie unter Vertrauensrichtlinien für IAM-Rollen in der grundlegenden (klassischen) Authentifizierung im Amazon-Cognito-Entwicklerhandbuch.

      Erstellen Sie ein Bedingungselement ähnlich einem der folgenden Beispiele, je nach dem von Ihnen verwendeten Identitätsanbieter:

      "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}}

      "Condition": {"StringEquals": {"www.amazon.com:app_id": "amzn1.application-oa2-123456"}}

      "Condition": {"StringEquals": {"graph.facebook.com:app_id": "111222333444555"}}

      "Condition": {"StringEquals": {"accounts.google.com:aud": "66677788899900pro0"}}

      Verwenden Sie für OIDC-Anbieter die vollqualifizierte URL des OIDC-Identitätsanbieters mit dem Kontextschlüssel aud wie im folgenden Beispiel:

      "Condition": {"StringEquals": {"server.example.com:aud": "appid_from_oidc_idp"}}

    Anmerkung

    Die Werte für den Prinzipal in der Vertrauensrichtlinie für die Rolle sind spezifisch für einen Identitätsanbieter. Eine Rolle für OIDC kann nur einen Prinzipal angeben. Wenn sich Benutzer in einer mobilen App über mehrere Identitätsanbieter anmelden können, müssen Sie daher für jeden Identitätsanbieter den Sie unterstützen möchten, eine separate Rolle erstellen. Erstellen Sie separate Vertrauensrichtlinien für jeden Identitätsanbieter.

    Wenn sich ein Benutzer über eine mobile App bei Login with Amazon anmeldet, würde das folgende Beispiel einer Vertrauensrichtlinie gelten. Im Beispiel steht amzn1.application-oa2-123456 für die App-ID, die Amazon zuweist, wenn Sie die App mit Login with Amazon konfigurieren.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "RoleForLoginWithAmazon", "Effect": "Allow", "Principal": {"Federated": "www.amazon.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {"StringEquals": {"www.amazon.com:app_id": "amzn1.application-oa2-123456"}} }] }

    Wenn ein Benutzer eine mobile App verwendet, um sich von Facebook aus anzumelden, würde das folgende Beispiel einer Vertrauensrichtlinie gelten. In diesem Beispiel steht 111222333444555 für die App-ID, die Facebook zuweist.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "RoleForFacebook", "Effect": "Allow", "Principal": {"Federated": "graph.facebook.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {"StringEquals": {"graph.facebook.com:app_id": "111222333444555"}} }] }

    Wenn ein Benutzer eine mobile App verwendet, um sich von Google aus anzumelden, würde das folgende Beispiel einer Vertrauensrichtlinie gelten. In diesem Beispiel steht 666777888999000 für die App-ID, die Google zuweist.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "RoleForGoogle", "Effect": "Allow", "Principal": {"Federated": "accounts.google.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {"StringEquals": {"accounts.google.com:aud": "666777888999000"}} }] }

    Wenn ein Benutzer eine mobile App verwendet, um sich von Amazon Cognito aus anzumelden, würde das folgende Beispiel einer Vertrauensrichtlinie gelten. In diesem Beispiel steht us-east:12345678-ffff-ffff-ffff-123456 für die Identitätspool-ID, die Amazon Cognito zuweist.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "RoleForCognito", "Effect": "Allow", "Principal": {"Federated": "cognito-identity.amazonaws.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}} }] }

Erstellen einer Rolle für OIDC

Nach dem Erstellen der vorbereitenden Schritte können Sie nun die Rolle in IAM erstellen. Im folgenden Verfahren wird beschrieben, wie Sie die Rolle für den OIDC-Verbund in der AWS Management Console erstellen. Beachten Sie zum Erstellen von Rollen mit der AWS CLI oder der AWS-API die Verfahren unter Rollen für externe Identitätsanbieter (Verbund) erstellen.

Wichtig

Wenn Sie Amazon Cognito verwenden, verwenden Sie die Amazon-Cognito-Konsole, um die Rollen einzurichten. Verwenden Sie andernfalls zum Erstellen von Rollen für den OIDC-Verbund die IAM-Konsole.

So erstellen Sie eine IAM-Rolle für den OIDC-Verbund
  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 Rollen und dann Rolle erstellen.

  3. Wählen Sie Web-Identität als vertrauenswürdigen Entitätstyp aus und klicken Sie auf Weiter.

  4. Wählen Sie für Identity provider (Identitätsanbieter), den Identitätsanbieter für Ihre Rolle:

    • Wenn Sie eine Rolle für einen einzelnen Web-Identitätsanbieter erstellen, wählen Sie Login with Amazon, Facebook oder Google.

      Anmerkung

      Sie müssen für jeden Identitätsanbieter, den Sie unterstützen möchten, eine eigene Rolle erstellen.

    • Wenn Sie eine erweiterte Szenario-Rolle für Amazon Cognito erstellen möchten, wählen Sie Amazon Cognito.

      Anmerkung

      Sie müssen eine Rolle manuell erstellen, um sie mit Amazon Cognito zu verwenden, wenn Sie an einem erweiterten Szenario arbeiten. Andernfalls kann Amazon Cognito Rollen für Sie erstellen. Weitere Informationen zu Amazon Cognito finden Sie unter Identitätspools (verbundene Identitäten) im Amazon-Cognito-Entwicklerhandbuch.

    • Wenn Sie eine Rolle für GitHub Actions erstellen möchten, müssen Sie zunächst den GitHub-OIDC-Anbieter zu IAM hinzufügen. Wählen Sie token.actions.githubusercontent.com aus, nachdem Sie den GitHub-OIDC-Anbieter zu IAM hinzugefügt haben.

      Anmerkung

      Informationen darüber, wie Sie AWS so konfigurieren, dass es GitHubs OIDC als Verbundidentität vertraut, finden Sie unter GitHub Docs – Konfigurieren von OpenID Connect in Amazon Web Services. Informationen zu bewährten Zugriffsbeschränkungsmethoden für Rollen, die dem IAM-Identitätsanbieter für GitHub zugeordnet sind, finden Sie auf dieser Seite unter Konfigurieren einer Rolle für den GitHub-OIDC-Identitätsanbieter.

    • Wenn Sie eine Rolle für HashiCorp Cloud Platform (HCP) Terraform erstellen möchten, müssen Sie zunächst den Terraform-OIDC-Anbieter zu IAM hinzufügen. Nachdem Sie den Terraform-OIDC-Anbieter zu IAM hinzugefügt haben, rufen Sie app.terraform.io ab.

      Wichtig

      IAM-Rollen für den Terraform-OIDC-Anbieter der HashiCorp Cloud Platform (HCP) müssen den IAM-Bedingungsschlüssel app.terraform.io:sub in der Rollenvertrauensrichtlinie auswerten. Dieser Bedingungsschlüssel begrenzt, welche HCP Terraform-Organisationen, Projekte, Arbeitsbereiche oder Ausführungsphasen die Rolle übernehmen können. Ohne diesen Bedingungsschlüssel gewährt Ihre Vertrauensrichtlinie Identitäten außerhalb Ihrer Organisation Zugriff auf Ihre Rolle und AWS-Ressourcen, was nicht mit dem Prinzip der geringsten Berechtigungen im Einklang steht.

      Wenn Sie eine Vertrauensrichtlinie für eine Rolle festlegen oder ändern, die einem HCP-Terraform-OIDC-Anbieter in Ihrem AWS-Konto zugeordnet ist, aber den IAM-Bedingungsschlüssel app.terraform.io:sub nicht auswerten, erhalten Sie eine Fehlermeldung. Darüber hinaus lehnt AWS STS Autorisierungsanfragen ab, wenn Ihre Rollenvertrauensrichtlinie diesen Bedingungsschlüssel nicht auswertet.

  5. Geben Sie die Kennung für Ihre Anwendung ein. Die Marierung der Kennung ist abhängig von dem von Ihnen gewählten Anbieter:

    • Wenn Sie eine Rolle für Login with Amazon erstellen, geben Sie die App-ID in das Feld Application ID (Anwendungs-ID) ein.

    • Wenn Sie eine Rolle für Facebook erstellen, geben Sie die App-ID in das Feld Application ID (Anwendungs-ID) ein.

    • Wenn Sie eine Rolle für Google erstellen, geben Sie die App-ID in das Feld Audience (Zielgruppe) ein.

    • Wenn Sie eine Rolle für Amazon Cognito erstellen, geben Sie die ID des Identitäten-Pools, den Sie für Ihre Amazon-Cognito-Anwendungen erstellt haben, im Feld Identity Pool ID (Identitäten-Pool-ID) ein.

    • Geben Sie folgende Details ein, wenn Sie eine Rolle für GitHub Actions erstellen möchten:

      • Wählen Sie für Audience (Zielgruppe) sts.amazonaws.com.

      • Geben Sie unter GitHub-Organisation den Namen der GitHub-Organisation ein. Der Name der GitHub-Organisation ist erforderlich und muss alphanumerisch sein, einschließlich Bindestrichen (-). Platzhalterzeichen (* und ?) dürfen im Namen der GitHub-Organisation nicht verwendet werden.

      • (Optional) Geben Sie unter GitHub-Repository den Namen des GitHub-Repositorys ein. Wenn Sie keinen Wert angeben, wird standardmäßig ein Platzhalter (*) verwendet.

      • (Optional) Geben Sie unter GitHub-Branch den Namen des GitHub-Branchs ein. Wenn Sie keinen Wert angeben, wird standardmäßig ein Platzhalter (*) verwendet.

    • Wenn Sie eine Rolle für Terraform der HashiCorp Cloud Platform (HCP) erstellen möchten, geben Sie die folgenden Details ein:

      • Wählen Sie für Audience (Zielgruppe) aws.workload.identity.

      • Geben Sie unter Organisation den Namen der Organisation eingeben. Sie können für alle Organisationen ein Platzhalterzeichen (*) angeben.

      • Geben Sie bei Projekt den Projektnamen ein. Sie können für alle Projekte ein Platzhalterzeichen (*) angeben.

      • Geben Sie unter Arbeitsbereich den Namen für den Arbeitsbereich ein. Sie können für alle Arbeitsbereiche ein Platzhalterzeichen (*) angeben.

      • Geben Sie für Ausführungsphase den Namen der Ausführungsphase ein. Sie können für alle Ausführungsphasen ein Platzhalterzeichen (*) angeben.

  6. (Optional:) Wählen Sie unter Bedingung (optional) die Option Bedingung hinzufügen aus, um weitere Bedingungen zu erstellen, die erfüllt werden müssen, damit Benutzer Ihrer Anwendung die durch die Rolle erteilten Berechtigungen verwenden können. Sie können beispielsweise eine Bedingung hinzufügen, um Zugriff auf AWS-Ressourcen nur für eine bestimmte IAM-Benutzer-ID zu gewähren. Sie können Bedingungen auch der Vertrauensrichtlinie hinzufügen, nachdem die Rolle erstellt wurde. Weitere Informationen finden Sie unter Rollenvertrauensrichtlinie aktualisieren .

  7. Überprüfen Sie Ihre OIDC-Informationen und klicken Sie dann auf Weiter.

  8. IAM enthält eine Liste der von AWS verwalteten und vom Kunden verwaltete Richtlinien in Ihrem Konto. Wählen Sie die Richtlinie aus, die für die Berechtigungsrichtlinie verwendet werden soll, oder wählen Sie Create policy (Richtlinie erstellen), um eine neue Registerkarte im Browser zu öffnen und eine neue Richtlinie von Grund auf zu erstellen. Weitere Informationen finden Sie unter Erstellen von IAM-Richtlinien. Nachdem Sie die Richtlinie erstellt haben, schließen Sie die Registerkarte und kehren zur ursprünglichen Registerkarte zurück. Aktivieren Sie das Kontrollkästchen neben den Berechtigungsrichtlinien, die OIDC-Benutzer haben sollen. Wenn Sie es vorziehen, zu diesem Zeitpunkt keine Richtlinien auszuwählen, können Sie sie der Rolle später hinzufügen. Standardmäßig hat eine Rolle keine Berechtigungen.

  9. (Optional) Legen Sie eine Berechtigungsgrenze fest. Dies ist ein erweitertes Feature.

    Öffnen Sie den Abschnitt Permissions boundary (Berechtigungsgrenze) und wählen Sie Use a permissions boundary to control the maximum role permissions (Eine Berechtigungsgrenze verwenden, um die maximalen Rollen-Berechtigungen zu steuern). Wählen Sie die Richtlinie aus, die für eine Berechtigungsgrenze verwendet werden soll.

  10. Wählen Sie Weiter.

  11. Geben Sie für Role name (Rollenname) einen Rollennamen ein. Rollennamen müssen innerhalb Ihres AWS-Konto-Kontos eindeutig sein. Dabei wird zwischen Groß- und Kleinschreibung nicht unterschieden. Zum Beispiel können Sie keine Rollen erstellen, die sowohl PRODROLE als auch prodrole heißen. Da möglicherweise andere AWS-Ressourcen auf die Rolle verweisen, können Sie den Namen der Rolle nach der Erstellung nicht mehr bearbeiten.

  12. (Optional) Geben Sie im Feld Description (Beschreibung) eine Beschreibung für die neue Rolle ein.

  13. Um die Anwendungsfälle und Berechtigungen für die Rolle zu bearbeiten, wählen Sie in den Abschnitten Step 1: Select trusted entities (Schritt 1: Vertrauenswürdige Entitäten auswählen) oder Step 2: Add permissions (Schritt 2: Berechtigungen hinzufügen) die Option Edit (Bearbeiten).

  14. (Optional) Wenn Sie der Rolle Metadaten hinzufügen möchten, fügen Sie Tags als Schlüssel-Wert-Paare an. Weitere Informationen zur Verwendung von Tags in IAM finden Sie unter Tags für AWS Identity and Access Management-Ressourcen.

  15. Prüfen Sie die Rolle und klicken Sie dann auf Create Role (Rolle erstellen).

Konfigurieren einer Rolle für den GitHub-OIDC-Identitätsanbieter

Wenn Sie GitHub als OpenID Connect (OIDC)-Identitätsanbieter (IDP) verwenden, empfiehlt es sich, die Entitäten einzuschränken, die die dem IAM-Identitätsanbieter zugeordnete Rolle übernehmen können. Wenn Sie eine Bedingungsanweisung in die Vertrauensrichtlinie aufnehmen, können Sie die Rolle auf bestimmte GitHub-Organisationen, -Repositorys oder Branchen beschränken. Sie können den Bedingungsschlüssel token.actions.githubusercontent.com:sub mit Bedingungsoperatoren für Zeichenfolgen verwenden, um den Zugriff einzuschränken. Wir empfehlen, dass Sie die Bedingung auf eine bestimmte Gruppe von Repositorys oder Branches in Ihrer GitHub-Organisation beschränken. Weitere Informationen darüber, wie Sie AWS so konfigurieren, dass es GitHubs OIDC als Verbundidentität vertraut, finden Sie unter GitHub Docs – Konfigurieren von OpenID Connect in Amazon Web Services.

Wenn Sie GitHub-Umgebungen in Aktions-Workflows oder in OIDC-Richtlinien verwenden, empfehlen wir dringend, der Umgebung Schutzregeln hinzuzufügen, um die Sicherheit zu erhöhen. Verwenden Sie Bereitstellungsverzweigungen und -Tags, um einzuschränken, welche Verzweigungen und Tags in der Umgebung bereitgestellt werden können. Weitere Informationen zum Konfigurieren von Umgebungen mit Schutzregeln finden Sie unter Bereitstellungsverzweigungen und -Tags im GitHub-Artikel Verwendung von Umgebungen für die Bereitstellung.

Wenn der OIDC-Identitätsanbieter von GitHub der vertrauenswürdige Prinzipal für Ihre Rolle ist, überprüft IAM die Bedingung für die Vertrauensrichtlinie der Rolle, um sicherzustellen, dass der Bedingungsschlüssel token.actions.githubusercontent.com:sub vorhanden ist und dass sein Wert nicht nur ein Platzhalterzeichen (* und ?) oder null ist. IAM führt diese Prüfung durch, wenn die Vertrauensrichtlinie erstellt oder aktualisiert wird. Wenn der Bedingungsschlüssel token.actions.githubusercontent.com:sub nicht vorhanden ist oder der Schlüsselwert die genannten Wertkriterien nicht erfüllt, schlägt die Anforderung fehl und gibt einen Fehler zurück.

Wichtig

Wenn Sie den Bedingungsschlüssel token.actions.githubusercontent.com:sub nicht auf eine bestimmte Organisation oder ein bestimmtes Repository beschränken, können GitHub-Aktionen von Organisationen oder Repositorys außerhalb Ihrer Kontrolle Rollen übernehmen, die dem GitHub-IAM-Identitätsanbieter in Ihrem AWS-Konto zugeordnet sind.

Das folgende Beispiel für eine Vertrauensrichtlinie beschränkt den Zugriff auf die definierte GitHub-Organisation, das Repository und die Branche. Der Wert des Bedingungsschlüssels token.actions.githubusercontent.com:sub im folgenden Beispiel ist das von GitHub dokumentierte Standardformat für Betreffwerte.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::012345678910:oidc-provider/token.actions.githubusercontent.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com", "token.actions.githubusercontent.com:sub": "repo:GitHubOrg/GitHubRepo:ref:refs/heads/GitHubBranch" } } } ] }

Die folgende Beispielbedingung beschränkt den Zugriff auf die definierte GitHub-Organisation und das Repository, gewährt jedoch Zugriff auf jede Branche innerhalb des Repositorys.

"Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com" }, "StringLike": { "token.actions.githubusercontent.com:sub": "repo:GitHubOrg/GitHubRepo:*" } }

Die folgende Beispielbedingung beschränkt den Zugriff auf jedes Repository oder jede Branche innerhalb der definierten GitHub-Organisation. Wir empfehlen, den Bedingungsschlüssel token.actions.githubusercontent.com:sub auf einen bestimmten Wert zu festzulegen, der den Zugriff auf GitHub-Aktionen innerhalb Ihrer GitHub-Organisation beschränkt.

"Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com" }, "StringLike": { "token.actions.githubusercontent.com:sub": "repo:GitHubOrg/*" } }

Weitere Informationen zu den OIDC-Verbundschlüsseln, die für Bedingungsprüfungen in Richtlinien verfügbar sind, finden Sie unter Verfügbare Schlüssel für den AWS OIDC Verbund.