Ce document explique comment configurer votre compte de service Cloud Build pour emprunter l'identité de comptes de service pour Runtime, Compute Engine ou App Engine afin de pouvoir déployer des images sur des services gérés.
Présentation
Lorsqu'une image est déployée sur des services gérés spécifiques, elle s'exécute avec l'identité du compte de service pour ce service géré. Comme Cloud Build peut déployer automatiquement de nouvelles instances ou versions, le compte de service Cloud Build spécifié ou le compte de service Cloud Build par défaut doivent pouvoir emprunter l'identité du compte de service de votre service géré. Cette exigence s'applique lorsque vous déployez des applications sur les services gérés suivants :
Service géré | Compte de service |
---|---|
App Engine | Compte de service App Engine |
Cloud Run Functions | Compte de service d'exécution |
Cloud Run | Identité du service |
Compute Engine | Compte de service Compute Engine |
Configurer l'usurpation d'identité d'un compte de service
Pour configurer votre compte de service Cloud Build afin qu'il emprunte l'identité d'un autre compte de service, procédez comme suit :
Console
Accédez à la page Autorisations de settings Cloud Build.
Sélectionnez votre compte de service Cloud Build.
Activez le rôle IAM requis pour votre service géré :
Service géré Rôle requis App Engine Administrateur App Engine ( roles/appengine.appAdmin
)Cloud Run Functions Développeur Cloud Functions ( roles/cloudfunctions.developer
)Cloud Run Administrateur Cloud Run ( roles/run.admin
)Compute Engine Administrateur d'instances Compute v1 ( roles/compute.instanceAdmin.v1
)Cloud Build affiche le panneau Attribuer le rôle Utilisateur du compte de service.
Choisissez un compte de service à emprunter. Par exemple, si vous prévoyez de déployer sur Compute Engine et que vous avez activé le rôle Administrateur d'instances Compute Engine v1, vous devez choisir le compte de service Compute Engine que vous souhaitez que votre compte de service Cloud Build emprunte.
Cliquez sur Accorder l'autorisation.
gcloud CLI
Dans la Google Cloud CLI, saisissez la commande suivante :
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT_TO_IMPERSONATE \
--member="CLOUD_BUILD_SERVICE_ACCOUNT" \
--role="roles/iam.serviceAccountUser"
Où :
- SERVICE_ACCOUNT_TO_IMPERSONATE correspond au compte de service dont vous souhaitez emprunter l'identité.
- CLOUD_BUILD_SERVICE_ACCOUNT correspond à votre compte de service Cloud Build.
Cloud Build attribue le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser
) à votre compte de service Cloud Build pour le compte de service dont vous souhaitez emprunter l'identité.
Le rôle Utilisateur du compte de service permet à un compte principal d'associer un compte de service à une ressource, ce qui permet à votre compte de service Cloud Build d'emprunter l'identité du compte de service géré de votre choix. Pour en savoir plus, consultez les pages Rôle "Utilisateur de compte de service" et Associer des comptes de service à des ressources dans la documentation IAM.