Modification du compte de service Cloud Build

Cloud Build sélectionne automatiquement le compte de service Cloud Build pour exécuter des compilations en votre nom, sauf si vous remplacez ce comportement. Ce compte de service peut disposer d'autorisations inutilement étendues pour votre cas d'utilisation, telles que l'accès à vos dépôts Cloud Source Repositories et à n'importe quel bucket Cloud Storage de votre projet.

Nous modifions le comportement par défaut de la manière dont Cloud Build utilise les comptes de service dans les nouveaux projets. Nous allons déployer ces modifications région par région sur plusieurs semaines, en mai et juin 2024. À l'avenir, ces changements amélioreront la stratégie de sécurité par défaut de nos clients. Vous pouvez refuser ces modifications en configurant la contrainte de règle d'administration.

L'impact sur vos projets varie selon que vous faites partie ou non d'une organisation. En général, une fois la modification déployée dans la région que vous utilisez, les modifications suivantes s'affichent:

  • Les projets sans organisation. Si vous activez l'API Cloud Build sur vos projets après la modification, vous utiliserez le compte de service Compute Engine par défaut pour les compilations envoyées à l'aide de l'API Cloud Build ou de la Google Cloud CLI. Ces projets ne permettent pas d'utiliser l'ancien compte de service Cloud Build, mais peuvent utiliser un compte de service spécifié par l'utilisateur.

  • Les projets d'une organisation. Si vous activez l'API Cloud Build sur vos projets après la modification, vous utiliserez le compte de service Compute Engine par défaut pour les compilations envoyées à l'aide de l'API Cloud Build ou de la Google Cloud CLI. Vous pouvez utiliser un compte de service spécifié par l'utilisateur ou refuser la modification en activant le compte de service Cloud Build dans votre organisation.

  • Projets existants sans organisation. Si vous avez activé l'API Cloud Build sur vos projets avant la modification, vous conserverez l'ancien comportement en utilisant l'ancien compte de service Cloud Build par défaut pour toutes vos compilations. Vous pouvez continuer à utiliser un compte de service spécifié par l'utilisateur en sélectionnant le compte de service Compute Engine ou en créant le vôtre.

  • Projets existants avec une organisation. Si vous avez activé l'API Cloud Build sur vos projets avant la modification, vous conserverez l'ancien comportement en utilisant l'ancien compte de service Cloud Build par défaut. Vous pouvez également continuer à utiliser un compte de service spécifié par l'utilisateur.

  • Déclenchement. Vous devez spécifier un compte de service lorsque vous créez ou mettez à jour un déclencheur, sauf si le compte de service par défaut de votre projet est l'ancien compte de service Cloud Build.

  • API. L'activation de l'API Cloud Build active également l'API Identity and Access Management.

  • Nom du compte de service Cloud Build: le compte de service Cloud Build est appelé ancien compte de service Cloud Build.

Que devez-vous faire ?

Si vous faites partie d'une organisation, celle-ci peut refuser cette modification en définissant la contrainte booléenne suivante:

  • Non appliquée: constraints/cloudbuild.disableCreateDefaultServiceAccount

Si vous ne pouvez pas ou ne souhaitez pas ajuster la règle d'administration et que vous activez l'API Cloud Build après le déploiement de la modification, vérifiez que le compte de service Compute Engine par défaut ou le compte de service créé par l'utilisateur dispose des autorisations suffisantes pour votre build. En particulier, l'utilisateur qui envoie la compilation doit disposer de l'autorisation iam.serviceAccounts.actAs sur le compte de service.

Configurer la disponibilité de l'ancien compte de service Cloud Build

Pour vous aider à configurer la disponibilité de l'ancien compte de service Cloud Build lorsque vous activez l'API Cloud Build, Cloud Build introduit la contrainte de règle booléenne suivante:

  • Non appliquée: constraints/cloudbuild.disableCreateDefaultServiceAccount. Autorise l'utilisation de l'ancien service Cloud Build par défaut dans les nouveaux projets.

  • Appliquée: constraints/cloudbuild.disableCreateDefaultServiceAccount. Désactive l'utilisation de l'ancien compte de service Cloud Build dans les nouveaux projets. Il s'agit de la valeur par défaut de la contrainte.

Pour mettre à jour la contrainte de règle, mettez à jour les règles d'application:

Cette contrainte n'affecte que les projets qui activent l'API Cloud Build après le déploiement de la modification. Si vous décidez de ne pas appliquer la contrainte de règle, la modification est définitive pour tous les projets qui activent l'API lorsque cette configuration est active. Vous ne pouvez pas désactiver la disponibilité de l'ancien compte de service Cloud Build sur un projet où il était auparavant disponible.

Obtenir le compte de service par défaut actuel pour un projet

Pour déterminer le compte de service utilisé par défaut par Cloud Build pour un projet, vous pouvez vous servir de Google Cloud CLI ou de l'API Cloud Build:

gcloud CLI

Exécutez la commande suivante pour obtenir le compte de service par défaut du projet en cours:

gcloud builds get-default-service-account

API Cloud Build

Utilisez cURL pour appeler l'API Cloud Build:

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

Remplacez les valeurs d'espace réservé par les éléments suivants: