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
Rufen Sie die Seite Berechtigungen von Cloud Build auf.settings
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-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.
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.
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.