Ä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 breit gefasst sind, z. B. Zugriff auf Ihre Cloud Source Repositories und alle Cloud Storage-Buckets in Ihrem Projekt

Wir ändern das Standardverhalten für die Verwendung von Dienstkonten in neuen Projekten durch Cloud Build. Wir führen diese Änderungen über mehrere Wochen im Mai und Juni 2024 nach Region ein. Diese Änderungen werden den standardmäßigen Sicherheitsstatus unserer Kunden in Zukunft verbessern. Sie können diese Änderungen deaktivieren, indem Sie die Einschränkung der Organisationsrichtlinie konfigurieren.

Wie Ihre Projekte betroffen sind, hängt davon ab, ob Sie Teil einer Organisation sind. Im Allgemeinen werden Sie nach der Einführung der Änderung in der von Ihnen verwendeten Region folgende Änderungen sehen:

  • Projekte ohne Organisation. Wenn Sie die Cloud Build API nach der Änderung in Ihren Projekten aktivieren, verwenden Sie standardmäßig das Compute Engine-Dienstkonto für Builds, die über die Cloud Build API oder die Google Cloud CLI eingereicht wurden. Für diese Projekte besteht nicht die Möglichkeit, das Cloud Build-Legacy-Dienstkonto zu verwenden. Sie können jedoch ein benutzerdefiniertes Dienstkonto verwenden.

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

  • Bestehende Projekte ohne Organisation: Wenn Sie die Cloud Build API vor der Änderung in Ihren Projekten aktiviert haben, wird das alte Verhalten beibehalten und Sie verwenden standardmäßig das Legacy-Cloud Build-Dienstkonto für alle Ihre Builds. Sie können weiterhin ein benutzerdefiniertes Dienstkonto verwenden, indem Sie entweder das Compute Engine-Dienstkonto auswählen oder ein eigenes erstellen.

  • Bestehende Projekte in einer Organisation. Wenn Sie die Cloud Build API vor der Änderung in Ihren Projekten aktiviert haben, wird das alte Verhalten beibehalten und standardmäßig das Cloud Build-Legacy-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. Durch das Aktivieren der Cloud Build API 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 diese Änderung deaktivieren. Dazu legen Sie die folgende boolesche Einschränkung für Organisationsrichtlinien fest:

  • Nicht erzwungen: constraints/cloudbuild.disableCreateDefaultServiceAccount

Wenn Sie die Organisationsrichtlinie nicht anpassen können oder möchten und die Cloud Build API nach der Einführung der Änderung aktivieren, prüfen Sie, ob entweder das Compute Engine-Standarddienstkonto oder Ihr vom Nutzer erstelltes 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 Cloud Build-Legacy-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 standardmäßige Verwendung des Cloud Build-Legacy-Dienstes in neuen Projekten.

  • Erzwungen: constraints/cloudbuild.disableCreateDefaultServiceAccount. Deaktiviert die Verwendung des Legacy-Cloud Build-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 der 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. Die Verfügbarkeit des Cloud Build-Legacy-Dienstkontos kann für ein Projekt, in dem das Dienstkonto zuvor verfügbar war, nicht deaktiviert werden.

Aktuelles Standarddienstkonto für ein Projekt abrufen

Um zu ermitteln, welches Dienstkonto Cloud Build als Standard für ein Projekt verwendet, können Sie die Google Cloud CLI oder die Cloud Build API verwenden:

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

Verwenden Sie cURL, um die Cloud Build API aufzurufen:

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: