In diesem Dokument wird beschrieben, wie Sie Ihr Cloud Build-Dienstkonto so konfigurieren, dass es Dienstkonten für die Laufzeit, Compute Engine oder App Engine annehmen 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 Standard-Cloud Build-Dienstkonto das Dienstkonto Ihres verwalteten Dienstes annehmen 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übertragung für ein Dienstkonto einrichten
So konfigurieren Sie Ihr Cloud Build-Dienstkonto für die Identitätsübernahme eines anderen Dienstkontos:
Console
Rufen Sie die Seite settings Cloud Build Berechtigungen auf.
Wählen Sie Ihr Cloud Build-Dienstkonto aus.
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 Developer ( roles/cloudfunctions.developer
)Cloud Run Cloud Run-Administrator ( roles/run.admin
)Compute Engine Compute-Instanzadministrator v1 ( roles/compute.instanceAdmin.v1
)In Cloud Build wird der Bereich Rolle „Dienstkontonutzer“ zuweisen angezeigt.
Wählen Sie ein Dienstkonto aus, dessen Identität Sie übernehmen möchten. Wenn Sie beispielsweise die Bereitstellung in Compute Engine planen und die Rolle „Compute-Instanzadministrator v1“ aktiviert haben, wählen Sie das Compute Engine-Dienstkonto aus, das Ihr Cloud Build-Dienstkonto annehmen soll.
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 „Service Account User“ (roles/iam.serviceAccountUser
) für das Dienstkonto zu, dessen Identität Sie annehmen möchten.
Mit der Rolle „Dienstkontonutzer“ kann ein Hauptkonto ein Dienstkonto an eine Ressource anhängen. So kann Ihr Cloud Build-Dienstkonto die Identität des ausgewählten verwalteten Dienstkontos übernehmen. Weitere Informationen finden Sie in der IAM-Dokumentation unter Rolle „Dienstkontonutzer“ und Dienstkonten an Ressourcen anhängen.