Comptes de service Cloud Deploy

Ce document décrit les comptes de service utilisés pour exécuter Cloud Deploy et d'appeler Cloud Deploy pour exécuter diverses opérations.

Cloud Deploy utilise les comptes de service suivants:

  • L'agent de service Cloud Deploy

    Cloud Deploy utilise ce compte de service pour interagir avec votre projet. Vous ne pouvez pas remplacer cet agent de service par un autre service mais vous pouvez en modifier les autorisations, par exemple lorsque vous utilisez des ressources externes au projet (telles qu'un compte de service ou pool de nœuds de calcul Cloud Build).

  • Le compte de service d'exécution Cloud Deploy

    Cloud Deploy utilise ce compte de service pour exécuter le rendu et des opérations de déploiement dans Cloud Build. Ce compte a besoin d'autorisations pour lire et écrire dans le bucket Cloud Storage, et pour accéder aux cibles de déploiement.

    Le compte de service par défaut pour l'exécution est Compte de service Compute Engine par défaut. Vous pouvez spécifier un autre compte de service configuration cible.

  • Le compte de service d'automatisation Cloud Deploy

    Il s'agit du compte de service utilisé par Cloud Deploy pour effectuer automatisations. Il peut s'agir de l'exécution par défaut un compte de service ou un autre compte de service. Voir Le compte de service Automation Pour en savoir plus sur ce compte de service, consultez

Consultez la page Créer et gérer des comptes de service. pour savoir comment modifier les autorisations d'un compte de service et créer un autre compte de service.

Agent de service Cloud Deploy

L'agent de service Cloud Deploy est un compte de service que Cloud Deploy pour interagir avec d'autres services Google Cloud Cloud Deploy sur laquelle repose. Ces services incluent Cloud Build, Pub/Sub et Cloud Audit Logs.

Le nom de ce compte de service suit le modèle suivant:

service-<project-number>@gcp-sa-clouddeploy.iam.gserviceaccount.com

Vous ne pouvez pas remplacer l'agent de service par un autre compte de service. Mais vous des autorisations, par exemple pour autoriser l'accès à un pool privé dans un autre projet, configuré dans le cadre environnement d'exécution.

Compte de service d'exécution Cloud Deploy

Par défaut, Cloud Deploy s'exécute à l'aide de l'instance Compute Engine par défaut compte de service Google. Ce compte de service dispose disposer d'autorisations suffisantes dans le projet qui le contient pour afficher les fichiers manifestes ; déployer sur vos cibles.

Le nom de ce compte de service suit le modèle suivant:

[project-number]-compute@developer.gserviceaccount.com

Ce compte de service par défaut dispose d'autorisations étendues. La bonne pratique consiste à modifiez votre environnement d'exécution pour que Cloud Deploy s'exécute en tant que compte de service différent. Vous pouvez modifier le compte de service d'exécution pour chaque target utilisant la propriété executionConfigs.privatePool.serviceAccount ou executionConfigs.defaultPool.serviceAccount dans le définition de la cible.

Tout compte de service que vous définissez pour ces propriétés doit disposer du rôle Rôle roles/clouddeploy.jobRunner dans le projet Cloud Deploy. Si la valeur par défaut ne dispose pas de cette autorisation, exécutez la commande :

 gcloud projects add-iam-policy-binding PROJECT_ID \
     --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
     --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
     --role="roles/clouddeploy.jobRunner"

Quels comptes de service créer

Si vous choisissez de ne pas utiliser le compte de service d'exécution par défaut pour l'affichage et vous devez créer un ou plusieurs autres comptes de service à utiliser. Il s'agit de comptes de service utilisés par Cloud Deploy configurées dans la configuration cible.

Vous pouvez en créer plusieurs si vous souhaitez disposer d'un compte de service spécifique ou les comptes de déploiement sur des cibles restreintes, comme une cible de production.

Une approche possible consiste à utiliser des comptes de service distincts par pipeline de livraison. Chacun de ces comptes de service comporte des rôles disposant d'autorisations suffisantes pour pour le rendu et le déploiement.

Pour les déploiements sur Google Kubernetes Engine, vous pouvez restreindre le compte de service à un seul espace de noms.

Utiliser des comptes de service d'un autre projet

Pour votre environnement d'exécution, vous pouvez spécifiez un compte de service qui se trouve dans un projet différent de celui dans lequel vous créez votre cible:

  1. Sur le projet auquel appartient le compte de service, activez l'association de sécurité multiprojets des règles d'administration.

  2. Accorder à l'agent de service Cloud Deploy (service-<project-number>@gcp-sa-clouddeploy.iam.gserviceaccount.com) le Autorisation iam.serviceAccounts.actAs pour votre compte de service

    Dans ce cas, project-number est le projet dans lequel vous avez créé votre cible.

    Vous pouvez également accorder le rôle roles/iam.serviceAccountUser qui inclut cette autorisation, dans le projet de et sur chaque service dans un projet différent de celui où Cloud Deploy est en cours d'exécution.

  3. Accorder à l'agent de service Cloud Build (service-<project-number>@gcp-sa-cloudbuild.iam.gserviceaccount.com) le Rôle roles/iam.serviceAccountTokenCreator.

    Dans ce cas, project-number correspond au projet dans lequel vous avez créé votre cible, et ce rôle est attribué dans le service le projet associé à ce compte.

    Vous devez attribuer ce rôle à chaque compte de service configuré dans le d'exécution si ce compte de service se trouve dans un projet différent celui dans lequel Cloud Deploy est exécuté.

  4. Accordez à l'appelant de gcloud deploy releases create et de gcloud deploy rollouts create l'autorisation iam.serviceAccounts.actAs sur le compte de service : ou roles/iam.serviceAccountUser rôle de ressource.

Autorisations requises

  • Le compte de service utilisé pour les configurations de rendu doit disposer les autorisations d'accès au bucket Cloud Storage dans lequel les ressources sont stockées (pipelines de livraison, versions, déploiements).

    Le rôle roles/clouddeploy.jobRunner inclut toutes les autorisations associées au rendu Compte de service (privatePool ou defaultPool) besoins.

  • Le compte de service utilisé pour le déploiement doit disposer des autorisations suffisantes pour déployer sur le cluster cible, et l'autorisation d'accéder à bucket Cloud Storage.

  • Compte de service qui appelle Cloud Deploy pour créer une version doit disposer du rôle clouddeploy.releaser. Il doit également comporter l'iam.serviceAccount.actAs autorisation d'utiliser le compte de service qui affiche les fichiers manifestes (par exemple, via le roles/iam.serviceAccountUser rôle).

  • Compte de service qui appelle Cloud Deploy pour promouvoir une version ou créez un rollout doivent disposer de l'autorisation iam.serviceAccount.actAs pour utilisez le compte de service qui se déploie sur des cibles (par exemple, via l'roles/iam.serviceAccountUser rôle).

  • Le compte de service configuré pour une automatisation doit être autorisé à exécuter les opérations en cours d'automatisation. En savoir plus

Le compte de service Automation

Vous pouvez automatiser certaines actions dans une version. Cloud Deploy les exécute à l'aide du compte de service Automation, qui peut être un compte de service d'exécution, autre que celui par défaut, utilisé pour l'exécution un compte de service ou un autre compte de service.

En savoir plus sur le compte de service Automation.

Étape suivante