Projektübergreifendes Dienstkonto unterstützen

Jeder Eventarc-Trigger ist zum Zeitpunkt der Erstellung des Triggers mit einem IAM-Dienstkonto (Identity and Access Management) verknüpft. Der Trigger verwendet das Dienstkonto als Standardidentität.

Standardmäßig können Sie ein IAM-Dienstkonto nicht in einem Google Cloud-Projekt erstellen und es mit einer Ressource in einem anderen Projekt verknüpfen. Möglicherweise haben Sie die Dienstkonten für Ihre Organisation jedoch in separaten Projekten zentralisiert, was die Verwaltung der Dienstkonten vereinfachen kann. In diesem Dokument werden die Schritte beschrieben, die zum Anhängen eines Dienstkontos in einem Projekt an einen Eventarc-Trigger in einem anderen Projekt erforderlich sind.

Wenn Sie nicht die Berechtigungen zum Ausführen dieser Schritte haben, bitten Sie einen Administrator, sie auszuführen.

Projektübergreifende Dienstkontonutzung aktivieren

Führen Sie im Dienstkontoprojekt die folgenden Schritte aus.

  1. Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.

    Zu den Organisationsrichtlinien

  2. Wenn die Richtlinie Projektübergreifende Dienstkontonutzung deaktivieren erzwungen wird, müssen Sie sie deaktivieren.

    Weitere Informationen finden Sie unter Ermöglichen, dass Dienstkonten projektübergreifend angehängt werden können.

  3. Erstellen Sie ein Dienstkonto und notieren Sie sich seinen Namen:

Berechtigungen für die Dienstkontoauthentifizierung erteilen

Hauptkonten können Dienstkonten für die Authentifizierung auf verschiedene Arten verwenden. Für jede Art der Authentifizierung muss das Hauptkonto bestimmte IAM-Berechtigungen für das Dienstkonto haben. Weitere Informationen finden Sie unter Rollen für die Dienstkontoauthentifizierung.

  1. Weisen Sie dem Eventarc-Dienst-Agent des Google Cloud-Projekts, das den Trigger enthält, die IAM-Rolle Ersteller von Dienstkonto-Tokens (roles/iam.serviceAccountTokenCreator) zu. Dadurch kann der Dienst-Agent den projektübergreifenden Zugriff für das Dienstkonto verwalten. Ein Dienst-Agent ist die Identität eines bestimmten Google Cloud-Dienstes für ein bestimmtes Projekt. Weitere Informationen finden Sie unter Dienst-Agents.

    Console

    1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:

      Zur Seite „Dienstkonten“

    2. Wählen Sie das Projekt aus, dem das Dienstkonto gehört, das Sie an den Eventarc-Trigger anhängen möchten.

    3. Klicken Sie auf die E-Mail-Adresse des zuvor erstellten Dienstkontos.

    4. Klicken Sie auf den Tab Berechtigungen.

    5. Klicken Sie im Abschnitt Hauptkonten mit Zugriff auf dieses Dienstkonto auf Zugriff erlauben.

    6. Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Eventarc-Dienst-Agents ein:

      service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com

      Ersetzen Sie EVENTARC_PROJECT_NUMBER durch die Google Cloud-Projektnummer des Projekts, das den Trigger enthält.

    7. Klicken Sie auf Weitere Rolle hinzufügen.

    8. Filtern Sie in der Liste Rolle auswählen nach Ersteller von Dienstkonto-Tokens und wählen Sie dann die Rolle aus.

    9. Klicken Sie auf Speichern.

    gcloud

    Führen Sie den Befehl gcloud iam service-accounts add-iam-policy-binding aus:

    gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com \
        --member='serviceAccount:service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com' \
        --role='roles/iam.serviceAccountTokenCreator'

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_NAME: Name Ihres Dienstkontos.
    • SERVICE_ACCOUNT_PROJECT_ID: die Google Cloud-Projekt-ID des Projekts, zu dem das Dienstkonto gehört
    • EVENTARC_PROJECT_NUMBER: die Google Cloud-Projektnummer des Projekts, das den Trigger enthält
  2. Gewähren Sie die Dienstkontonutzer (roles/iam.serviceAccountUser IAM-Rolle für alle Hauptkonten, die Trigger erstellen, z. B. dem Eventarc-Dienst-Agent des Google Cloud-Projekts, das den Trigger enthält. Diese vordefinierte Rolle enthält die Berechtigung iam.serviceAccounts.actAs, die zum Anhängen eines Dienstkontos an eine Ressource erforderlich ist.

    Console

    Weisen Sie die Rolle für das Projekt zu, damit das Hauptkonto die Identität mehrerer Dienstkonten übernehmen kann:

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.

      IAM aufrufen

    2. Wählen Sie das Projekt aus, zu dem das Dienstkonto gehört.

    3. Klicken Sie auf Zugriff gewähren.

    4. Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Hauptkontos ein.

    5. Filtern Sie in der Liste Rolle auswählen nach Dienstkontonutzer und wählen Sie die Rolle aus.

    6. Klicken Sie auf Speichern.

    Oder weisen Sie dem Dienstkonto die Rolle zu, damit das Hauptkonto nur die Identität eines bestimmten Dienstkontos übernehmen kann:

    1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:

      Zur Seite „Dienstkonten“

    2. Wählen Sie das Projekt aus, zu dem das Dienstkonto gehört.

    3. Klicken Sie auf die E-Mail-Adresse des zuvor erstellten Dienstkontos.

    4. Klicken Sie auf den Tab Berechtigungen.

    5. Klicken Sie im Abschnitt Hauptkonten mit Zugriff auf dieses Dienstkonto auf Zugriff erlauben.

    6. Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Hauptkontos ein.

    7. Klicken Sie auf Weitere Rolle hinzufügen.

    8. Filtern Sie in der Liste Rolle auswählen nach Dienstkontonutzer und wählen Sie die Rolle aus.

    9. Klicken Sie auf Speichern.

    gcloud

    Führen Sie den Befehl gcloud projects add-iam-policy-binding aus und weisen Sie dem Projekt die Rolle zu, damit das Hauptkonto die Identität mehrerer Dienstkonten übernehmen kann:

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member=PRINCIPAL \
        --role='roles/iam.serviceAccountUser'

    Oder führen Sie den Befehl gcloud iam service-accounts add-iam-policy-binding aus und weisen Sie dem Dienstkonto die Rolle zu, damit das Hauptkonto nur die Identität eines bestimmten Dienstkontos übernehmen kann:

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_RESOURCE_NAME \
        --member=PRINCIPAL \
        --role='roles/iam.serviceAccountUser'

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_PROJECT_ID: die Google Cloud-Projekt-ID des Projekts, zu dem das Dienstkonto gehört
    • PRINCIPAL: Kennung für den Triggerersteller im Format user|group|serviceAccount:email oder domain:domain. Beispiel:
      • user:test-user@gmail.com
      • group:admins@example.com
      • serviceAccount:test123@example.domain.com
      • domain:example.domain.com m
    • SERVICE_ACCOUNT_RESOURCE_NAME: der vollständige Ressourcenname des Dienstkontos. Beispiel:

      projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com

      Wobei:

      • SERVICE_ACCOUNT_PROJECT_ID ist die Google Cloud-Projekt-ID, zu der das Dienstkonto gehört.
      • SERVICE_ACCOUNT_NAME ist der Name Ihres Dienstkontos.

Berechtigungen zur Unterstützung des Ereignisroutings erteilen

Bevor Sie einen Eventarc-Trigger erstellen, müssen Sie andere IAM-Berechtigungen erteilen, um Routingereignisse mit Eventarc zu unterstützen.

  1. Erteilen Sie die entsprechenden Berechtigungen, basierend auf den Ressourcen, auf die der Eventarc-Trigger zugreifen muss, um seine Arbeit zu erledigen, sowie auf dem Ereignisanbieter und dem Ziel. Weitere Informationen finden Sie unter Rollen und -Berechtigungen.

  2. Erstellen Sie den Trigger mit dem projektübergreifenden Dienstkonto.

Nächste Schritte