Rôles et autorisations IAM

Cette page décrit les autorisations, les rôles et les comptes de service Google Cloud Deploy.

L'accès dans Google Cloud Deploy est contrôlé à l'aide de la gestion de l'authentification et des accès (IAM). IAM vous permet de créer et de gérer les autorisations pour les ressources Google Cloud. Google 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 Google Cloud spécifiques 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 du contrôle des accès, consultez la page Utiliser IAM pour restreindre l'accès à Google Cloud Deploy.

Comptes de service dans Google Cloud Deploy

Par défaut, Google Cloud Deploy s'exécute à l'aide du compte de service Compute Engine par défaut. Ce compte de service dispose des autorisations suffisantes pour afficher les fichiers manifestes et les déployer sur vos cibles.

En savoir plus sur la manière dont Google Cloud Deploy utilise des comptes de service.

Rôles de déploiement Google Cloud prédéfinis

Avec IAM, toutes les méthodes d'API de l'API Google 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.

Le tableau suivant répertorie les rôles IAM de Google Cloud Deploy et les autorisations associées:

Rôle Description Autorisations
roles/clouddeploy.viewer Peut consulter Google Cloud Deploy

.

clouddeploy.*.get

clouddeploy.*.list

roles/clouddeploy.admin Contrôle complet des ressources Google Cloud Deploy. clouddeploy.*
roles/clouddeploy.developer Peut créer, récupérer, mettre à jour et

supprimer des ressources du pipeline de diffusion Google Cloud Deploy.

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.update

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.releases.*

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.operations.*

roles/clouddeploy.operator Peut créer, récupérer, mettre à jour et supprimer

des ressources cibles Google Cloud Deploy.

Peut créer, récupérer et supprimer des ressources de version et de déploiement.

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.update

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.releases.*

clouddeploy.targets.*

clouddeploy.rollouts.list

clouddeploy.rollouts.get

clouddeploy.rollouts.create

clouddeploy.operations.*

roles/clouddeploy.approver Peut consulter et approuver les ressources de déploiement

Google Cloud Deploy uniquement.

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.rollouts.approve

clouddeploy.operations.*

roles/clouddeploy.jobRunner Permet d'exécuter Google Cloud Deploy sans

autorisation de déployer sur une cible.

logging.logEntries.create

storage.objects.create

storage.objects.list

storage.objects.get

roles/clouddeploy.releaser Peut créer et récupérer des versions et des déploiements clouddeploy.deliveryPipelines.get

clouddeploy.targets.get

clouddeploy.releases.list

clouddeploy.releases.get

clouddeploy.releases.create

clouddeploy.rollouts.list

clouddeploy.rollouts.get

clouddeploy.rollouts.create

Outre les rôles prédéfinis Google Cloud Deploy, les rôles standard Lecteur, Éditeur et Propriétaire incluent également les autorisations associées à Google 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
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.setIamPolicy() clouddeploy.deliveryPipelines.setIamPolicy Permet de définir la stratégie IAM d'une ressource de pipeline de diffusion.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Met à jour une ressource de pipeline de diffusion existante.
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 Récupère 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.create() clouddeploy.releases.create Crée une ressource de version. L'appelant nécessite également l'autorisation iam.serviceAccounts.actAs sur le compte de service utilisé pour afficher le fichier 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.
releases.promote() clouddeploy.rollouts.create Convertit la version en cible suivante.
rollouts.approve() clouddeploy.rollouts.approve Approuve ou refuse un déploiement avec l'état d'approbation required.
rollouts.create() clouddeploy.rollouts.create Crée une ressource de déploiement. L'appelant doit également disposer de l'autorisation iam.serviceAccounts.actAs sur le projet ou le compte de service utilisé pour déployer.
rollouts.get() clouddeploy.rollouts.get Récupère les détails du déploiement individuel.
rollouts.list() clouddeploy.rollouts.list Répertorie les déploiements et les métadonnées.
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 Récupère la stratégie IAM pour 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 Google Cloud Deploy

Vous pouvez sécuriser vos ressources Google Cloud Deploy à l'aide de Cloud IAM comme suit:

  • API méta IAM

    Utilisez setIamPolicy sur les ressources Google Cloud Deploy pour limiter les actions sur ces ressources.

  • IAM conditionnel

    De manière automatisée, appliquez les règles d'accès, y compris les conditions dans lesquelles vous souhaitez accorder ou refuser l'accès.

Vous pouvez utiliser ces règles et conditions pour restreindre les actions suivantes sur vos ressources Google Cloud Deploy:

  • Créer un pipeline ou une cible de diffusion

    Vous pouvez accorder cet accès à des utilisateurs ou à des groupes spécifiques.

  • Mettre à jour ou supprimer un pipeline de distribution 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 dans une période spécifiée.

Étape suivante