Identitätswechsel des Cloud Build-Dienstkontos für verwaltete Dienste konfigurieren

In diesem Dokument wird erläutert, wie Sie Ihr Cloud Build-Dienstkonto so konfigurieren, dass es die Identität von Dienstkonten für Runtime, Compute Engine oder App Engine übernehmen kann, damit Sie Images in verwalteten Diensten bereitstellen können.

Übersicht

Wenn ein Image in bestimmten verwalteten Diensten bereitgestellt wird, wird es mit der Identität des Dienstkontos für diesen verwalteten Dienst ausgeführt. Da Cloud Build neue Instanzen oder Versionen automatisch bereitstellen kann, muss Ihr angegebenes Cloud Build-Dienstkonto oder das standardmäßige Cloud Build-Dienstkonto die Identität des Dienstkontos Ihres verwalteten Dienstes übernehmen können. Diese Anforderung gilt für die Bereitstellung in den folgenden verwalteten Diensten:

Verwalteter Dienst Dienstkonto
App Engine App Engine-Dienstkonto
Cloud Run-Funktionen Laufzeitdienstkonto
Cloud Run Dienstidentität
Compute Engine Compute Engine-Dienstkonto

Identitätsübernahme des Dienstkontos einrichten

So konfigurieren Sie Ihr Cloud Build-Dienstkonto, damit es die Identität eines anderen Dienstkontos übernehmen kann:

Console

  1. Rufen Sie die Seite Berechtigungen von Cloud Build auf.

  2. Wählen Sie Ihr Cloud Build-Dienstkonto aus.

  3. Aktivieren Sie die erforderliche IAM-Rolle für Ihren verwalteten Dienst:

    Verwalteter Dienst Erforderliche Rolle
    App Engine App Engine-Administrator ( roles/appengine.appAdmin)
    Cloud Run-Funktionen Cloud Functions-Entwickler ( roles/cloudfunctions.developer)
    Cloud Run Cloud Run-Administrator ( roles/run.admin)
    Compute Engine Compute-Instanzadministrator (Version 1) (roles/compute.instanceAdmin.v1)

    In Cloud Build wird das Fenster Rolle „Dienstkontonutzer“ zuweisen angezeigt.

  4. Wählen Sie ein Dienstkonto aus, dessen Identität übernommen werden soll. Wenn Sie beispielsweise in Compute Engine bereitstellen möchten und die Rolle „Compute-Instanzadministrator v1“ aktiviert haben, wählen Sie das Compute Engine-Dienstkonto aus, dessen Identität Ihr Cloud Build-Dienstkonto übernehmen soll.

  5. Klicken Sie auf Berechtigung erteilen.

gcloud CLI

Geben Sie in der Google Cloud CLI Folgendes ein:

  gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_TO_IMPERSONATE \
        --member="CLOUD_BUILD_SERVICE_ACCOUNT" \
        --role="roles/iam.serviceAccountUser"

Wobei:

  • SERVICE_ACCOUNT_TO_IMPERSONATE ist das Dienstkonto, dessen Identität Sie übernehmen möchten.
  • CLOUD_BUILD_SERVICE_ACCOUNT ist Ihr Cloud Build-Dienstkonto.

Cloud Build weist Ihrem Cloud Build-Dienstkonto die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser) für das Dienstkonto zu, dessen Identität Sie übernehmen möchten.

Mit der Rolle „Dienstkontonutzer“ kann ein Hauptkonto ein Dienstkonto an eine Ressource anhängen, sodass Ihr Cloud Build-Dienstkonto die Identität des ausgewählten verwalteten Dienstkontos übernehmen kann. Weitere Informationen finden Sie in der IAM-Dokumentation unter Rolle „Dienstkontonutzer“ und Dienstkonten an Ressourcen anhängen.