Cette page décrit les comptes de service, les rôles et les autorisations Cloud Deploy.
L'accès à Cloud Deploy est contrôlé à l'aide de Identity and Access Management (IAM). IAM vous permet de créer et de gérer les autorisations pour les Google Cloud ressources. Cloud Deploy fournit un ensemble spécifique de rôles IAM prédéfinis dans lesquels chaque rôle contient un ensemble d'autorisations. Vous pouvez utiliser ces rôles pour accorder un accès plus précis à des ressources spécifiques Google Cloud et empêcher tout accès indésirable à d'autres ressources. IAM vous permet d'adopter le principe de sécurité du moindre privilège, afin de n'accorder que l'accès nécessaire à vos ressources.
Pour en savoir plus sur les fonctionnalités de sécurité avancées de contrôle des accès, consultez la section Utiliser IAM pour restreindre l'accès à Cloud Deploy.
Comptes de service dans Cloud Deploy
Par défaut, Cloud Deploy s'exécute à l'aide du compte de service Compute Engine par défaut. Pour en savoir plus sur la configuration de ce compte de service pour une utilisation avec Cloud Deploy ou sur le choix d'un autre compte, consultez la documentation Compte de service d'exécution Cloud Deploy.
En savoir plus sur la façon dont Cloud Deploy utilise les comptes de service.
Rôles Cloud Deploy prédéfinis
Avec IAM, toutes les méthodes d'API de l'API Cloud Deploy nécessitent que l'identité effectuant la requête API dispose des autorisations appropriées pour utiliser la ressource. Pour accorder des autorisations, vous devez définir des stratégies qui attribuent des rôles à un compte principal (utilisateur, groupe ou compte de service) du projet. Vous pouvez attribuer plusieurs rôles à une entité principale sur la même ressource.
La documentation IAM inclut une référence interrogeable de tous les rôles prédéfinis.
Le tableau suivant répertorie les rôles IAM Cloud Deploy et les autorisations associées :
| Role | Permissions |
|---|---|
Cloud Deploy Admin( Full control of Cloud Deploy resources. |
|
Cloud Deploy Editor( Editor role for Cloud Deploy |
|
Cloud Deploy Viewer( Can view Cloud Deploy resources. |
|
Cloud Deploy Approver( Permission to approve or reject rollouts. |
|
Cloud Deploy Custom Target Type Admin( Permission to manage CustomTargetType resources |
|
Cloud Deploy Developer( Permission to manage deployment configuration without permission to access operational resources, such as targets. |
|
Cloud Deploy Runner( Permission to execute Cloud Deploy work without permission to deliver to a target. |
|
Cloud Deploy Operator( Permission to manage deployment configuration. |
|
Cloud Deploy Policy Admin( Permission to manage Deploy Policies. |
|
Cloud Deploy Policy Overrider( Permission to override Deploy Policies. |
|
Cloud Deploy Releaser( Permission to create Cloud Deploy releases and rollouts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Cloud Deploy Service Agent( Gives Cloud Deploy Service Account access to managed resources. |
|
Outre les rôles Cloud Deploy prédéfinis, les rôles de base Lecteur, Éditeur et Propriétaire incluent également les autorisations associées à Cloud Deploy. Cependant, nous vous recommandons d'attribuer des rôles prédéfinis lorsque cela est possible afin de respecter le principe de sécurité du moindre privilège.
Autorisations
Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode :
| Méthode API | Autorisation requise | Description |
|---|---|---|
automations.create() |
clouddeploy.automations.create |
Crée une ressource d'automatisation. |
automations.delete() |
clouddeploy.automations.delete |
Supprime une ressource d'automatisation existante. |
automations.get() |
clouddeploy.automations.get |
Récupère les détails d'une ressource d'automatisation individuelle. |
automations.list() |
clouddeploy.automations.list |
Répertorie les ressources d'automatisation et leurs métadonnées. |
automations.update() |
clouddeploy.automations.update |
Met à jour une ressource d'automatisation existante. |
automationRuns.cancel() |
clouddeploy.automationRuns.cancel |
Annule une automatisation en cours d'exécution. |
automationRuns.get() |
clouddeploy.automationRuns.get |
Récupère les détails d'une exécution d'automatisation individuelle. |
automationRuns.list() |
clouddeploy.automationRuns.list |
Répertorie les exécutions d'automatisation et leurs métadonnées. |
customTargetTypes.create() |
clouddeploy.customTargetTypes.create |
Crée une ressource de type de cible personnalisé. |
customTargetTypes.delete() |
clouddeploy.customTargetTypes.delete |
Supprime une ressource de type de cible personnalisé. |
customTargetTypes.get() |
clouddeploy.customTargetTypes.get |
Récupère les détails d'un type de cible personnalisé. |
customTargetTypes.getIamPolicy() |
clouddeploy.customTargetTypes.getIamPolicy |
Obtient la stratégie IAM associée à une ressource de type de cible personnalisé. |
customTargetTypes.list() |
clouddeploy.customTargetTypes.list |
Répertorie les types de cibles personnalisés disponibles et leurs métadonnées. |
customTargetTypes.patch() |
clouddeploy.customTargetTypes.patch |
Met à jour un type de cible personnalisé existant. |
customTargetTypes.setIamPolicy() |
clouddeploy.customTargetTypes.setIamPolicy |
Définit la stratégie IAM pour une ressource de type de cible personnalisé. |
deliveryPipelines.create() |
clouddeploy.deliveryPipelines.create |
Crée une ressource de pipeline de diffusion. |
deliveryPipelines.delete() |
clouddeploy.deliveryPipelines.delete |
Supprime une ressource de pipeline de diffusion existante. |
deliveryPipelines.get() |
clouddeploy.deliveryPipelines.get |
Récupère les informations sur un pipeline de diffusion individuel. |
deliveryPipelines.getIamPolicy() |
clouddeploy.deliveryPipelines.getIamPolicy |
Obtient la stratégie IAM associée à une ressource de pipeline de diffusion. |
deliveryPipelines.list() |
clouddeploy.deliveryPipelines.list |
Répertorie les pipelines de diffusion et leurs métadonnées. |
deliveryPipelines.rollbackTarget() |
clouddeploy.rollouts.rollback |
Effectue un rollback sur une cible. |
deliveryPipelines.setIamPolicy() |
clouddeploy.deliveryPipelines.setIamPolicy |
Définit la stratégie IAM pour une ressource de pipeline de diffusion. |
deliveryPipelines.update() |
clouddeploy.deliveryPipelines.update |
Met à jour une ressource de pipeline de diffusion existante. |
deployPolicies.create() |
clouddeploy.deployPolicies.create |
Crée une ressource de stratégie de déploiement. |
deployPolicies.delete() |
clouddeploy.deployPolicies.delete |
Supprime une ressource de stratégie de déploiement. |
deployPolicies.get() |
clouddeploy.deployPolicies.get |
Récupère les détails d'une ressource de stratégie de déploiement. |
deployPolicies.list() |
clouddeploy.deployPolicies.list |
Répertorie les stratégies de déploiement disponibles et leurs métadonnées. |
jobRuns.get() |
clouddeploy.jobRuns.get |
Récupère une ressource JobRuns. |
jobRuns.list() |
clouddeploy.jobRuns.list |
Répertorie les ressources JobRuns et leurs métadonnées. |
jobRuns.terminate() |
clouddeploy.jobRuns.terminate |
Arrête une exécution de job en cours. |
operations.cancel() |
clouddeploy.operations.cancel |
Annule une opération de longue durée. |
operation.delete() |
clouddeploy.operations.delete |
Supprime une opération de longue durée. |
operations.get() |
clouddeploy.operations.get |
Obtient une opération de longue durée spécifique (par exemple, pour renvoyer l'état de la création d'une version). |
operations.list() |
clouddeploy.operations.list |
Répertorie les opérations de longue durée. |
releases.abandon() |
clouddeploy.releases.abandon |
Abandonne une version et empêche tout autre déploiement sur cette version. |
releases.create() |
clouddeploy.releases.create |
Crée une ressource de version. L'appelant doit également disposer de l'autorisation iam.serviceAccounts.actAs sur le compte de service utilisé pour afficher le manifeste. |
releases.get() |
clouddeploy.releases.get |
Récupère les détails de la version individuelle. |
releases.list() |
clouddeploy.releases.list |
Répertorie les versions et les métadonnées. |
rollouts.advance() |
clouddeploy.rollouts.advance |
Avance un déploiement à la phase suivante. |
rollouts.approve() |
clouddeploy.rollouts.approve |
Approuve ou refuse un déploiement avec l'état d'approbation required. |
rollouts.cancel() |
clouddeploy.rollouts.cancel |
Annule un déploiement. |
rollouts.create() |
clouddeploy.rollouts.create |
Crée une ressource de déploiement ou promeut une version. L'appelant doit également disposer de l'autorisation iam.serviceAccounts.actAs sur le projet ou le compte de service utilisé pour le déploiement. |
rollouts.get() |
clouddeploy.rollouts.get |
Récupère les détails du déploiement individuel. |
rollouts.ignoreJob() |
clouddeploy.rollouts.ignoreJob |
Ignore un job en échec. |
rollouts.list() |
clouddeploy.rollouts.list |
Répertorie les déploiements et les métadonnées. |
rollouts.retryJob() |
clouddeploy.rollouts.retryJob |
Relance un job en échec. |
rollouts.advance(), rollouts.approve(), rollouts.cancel(), rollouts.create(), rollouts.ignoreJob(), rollouts.retryJob(), deliveryPipelines.rollbackTarget(), jobRuns.terminate() |
clouddeploy.deployPolicies.override |
Remplace une ressource de stratégie de déploiement. |
deployPolicies.update() |
clouddeploy.deployPolicies.update |
Met à jour une ressource de stratégie de déploiement existante. |
targets.create() |
clouddeploy.targets.create |
Crée une ressource cible. |
targets.delete() |
clouddeploy.targets.delete |
Supprime une ressource cible existante. |
targets.get() |
clouddeploy.targets.get |
Récupère les détails d'une cible individuelle. |
targets.getIamPolicy() |
clouddeploy.targets.getIamPolicy |
Obtient la stratégie IAM associée à une ressource cible. |
targets.list() |
clouddeploy.targets.list |
Répertorie les cibles et leurs métadonnées. |
targets.setIamPolicy() |
clouddeploy.targets.setIamPolicy |
Définit la stratégie IAM pour une ressource cible. |
targets.update() |
clouddeploy.targets.update |
Met à jour une ressource cible existante. |
Utiliser IAM pour limiter les actions sur les ressources Cloud Deploy
Vous pouvez sécuriser vos ressources Cloud Deploy à l'aide d'IAM de différentes manières :
API méta IAM
Utilisez
setIamPolicysur les ressources Cloud Deploy pour limiter les actions sur ces ressources.IAM conditionnel
Appliquez par programmation des stratégies d'accès, y compris les conditions dans lesquelles accorder ou refuser l'accès.
Vous pouvez utiliser ces stratégies et conditions pour limiter les actions suivantes sur vos ressources Cloud Deploy :
Créer un pipeline de diffusion ou une cible
Vous pouvez accorder cet accès à des utilisateurs ou des groupes spécifiques.
Mettre à jour ou supprimer un pipeline de diffusion spécifique
Vous pouvez accorder cet accès à des utilisateurs ou des groupes spécifiques.
Créer une version pour un pipeline de diffusion spécifique
Vous pouvez accorder cet accès à des utilisateurs ou des groupes spécifiques.
Mettre à jour ou supprimer une cible spécifique
Vous pouvez accorder cet accès à des utilisateurs ou des groupes spécifiques.
Créer ou approuver un déploiement, ou promouvoir une version
Vous pouvez accorder cet accès à des utilisateurs ou des groupes spécifiques pour une cible ou un pipeline de diffusion spécifique.
Vous pouvez également définir une condition qui limite cet accès à une période spécifiée.
Étape suivante
- Apprenez-en davantage sur IAM
- En savoir plus sur l'utilisation des conditions dans IAM
- En savoir plus sur les comptes de service Cloud Deploy.