Anmeldedatenkonfiguration herunterladen und Zugriff gewähren

Auf dieser Seite wird beschrieben, wie Sie Ihre Arbeitslasten so konfigurieren, dass sie mithilfe der Workload Identity-Föderation und entweder mit direktem Ressourcenzugriff oder Identitätsübernahme des Dienstkontos auf Google Cloud-Ressourcen zugreifen.

Anwendungsfallspezifische End-to-End-Anleitungen finden Sie in den Konfigurationsanleitungen für AWS und Azure, Active Directory, GitHub, GitLab und andere Deployment-Pipelines und Kubernetes.

Externer Arbeitslast Zugriff auf Google Cloud-Ressourcen gewähren

Damit Ihre Arbeitslast auf Google Cloud-Ressourcen zugreifen kann, empfehlen wir, dem Hauptkonto direkten Ressourcenzugriff zu gewähren. In diesem Fall ist das Hauptkonto der föderierte Nutzer. Für einige Google Cloud-Produkte gelten Einschränkungen der Google Cloud API. Wenn Ihre Arbeitslast einen API-Endpunkt aufruft, der eingeschränkt ist, können Sie stattdessen die Identitätsübernahme des Dienstkontos verwenden. In diesem Fall ist das Google Cloud-Dienstkonto das Hauptkonto, das als Identität dient. Sie gewähren dem Dienstkonto Zugriff auf die Ressource.

Direkter Ressourcenzugriff

Sie können einer föderierten Identität mithilfe der Google Cloud Console oder der gcloud CLI direkt Zugriff auf Ressourcen gewähren.

Console

Wenn Sie über die Google Cloud Console IAM-Rollen direkt für eine Ressource gewähren möchten, müssen Sie die Seite der Ressource aufrufen und die Rolle dann gewähren. Im folgenden Beispiel wird gezeigt, wie Sie die Seite „Cloud Storage“ aufrufen und einer föderierten Identität direkt in einem Cloud Storage-Bucket die Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer) gewähren.

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets, für den Sie die Rolle zuweisen möchten.

  3. Wählen Sie oben auf der Seite den Tab Berechtigungen aus.

  4. Klicken Sie auf die Schaltfläche Zugriff gewähren.

    Das Dialogfeld Hauptkonten hinzufügen wird angezeigt.

  5. Geben Sie in das Feld Neue Hauptkonten eine oder mehrere Identitäten ein, die Zugriff auf den Bucket erhalten sollen.

    Nach Thema

    principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
    

    Ersetzen Sie Folgendes:

    • PROJECT_NUMBER: die Projektnummer
    • POOL_ID: die ID des Arbeitslastpools
    • SUBJECT: das einzelne Thema, das Ihrem IdP zugeordnet ist, z. B. administrator@example.com

    Nach Gruppe

    principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
    

    Ersetzen Sie Folgendes:

    • PROJECT_NUMBER: die Projektnummer
    • WORKLOAD_POOL_ID: die ID des Arbeitslastpools
    • GROUP: die Gruppe, die Ihrem IdP zugeordnet ist, z. B.: administrator-group@example.com

    Nach Attribut

    principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
    

    Ersetzen Sie Folgendes:

    • PROJECT_NUMBER: die Projektnummer
    • WORKLOAD_POOL_ID: die ID des Arbeitslastpools
    • ATTRIBUTE_NAME: eines der Attribute, die von Ihrem IdP zugeordnet wurden.
    • ATTRIBUTE_VALUE: der Wert des Attributs
  6. Wählen Sie aus dem Drop-down-Menü Rolle auswählen eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.

  7. Klicken Sie auf Speichern.

gcloud

So weisen Sie mit der gcloud CLI IAM-Rollen für eine Ressource in einem Projekt zu:

  1. Rufen Sie die Projektnummer des Projekts ab, in dem die Ressource definiert ist.

    gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
    
  2. Gewähren Sie Zugriff auf die Ressource.

    Führen Sie den folgenden Befehl aus, um mit der gcloud CLI externen Identitäten, die bestimmte Kriterien erfüllen, die Rolle „Storage Object Viewer“ (roles/storage.objectViewer) zuzuweisen.

    Nach Thema

    gcloud storage buckets add-iam-policy-binding BUCKET_ID \
        --role=roles/storage.objectViewer \
        --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"

    Nach Gruppe

    gcloud storage buckets add-iam-policy-binding BUCKET_ID \
        --role=roles/storage.objectViewer \
        --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"

    Nach Attribut

    gcloud storage buckets add-iam-policy-binding BUCKET_ID \
        --role=roles/storage.objectViewer \
        --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"

    Ersetzen Sie Folgendes:

    • BUCKET_ID: der Bucket, für den Zugriff gewährt werden soll
    • PROJECT_NUMBER: die Projektnummer des Projekts, das den Workload Identity-Pool enthält
    • POOL_ID: die Pool-ID des Workload Identity-Pools
    • SUBJECT: der erwartete Wert für das Attribut, das Sie google.subject zugeordnet haben
    • GROUP: der erwartete Wert für das Attribut, das Sie google.groups zugeordnet haben
    • ATTRIBUTE_NAME: der Name eines benutzerdefinierten Attributs in Ihrer Attributzuordnung
    • ATTRIBUTE_VALUE: Wert des benutzerdefinierten Attributs in Ihrer Attributzuordnung

    Sie können jeder Google Cloud-Ressource, die IAM-Zulassungsrichtlinien unterstützt, Rollen zuweisen.

Identitätsübertragung für ein Dienstkonto

  1. So erstellen Sie ein Dienstkonto für die externe Arbeitslast:

    1. Enable the IAM, Security Token Service, and Service Account Credentials APIs.

      Enable the APIs

    2. Erstellen Sie ein Dienstkonto, das die Arbeitslast darstellt. Wir empfehlen, für jede Arbeitslast ein dediziertes Dienstkonto zu verwenden. Das Dienstkonto muss sich nicht im selben Projekt wie der Workload Identity-Pool befinden. Sie müssen sich aber auf das Projekt beziehen, das das Dienstkonto enthält.

    3. Gewähren Sie dem Dienstkonto Zugriff auf Ressourcen, auf die externe Identitäten zugreifen können sollen.

    4. Weisen Sie dem Dienstkonto die Nutzerrolle "Workload Identity" (roles/iam.workloadIdentityUser) zu.

  2. So gewähren Sie Zugriff auf eine föderierte Identität mithilfe der Identitätsübernahme des Dienstkontos über die Google Cloud Console oder die gcloud CLI:

Console

So weisen Sie der Google Cloud Console IAM-Rollen zu, um einer föderierten Identität mit einem Dienstkonto IAM-Rollen zuzuweisen:

Dienstkonto im selben Projekt

  1. So gewähren Sie einem Dienstkonto im selben Projekt Zugriff über die Identitätsübernahme des Dienstkontos:

    1. Rufen Sie die Seite Workload Identity-Pools auf.

      Zu Workload Identity-Pools

    2. Wählen Sie Zugriff gewähren aus.

    3. Wählen Sie im Dialogfeld Zugriff auf Dienstkonto gewähren die Option Zugriff mit Identitätsübernahme des Dienstkontos gewähren aus.

    4. Wählen Sie in der Liste Dienstkonten das Dienstkonto aus, das von den externen Identitäten übernommen werden soll. Gehen Sie dann so vor:

    5. Führen Sie eine der folgenden Aktionen aus, um auszuwählen, welche Identitäten im Pool die Identität des Dienstkontos übernehmen können:

      • Damit nur bestimmte Identitäten des Workload Identity-Pools die Identität des Dienstkontos übernehmen können, wählen Sie Nur Identitäten, die dem Filter entsprechen aus.

      • Wählen Sie in der Liste Attributname das Attribut aus, nach dem Sie filtern möchten.

      • Geben Sie im Feld Attributwert den erwarteten Wert des Attributs ein. Wenn Sie beispielsweise eine google.subject=assertion.sub-Attributzuordnung verwenden, legen Sie den Attributnamen auf subject und den Attributwert auf den Wert der sub-Anforderung in Tokens fest, die von Ihrem externen Identitätsanbieter ausgestellt werden.

    6. Klicken Sie zum Speichern der Konfiguration auf Speichern und dann auf Schließen.

Dienstkonto in einem anderen Projekt

  1. So gewähren Sie einem Dienstkonto in einem anderen Projekt Zugriff über die Identitätsübernahme des Dienstkontos:

    1. Rufen Sie die Seite Dienstkonten auf.

      Zur Seite „Dienstkonten“

    2. Wählen Sie das Dienstkonto aus, dessen Identität Sie übernehmen möchten.

    3. Klicken Sie auf Zugriff verwalten.

    4. Klicken Sie auf Hauptkonto hinzufügen.

    5. Geben Sie im Feld Neues Hauptkonto eine der folgenden Hauptkonto-IDs für die Identitäten in Ihrem Pool ein, die die Identität des Dienstkontos übernehmen.

      Nach Thema

      principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
      

      Ersetzen Sie Folgendes:

      • PROJECT_NUMBER: die Projektnummer
      • POOL_ID: die ID des Arbeitslastpools
      • SUBJECT: das einzelne Thema, das Ihrem IdP zugeordnet ist, z. B. administrator@example.com

      Nach Gruppe

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
      

      Ersetzen Sie Folgendes:

      • PROJECT_NUMBER: die Projektnummer
      • WORKLOAD_POOL_ID: die ID des Arbeitslastpools
      • GROUP: die Gruppe, die Ihrem IdP zugeordnet ist, z. B.: administrator-group@example.com

      Nach Attribut

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
      

      Ersetzen Sie Folgendes:

      • PROJECT_NUMBER: die Projektnummer
      • WORKLOAD_POOL_ID: die ID des Arbeitslastpools
      • ATTRIBUTE_NAME: eines der Attribute, die von Ihrem IdP zugeordnet wurden.
      • ATTRIBUTE_VALUE: der Wert des Attributs

      Nach Pool

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
      

      Ersetzen Sie Folgendes:

      • PROJECT_NUMBER: die Projektnummer
      • WORKLOAD_POOL_ID: die ID des Arbeitslastpools
    6. Wählen Sie unter Rolle auswählen die Rolle „Workload Identity-Nutzer“ (roles/iam.workloadIdentityUser) aus.

    7. Klicken Sie auf Speichern, um die Konfiguration zu speichern.

gcloud

Führen Sie den folgenden Befehl aus, um mit der gcloud CLI externen Identitäten, die bestimmte Kriterien erfüllen, die Rolle „Workload Identity-Nutzer“ (roles/iam.workloadIdentityUser) zuzuweisen.

Nach Thema

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"

Nach Gruppe

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"

Nach Attribut

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"

Ersetzen Sie Folgendes:

  • SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse des Dienstkontos.
  • PROJECT_NUMBER: die Projektnummer des Projekts, das den Workload Identity-Pool enthält
  • POOL_ID: die Pool-ID des Workload Identity-Pools
  • SUBJECT: der erwartete Wert für das Attribut, das Sie google.subject zugeordnet haben
  • GROUP: der erwartete Wert für das Attribut, das Sie google.groups zugeordnet haben
  • ATTRIBUTE_NAME: der Name eines benutzerdefinierten Attributs in Ihrer Attributzuordnung
  • ATTRIBUTE_VALUE: Wert des benutzerdefinierten Attributs in Ihrer Attributzuordnung

Konfiguration herunterladen

Damit Ihre Arbeitslast auf Clientbibliotheken zugreifen kann, müssen Sie zuerst Standardanmeldedaten für Anwendungen herunterladen und konfigurieren. Gehen Sie dazu so vor:

  1. Rufen Sie in der Google Cloud Console die Seite Workload Identity-Pools auf.

    Zu Workload Identity-Pools
  2. Wählen Sie in der Tabelle den gewünschten Pool aus, um die Detailseite aufzurufen.

  3. Klicken Sie auf Zugriff erlauben.

  4. Wählen Sie Zugriff mit föderierten Identitäten gewähren (empfohlen) aus.

  5. So laden Sie die Standardanmeldedaten für Anwendungen herunter, damit Ihre Arbeitslast auf Clientbibliotheken zugreifen kann:

    1. Klicken Sie auf Konfiguration herunterladen.

    2. Führen Sie im Dialogfeld Anwendung konfigurieren die folgenden Schritte aus:

      1. Wählen Sie in der Drop-down-Liste Anbieter Ihren Anbieter aus.

      2. Geben Sie unter OIDC-Tokenpfad oder SAML-Assertion-Pfad den Pfad ein, unter dem sich das Token oder die Assertion befindet.

      3. Wählen Sie in der Drop-down-Liste Formattyp das Format aus.

    3. Klicken Sie auf Konfiguration herunterladen und notieren Sie sich den Pfad, unter dem Sie die Datei gespeichert haben.