Änderung des Cloud Build-Dienstkontos

Cloud Build wählt automatisch das Cloud Build-Dienstkonto aus, um Builds in Ihrem Namen auszuführen, sofern Sie dieses Verhalten nicht überschreiben. Dieses Dienstkonto kann Berechtigungen haben, die für Ihren Anwendungsfall unnötig weit gefasst sind, z. B. Zugriff auf Ihre Cloud Source Repositories und einen beliebigen Cloud Storage-Bucket in Ihrem Projekt.

Wir ändern das Standardverhalten für die Verwendung von Dienstkonten in Cloud Build in neuen Projekten. Diese Änderungen werden im Mai und Juni 2024 über mehrere Wochen nach Region eingeführt. Durch diese Änderungen wird der Standard-Sicherheitsstatus unserer Kunden in Zukunft verbessert. Sie können diese Änderungen deaktivieren, indem Sie die Einschränkung der Organisationsrichtlinie konfigurieren.

Die Auswirkungen auf Ihre Projekte hängen davon ab, ob Sie zu einer Organisation gehören. Im Allgemeinen werden Sie folgende Änderungen sehen, nachdem die Änderung in der von Ihnen verwendeten Region eingeführt wurde:

  • Projekte ohne Organisation. Wenn Sie nach der Änderung die Cloud Build API für Ihre Projekte aktivieren, verwenden Sie standardmäßig das Compute Engine-Dienstkonto für Builds, die mit der Cloud Build API oder der Google Cloud CLI gesendet werden. Für diese Projekte kann nicht das Legacy-Dienstkonto von Cloud Build verwendet werden, sondern nur ein benutzerdefiniertes Dienstkonto.

  • Projekte mit einer Organisation. Wenn Sie nach der Änderung die Cloud Build API für Ihre Projekte aktivieren, verwenden Sie standardmäßig das Compute Engine-Dienstkonto für Builds, die mit der Cloud Build API oder der Google Cloud CLI gesendet werden. Sie können ein benutzerdefiniertes Dienstkonto verwenden oder der Änderung widersprechen, indem Sie das Cloud Build-Dienstkonto in Ihrer Organisation aktivieren.

  • Vorhandene Projekte ohne Organisation. Wenn Sie die Cloud Build API vor der Änderung für Ihre Projekte aktiviert haben, wird das alte Verhalten fortgesetzt. Für alle Builds wird standardmäßig das alte Cloud Build-Dienstkonto verwendet. Sie können ein benutzerdefiniertes Dienstkonto weiterhin verwenden. Wählen Sie dazu entweder das Compute Engine-Dienstkonto aus oder erstellen Sie ein eigenes.

  • Bestehende Projekte mit einer Organisation. Wenn Sie die Cloud Build API vor der Änderung für Ihre Projekte aktiviert haben, wird standardmäßig das alte Cloud Build-Dienstkonto verwendet. Sie können auch weiterhin ein benutzerdefiniertes Dienstkonto verwenden.

  • Trigger: Sie müssen ein Dienstkonto angeben, wenn Sie einen Trigger erstellen oder aktualisieren, es sei denn, das Standarddienstkonto für Ihr Projekt ist das Cloud Build-Legacy-Dienstkonto.

  • API. Wenn Sie die Cloud Build API aktivieren, wird auch die Identity and Access Management API aktiviert.

  • Name des Cloud Build-Dienstkontos: Das Cloud Build-Dienstkonto wird als Legacy-Cloud Build-Dienstkonto bezeichnet.

Was muss ich tun?

Wenn Sie Teil einer Organisation sind, kann Ihre Organisation dieser Änderung widersprechen, indem sie die folgende boolesche Einschränkung der Organisationsrichtlinie festlegt:

  • Nicht erzwungen: constraints/cloudbuild.disableCreateDefaultServiceAccount

Wenn Sie die Organisationsrichtlinie nicht anpassen können oder möchten und die Cloud Build API nach Einführung der Änderung aktivieren, prüfen Sie, ob das Compute Engine-Standarddienstkonto oder das von Nutzern erstellte Dienstkonto genügend Berechtigungen für Ihren Build hat. Insbesondere muss der Nutzer, der den Build sendet, die Berechtigung iam.serviceAccounts.actAs für das Dienstkonto haben.

Verfügbarkeit des alten Cloud Build-Dienstkontos konfigurieren

Damit Sie die Verfügbarkeit des Cloud Build-Legacy-Dienstkontos beim Aktivieren der Cloud Build API konfigurieren können, führt Cloud Build die folgende boolesche Richtlinieneinschränkung ein:

  • Nicht erzwungen: constraints/cloudbuild.disableCreateDefaultServiceAccount. Ermöglicht die Verwendung des Legacy-Dienstes von Cloud Build als Standard in neuen Projekten.

  • Erzwungen: constraints/cloudbuild.disableCreateDefaultServiceAccount. Deaktiviert die Verwendung des Cloud Build-Legacy-Dienstkontos in neuen Projekten. Dies ist der Standardwert der Einschränkung.

Aktualisieren Sie die Erzwingungsregeln, um die Richtlinieneinschränkung zu aktualisieren:

Diese Einschränkung betrifft nur Projekte, bei denen die Cloud Build API nach Einführung der Änderung aktiviert wird. Wenn Sie die Richtlinieneinschränkung nicht erzwingen, gilt die Änderung für alle Projekte, die die API aktivieren, wenn diese Konfiguration aktiv ist. Sie können die Verfügbarkeit des Cloud Build-Legacy-Dienstkontos für ein Projekt, in dem das Dienstkonto zuvor verfügbar war, nicht deaktivieren.

Aktuelles Standarddienstkonto für ein Projekt abrufen

Mit der Google Cloud CLI oder der Cloud Build API können Sie ermitteln, welches Dienstkonto Cloud Build standardmäßig für ein Projekt verwendet:

gcloud-CLI

Führen Sie den folgenden Befehl aus, um das Standarddienstkonto für das aktuelle Projekt abzurufen:

gcloud builds get-default-service-account

Cloud Build API

Rufen Sie mit cURL die Cloud Build API auf:

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/defaultServiceAccount

Ersetzen Sie die Platzhalterwerte durch Folgendes: