Modification du compte de service Cloud Build

Cloud Build sélectionne automatiquement le service Cloud Build pour exécuter des compilations en votre nom, à moins que vous ne supprimiez ce comportement. Ce compte de service dispose peut-être d'autorisations inutilement étendues pour votre tel que l'accès à vos dépôts Cloud Source Repositories et à n'importe quel bucket de votre projet

Le comportement par défaut de la manière dont Cloud Build utilise les comptes de service dans les nouvelles projets ont été modifiés sur plusieurs semaines, en mai et juin 2024. Ces améliorent la stratégie de sécurité par défaut de nos clients vers l'avant. Vous pouvez refuser ces modifications en configurant l'organisation contrainte de règle.

Avant ce changement, Cloud Build utilisait compte de service spécifique à Cloud Build par défaut.

Après cette modification, Cloud Build utilise désormais Compte de service Compute Engine par défaut par défaut.

L'impact sur vos projets dépend de votre intégration à un organisation:

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

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

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

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

  • Déclenchement. Vous devez spécifier un compte de service lorsque vous créez ou un déclencheur, sauf si le compte de service par défaut 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: Cloud Build compte de service est appelé ancien service Cloud Build compte de service Google.

Que devez-vous faire ?

Si vous faites partie d'une organisation, celle-ci peut configurer le comportement de tous les projets en configurant une règle d'administration avec la les contraintes choisies.

Votre organisation peut refuser ces modifications en définissant les paramètres suivants : Contraintes booléennes de la règle d'administration:

  • Non appliquée: constraints/cloudbuild.disableCreateDefaultServiceAccount
  • Non appliquée: constraints/cloudbuild.useComputeServiceAccount
  • Appliquée: constraints/cloudbuild.useBuildServiceAccount

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

Nouvelles contraintes liées aux règles d'administration

Cloud Build a introduit une nouvelle règle d'administration booléenne contraintes à configurer:

  • Possibilité d'utiliser l'ancien compte de service Cloud Build
  • Compte de service par défaut pour tous les projets d'une organisation.

Pour modifier les règles d'administration, vous pouvez utiliser la console Google Cloud ou la Google Cloud CLI:

Pour en savoir plus sur les règles d'administration, consultez la Présentation du Service de règles d'administration

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

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

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

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

Cette contrainte ne concerne que les projets qui activent l'API Cloud Build après la le changement appliqué. Si vous décidez de ne pas appliquer 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ù était disponible auparavant. Toutefois, même si le compte de service est disponible, vous pouvez empêcher les utilisateurs de votre organisation de l'utiliser, décrites dans la section suivante.

Comme pour toutes les contraintes et règles d'administration, vous pouvez définir ces règles au niveau au niveau de l'organisation ou du projet.

Configurer le compte de service par défaut pour une organisation

Pour configurer le compte de service par défaut utilisé dans une organisation, Cloud Build introduit deux nouvelles règles booléennes contraintes:

  • constraints/cloudbuild.useBuildServiceAccount: configurez l'utilisation de la classe Ancien compte de service Cloud Build.
  • constraints/cloudbuild.useComputeServiceAccount: configurez l'utilisation de la classe Compte de service Compute Engine par défaut.

Vous pouvez configurer ces stratégies indépendamment les unes des autres, mais utile lorsque les règles d'application sont combinées dans les cas suivants:

  • utiliser le compte de service Compute Engine par défaut pour les deux les compilations envoyées manuellement et les compilations déclenchées. Définissez les paramètres suivants : contraintes dans votre règle d'administration:

    • Non appliquée: constraints/cloudbuild.useBuildServiceAccount
    • Appliquée: constraints/cloudbuild.useComputeServiceAccount
  • utiliser un compte de service spécifié par l'utilisateur pour les requêtes envoyées manuellement ; et les compilations déclenchées. Il s'agit généralement de l'option la plus sûre. Définir les contraintes suivantes dans votre règle d'administration:

    • Non appliquée: constraints/cloudbuild.useBuildServiceAccount
    • Non appliquée: constraints/cloudbuild.useComputeServiceAccount
  • Continuez à utiliser l'ancien compte de service Cloud Build. Si vous utilisez conscient des compromis en termes de sécurité, définissez les contraintes suivantes dans votre règle d'administration:

    • Non appliquée: constraints/cloudbuild.disableCreateDefaultServiceAccount
    • Non appliquée: constraints/cloudbuild.useComputeServiceAccount
    • Appliquée: constraints/cloudbuild.useBuildServiceAccount
  • Continuez à utiliser l'ancien compte de service Cloud Build pour les projets ayant activé l'API Cloud Build avant la modification, et commencer à utiliser la console Compute Engine par défaut pour les nouveaux projets. Assurez-vous que à comprendre les compromis en termes de sécurité, définissez les contraintes suivantes dans votre règle d'administration:

    • Appliquée: constraints/cloudbuild.disableCreateDefaultServiceAccount
    • Appliquée: constraints/cloudbuild.useComputeServiceAccount
    • Appliquée: constraints/cloudbuild.useBuildServiceAccount

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

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

CLI gcloud

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

gcloud builds get-default-service-account

API Cloud Build

Utilisez la commande 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 suivantes: