Cette page explique comment créer et gérer un rôle personnalisé.
Avant de commencer
- Consultez la page Comprendre les rôles personnalisés IAM qui fournit des informations sur les autorisations nécessaires pour créer des rôles personnalisés et sur les bonnes pratiques.
- Si vous faites appel à l'utilitaire de ligne de commande
gcloud
, veillez à utiliser la version 188.0.0 ou une version ultérieure. Pour mettre à jourgcloud
vers la version 188.0.0, exécutez la commande suivante :gcloud components update --version 188.0.0
Afficher les autorisations disponibles pour une ressource
Avant de créer un rôle personnalisé, vous souhaiterez peut-être savoir quelles autorisations peuvent être appliquées à une ressource. Vous pouvez obtenir toutes les autorisations pouvant être appliquées à une ressource, ainsi qu'à celles situées au-dessous dans la hiérarchie, à l'aide de l'outil de ligne de commande gcloud
, de Google Cloud Console ou de l'API Cloud IAM. Par exemple, vous pouvez obtenir toutes les autorisations que vous pouvez appliquer à une organisation et aux projets de cette organisation.
Console
Dans Cloud Console, accédez à la page Rôles.
Sélectionnez votre projet dans le menu déroulant en haut de la page.
Cochez la case correspondant au rôle d'administrateur d'une ressource pour afficher toutes les autorisations que vous pouvez appliquer à cette dernière. Par exemple, lorsque vous sélectionnez le rôle Administrateur d'instances Compute, le panneau de droite affiche toutes les autorisations que vous pouvez appliquer à une instance Compute Engine.
gcloud
Exécutez la commande gcloud iam list-testable-permissions
pour obtenir la liste des autorisations pouvant être appliquées à une ressource cible. Les autorisations affichées sont des autorisations pouvant être utilisées pour créer un rôle personnalisé sur cette ressource et sur toute ressource située au-dessous dans la hiérarchie.
L'exemple suivant montre comment obtenir la liste des autorisations pouvant être testées pour une ressource de projet :
gcloud iam list-testable-permissions project-id
project-id
est l'ID du projet sous la forme d'un nom de ressource complet : //cloudresourcemanager.googleapis.com/projects/project-id
, par exemple //cloudresourcemanager.googleapis.com/projects/my-project-id
.
La commande list-testable-permissions
peut afficher des centaines de résultats. Pour limiter les résultats, vous pouvez également spécifier une expression de filtre.
Un extrait de résultats possibles est présenté ci-dessous à titre d'exemple :
---
name: appengine.applications.create
stage: GA
---
customRolesSupportLevel: TESTING
name: appengine.applications.disable
stage: GA
---
name: appengine.applications.get
stage: GA
---
customRolesSupportLevel: NOT_SUPPORTED
name: appengine.applications.list
onlyInPredefinedRoles: true
stage: GA
---
name: appengine.applications.update
stage: GA
---
name: appengine.instances.delete
stage: GA
---
name: appengine.instances.get
stage: GA
---
Notez que chaque autorisation indique si elle est compatible avec un rôle personnalisé. Pour obtenir la liste complète des autorisations compatibles et non compatibles, consultez la page Niveaux de compatibilité des autorisations dans les rôles personnalisés.
REST
La méthode permissions.queryTestablePermissions
répertorie toutes les autorisations que vous pouvez appliquer à une ressource.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
full-resource-name
: URI composé du nom du service et du chemin d'accès à la ressource. Pour obtenir des exemples, consultez la page Noms de ressources complets.page-size
: facultatif. Nombre d'autorisations à inclure dans la réponse. La valeur par défaut est 100 et la valeur maximale 1 000. Si le nombre d'autorisations est supérieur à la taille de la page, la réponse contient un jeton de pagination qui vous permet de récupérer la page de résultats suivante.next-page-token
: facultatif. Jeton de pagination renvoyé dans une réponse précédente de cette méthode. Si spécifié, la liste des autorisations pouvant être appliquées commence à la fin de la réponse précédente.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/permissions:queryTestablePermissions
Corps JSON de la requête :
{ "fullResourceName": "full-resource-name" "pageSize": page-size, "pageToken": "next-page-token" }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "permissions": [ { "name": "iam.serviceAccountKeys.create", "stage": "GA" }, { "name": "iam.serviceAccountKeys.delete", "stage": "GA" }, { "name": "iam.serviceAccountKeys.get", "stage": "GA" } ], "nextPageToken": "CgoHBajEfjUDQyABEPaIv5vIiMDTVhgDIhtpYW0uc2VydmljZUFjY291bnRLZXlzLmxpc3Q" }
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Go.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Python.
Obtenir les métadonnées du rôle
Avant de créer un rôle personnalisé, vous souhaiterez peut-être obtenir les métadonnées des rôles prédéfinis et personnalisés. Les métadonnées de rôle incluent l'ID de rôle et les autorisations contenues dans le rôle. Vous pouvez afficher les métadonnées à l'aide de Cloud Console ou de l'API Cloud IAM.
Pour afficher les métadonnées de rôle, utilisez l'une des méthodes ci-dessous :
Console
Dans Cloud Console, accédez à la page Rôles.
Sélectionnez votre organisation ou votre projet dans la liste déroulante en haut de la page.
Cochez la case d'un ou plusieurs rôles pour afficher les autorisations de rôle. Le panneau de droite affiche les autorisations incluses dans les rôles, le cas échéant.
Les icônes dans la colonne Type indiquent s'il s'agit d'un rôle personnalisé
ou d'un rôle prédéfini
Si vous souhaitez rechercher tous les rôles qui incluent une autorisation spécifique, saisissez le nom de l'autorisation dans la zone Filtre en haut de la liste des rôles.
gcloud
Exécutez la commande gcloud iam roles describe
pour afficher les métadonnées des rôles prédéfinis et des rôles personnalisés.
Pour afficher les métadonnées d'un rôle prédéfini, exécutez la commande gcloud
suivante :
gcloud iam roles describe role-id
role-id
est l'ID du rôle. Les rôles prédéfinis incluent le préfixe role
dans leurs ID, par exemple, roles/iam.roleViewer
.
L'exemple suivant illustre le résultat de la commande describe
lorsqu'elle est exécutée sur le rôle prédéfini roles/iam.roleViewer
:
gcloud iam roles describe roles/iam.roleViewer
description: Read access to all custom roles in the project. etag: AA== includedPermissions: - iam.roles.get - iam.roles.list - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy name: roles/iam.roleViewer stage: GA title: Role Viewer
Pour afficher les métadonnées d'un rôle personnalisé, exécutez l'une des commandes gcloud
suivantes :
Pour afficher les métadonnées d'un rôle personnalisé créé au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles describe --organization=organization-id role-id
Pour afficher les métadonnées d'un rôle personnalisé créé au niveau du projet, exécutez la commande suivante :
gcloud iam roles describe --project=project-id role-id
Chaque valeur d'espace réservé est décrite ci-dessous :
organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.role-id
est l'ID du rôle, à l'exclusion des préfixes tels queprojects/
,organizations/
ouroles/
. Par exemple,myCompanyAdmin
.
Pour en savoir plus, consultez la documentation de référence sur gcloud iam roles describe
.
REST
La méthode roles.get
obtient la définition d'un rôle.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
full-role-id
est l'ID de rôle complet, en incluant les préfixesorganizations/
,projects/
ouroles/
. Exemple :organizations/123456789012/roles/myCompanyAdmin
.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v1/full-role-id
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient la définition du rôle.
{ "name": "projects/my-project/roles/customRole", "title": "My Custom Role", "description": "My custom role description.", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "etag": "BwWiPg2fmDE=" }
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Go.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Python.
Créer un rôle personnalisé
Vous pouvez créer un rôle personnalisé au niveau du projet ou de l'organisation.
Pour créer un rôle personnalisé, un appelant doit posséder l'autorisation iam.roles.create
. Par défaut, le propriétaire d'un projet ou d'une organisation dispose de cette autorisation, et peut créer et gérer des rôles personnalisés.
Les utilisateurs qui ne sont pas propriétaires, y compris les administrateurs d'organisation, doivent se voir attribuer le rôle Administrateur des rôles de l'organisation ou le rôle Administrateur de rôle IAM.
La taille totale de l'intitulé, de la description et des noms d'autorisation pour un rôle personnalisé est limitée à 64 Ko. Si vous devez créer un rôle personnalisé plus important, vous pouvez répartir les autorisations entre plusieurs rôles personnalisés. Choisissez des intitulés de rôle indiquant la relation entre les rôles personnalisés tels que Custom
Admin (1 of 2)
et Custom Admin (2 of 2)
.
Console
Pour créer un rôle personnalisé de toutes pièces, procédez comme suit :
Dans Cloud Console, accédez à la page Rôles.
Dans la liste déroulante située en haut de la page, sélectionnez l'organisation ou le projet dans lequel vous souhaitez créer un rôle.
Cliquez sur Créer un rôle.
Entrez un nom, un intitulé et une description pour le rôle.
Cliquez sur Ajouter des autorisations.
Sélectionnez les autorisations que vous souhaitez inclure dans le rôle, puis cliquez sur Ajouter des autorisations. Utilisez les listes déroulantes Tous les services et Tous les types pour filtrer et sélectionner les autorisations par service et par type.
Pour créer un rôle personnalisé basé sur un rôle organisé existant, procédez comme suit :
- Dans Cloud Console, accédez à la page Rôles.
- Sélectionnez l'organisation ou le projet dans lequel vous souhaitez créer un rôle.
- Sélectionnez les rôles sur lesquels vous souhaitez baser le nouveau rôle personnalisé.
- Cliquez sur Créer un rôle à partir de la sélection.
- Entrez un nom, un intitulé et une description pour le rôle.
- Décochez les autorisations que vous souhaitez exclure du rôle.
- Cliquez sur Ajouter des autorisations pour inclure des autorisations.
- Cliquez sur Créer.
gcloud
Exécutez la commande gcloud iam roles create
pour créer des rôles personnalisés. Vous pouvez utiliser cette commande de deux manières :
- En fournissant un fichier YAML contenant la définition du rôle
- En utilisant des options pour spécifier la définition de rôle
Lorsque vous créez un rôle personnalisé, vous devez spécifier s'il s'applique au niveau de l'organisation ou au niveau du projet à l'aide des options --organization=organization-id
ou --project=project-id
. Chaque exemple ci-dessous crée un rôle personnalisé au niveau du projet.
Pour créer un rôle personnalisé à l'aide d'un fichier YAML, procédez comme suit :
Créez un fichier YAML contenant la définition de votre rôle personnalisé. Le fichier doit être structuré de la manière suivante :
title: role-title description: role-description stage: launch-stage includedPermissions: - permission-1 - permission-2
Chaque valeur d'espace réservé est décrite ci-dessous :
role-title
est un intitulé convivial pour le rôle, par exemple"My Company Admin"
.role-description
est une brève description du rôle, par exemple"My custom role description"
.launch-stage
indique l'étape d'un rôle dans le cycle de lancement, par exempleALPHA
,BETA
ouGA
.permission-1
etpermission-2
sont des autorisations à inclure dans le rôle personnalisé, telles queiam.roles.get
.
Enregistrez le fichier YAML, puis exécutez l'une des commandes suivantes :
Pour créer un rôle personnalisé au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles create role-id --organization=organization-id \ --file=yaml-file-path
Pour créer un rôle personnalisé au niveau du projet, exécutez la commande suivante :
gcloud iam roles create role-id --project=project-id \ --file=yaml-file-path
Chaque valeur d'espace réservé est décrite ci-dessous :
role-id
est le nom du rôle, par exemplemyCompanyAdmin
.organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.yaml-file-path
est le chemin d'accès à l'emplacement de votre fichier YAML contenant la définition du rôle personnalisé.
Exemples
L'exemple de fichier YAML suivant montre comment créer une définition de rôle :
title: "My Company Admin" description: "My custom role description." stage: "ALPHA" includedPermissions: - iam.roles.get - iam.roles.list
L'exemple suivant montre comment créer un rôle au niveau de l'organisation à l'aide du fichier YAML :
gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Si le rôle a bien été créé, le résultat de la commande est semblable à celui-ci :
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
L'exemple suivant montre comment créer un rôle au niveau du projet à l'aide du fichier YAML :
gcloud iam roles create myCompanyAdmin --project=my-project-id \ --file=my-role-definition.yaml
Si le rôle a bien été créé, le résultat de la commande est semblable à celui-ci :
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Pour créer un rôle personnalisé à l'aide d'options, procédez comme suit :
Exécutez l'une des commandes suivantes :
Pour créer un rôle personnalisé au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles create role-id --organization=organization-id \ --title=role-title --description=role-description \ --permissions=permissions-list --stage=launch-stage
Pour créer un rôle personnalisé au niveau du projet, exécutez la commande suivante :
gcloud iam roles create role-id --project=project-id \ --title=role-title --description=role-description \ --permissions=permissions-list --stage=launch-stage
Chaque valeur d'espace réservé est décrite ci-dessous :
role-id
est le nom du rôle, par exemplemyCompanyAdmin
.organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.role-title
est un intitulé convivial pour le rôle, par exemple"My Company Admin"
.role-description
est une brève description du rôle, par exemple"My custom role description."
.permissions-list
contient la liste des autorisations que vous souhaitez inclure dans le rôle personnalisé, séparées par une virgule. Exemple :iam.roles.get,iam.roles.list
.launch-stage
indique l'étape d'un rôle dans le cycle de lancement, par exempleALPHA
,BETA
ouGA
.
Exemples
L'exemple suivant montre comment créer un rôle au niveau de l'organisation à l'aide d'options :
gcloud iam roles create myCompanyAdmin --organization=123456789012\ --title="My Company Admin" --description="My custom role description." \ --permissions=iam.roles.get,iam.roles.list --stage=ALPHA
Si le rôle a bien été créé, le résultat de la commande est semblable à celui-ci :
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
L'exemple suivant montre comment créer un rôle au niveau du projet à l'aide d'options :
gcloud iam roles create myCompanyAdmin --project=my-project-id \ --title="My Company Admin" --description="My custom role description." \ --permissions=iam.roles.get,iam.roles.list --stage=ALPHA
Si le rôle a bien été créé, le résultat de la commande est semblable à celui-ci :
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
REST
La méthode roles.create
crée un rôle personnalisé dans un projet ou une organisation.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
resource-type
: type de ressource dont vous souhaitez gérer les rôles personnalisés. Utilisez la valeurprojects
ouorganizations
.resource-id
: ID de projet ou d'organisation dont vous souhaitez gérer les rôles personnalisés.role-id
: nom du rôle, tel quemyCompanyAdmin
.role-title
: titre lisible du rôle. Exemple :My Company Admin
role-description
: description du rôle. Exemple :"The company admin role allows company admins to access important resources"
permission-1
etpermission-2
: autorisations que vous souhaitez inclure dans le rôle. Par exemple,storage.objects.update
.launch-stage
: étape de lancement actuelle du rôle. Ce champ peut contenir l'une des valeurs suivantes :EAP
,ALPHA
,BETA
,GA
,DEPRECATED
ouDISABLED
.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/resource-type/resource-id/roles
Corps JSON de la requête :
{ "roleId": "role-id", "role": { "title": "role-title", "description": "role-description", "includedPermissions": [ "permission-1", "permission-2" ], "stage": "launch-stage" } }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient le rôle que vous avez créé.
{ "name": "projects/myProject/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWox/JbaZw=" }
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Go.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Python.
Modifier un rôle personnalisé existant
Lecture-modification-écriture
Pour actualiser les métadonnées d'une ressource, comme un rôle personnalisé, une approche classique consiste à lire leur état actuel, à mettre à jour les données localement, puis à envoyer les données modifiées en écriture. Cette approche peut provoquer un conflit si deux processus indépendants ou plus tentent de réaliser ces opérations simultanément. Par exemple, si deux propriétaires d'un projet tentent d'apporter des modifications conflictuelles à un rôle en même temps, certaines modifications peuvent échouer. Cloud IAM résout ce problème en utilisant une propriété etag
dans les rôles personnalisés. Cette propriété permet de vérifier si le rôle personnalisé a été modifié depuis la dernière requête. Lorsque vous envoyez une requête à Cloud IAM avec une valeur etag, Cloud IAM compare la valeur etag de la requête avec la valeur etag existante associée au rôle personnalisé. Il écrit la modification uniquement si les valeurs etag correspondent.
Lorsque vous mettez à jour un rôle, commencez par obtenir le rôle à l'aide de roles.get()
, mettez-le à jour, puis écrivez le rôle actualisé à l'aide de roles.patch()
. Utilisez la valeur etag lors de la définition du rôle seulement si le rôle correspondant dans roles.get()
contient une valeur etag.
Console
Dans Cloud Console, accédez à la page Rôles.
Dans la liste déroulante située en haut de la page, sélectionnez le projet ou l'organisation qui contient le rôle que vous souhaitez modifier.
Cliquez sur un rôle personnalisé.
Cliquez sur Modifier le rôle.
Cliquez sur Ajouter des autorisations pour ajouter de nouvelles autorisations au rôle.
Décochez les autorisations pour supprimer les autorisations du rôle.
Cliquez sur Mettre à jour pour enregistrer le rôle modifié.
gcloud
Exécutez la commande gcloud iam roles update
pour mettre à jour les rôles personnalisés. Vous pouvez utiliser cette commande de deux manières :
- En fournissant un fichier YAML contenant la définition actualisée du rôle
- En utilisant des options pour spécifier la définition actualisée du rôle
Lors de la mise à jour d'un rôle personnalisé, vous devez indiquer s'il s'applique au niveau de l'organisation ou au niveau du projet à l'aide des options --organization=organization-id
ou --project=project-id
. Chaque exemple ci-dessous crée un rôle personnalisé au niveau du projet.
Pour mettre à jour un rôle personnalisé à l'aide d'un fichier YAML, procédez comme suit :
Obtenez la définition actuelle du rôle en exécutant l'une des commandes suivantes :
Pour obtenir la définition d'un rôle personnalisé au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles describe role-id --organization=organization-id
Pour obtenir la définition d'un rôle personnalisé au niveau du projet, exécutez la commande suivante :
gcloud iam roles describe role-id --project=project-id
Chaque valeur d'espace réservé est décrite ci-dessous :
role-id
est le nom du rôle à mettre à jour, par exemplemyCompanyAdmin
.organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.
La commande describe
affiche la définition du rôle et inclut une valeur etag
qui identifie de manière unique la version actuelle du rôle. La valeur etag
doit être fournie dans la définition actualisée du rôle pour garantir que les modifications de rôle simultanées ne sont pas écrasées.
La commande describe
affiche le résultat suivant :
description: role-description etag: etag-value includedPermissions: - permission-1 - permission-2 name: full-role-id stage: launch-stage title: role-title
Chaque valeur d'espace réservé est décrite ci-dessous :
role-description
est une brève description du rôle, par exemple"My custom role description"
.etag-value
est l'identifiant unique de la version actuelle du rôle, par exempleBwVkBkbfr70=
.permission-1
etpermission-2
sont des autorisations à inclure dans le rôle personnalisé, telles queiam.roles.get
.full-role-id
est l'ID de rôle complet, y compris les préfixesorganizations/
,projects/
ouroles/
. Par exemple,organizations/123456789012/roles/myCompanyAdmin.
.launch-stage
indique l'étape d'un rôle dans le cycle de lancement, par exempleALPHA
,BETA
ouGA
.role-title
est un intitulé convivial pour le rôle, par exemple"My Company Admin"
.
Pour mettre à jour le rôle, incluez la définition de rôle en sortie dans un fichier YAML ou mettez à jour le fichier YAML d'origine avec la valeur etag
obtenue.
Prenons l'exemple de fichier YAML suivant, qui contient le résultat de la commande describe
pour un rôle au niveau du projet et ajoute deux autorisations Cloud Storage :
description: My custom role description. etag: BwVkBkbfr70= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Enregistrez le fichier YAML, puis exécutez l'une des commandes suivantes :
Pour mettre à jour un rôle au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles update role-id --organization=organization-id \ --file=yaml-file-path
Pour mettre à jour un rôle au niveau du projet, exécutez la commande suivante :
gcloud iam roles update role-id --project=project-id \ --file=yaml-file-path
Chaque valeur d'espace réservé est décrite ci-dessous :
role-id
est le nom du rôle à mettre à jour, par exemplemyCompanyAdmin
.organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.yaml-file-path
est le chemin d'accès à l'emplacement de votre fichier YAML contenant la définition actualisée du rôle personnalisé.
Exemples
L'exemple suivant montre comment mettre à jour un rôle au niveau de l'organisation à l'aide d'un fichier YAML :
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Si le rôle a bien été actualisé, le résultat de la commande est semblable à celui-ci :
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
L'exemple suivant montre comment mettre à jour un rôle au niveau du projet à l'aide d'un fichier YAML :
gcloud iam roles update myCompanyAdmin --project=my-project-id \ --file=my-role-definition.yaml
Si le rôle a bien été actualisé, le résultat de la commande est semblable à celui-ci :
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Pour mettre à jour un rôle personnalisé à l'aide d'indicateurs :
Chaque partie d'une définition de rôle peut être mise à jour à l'aide d'un indicateur correspondant.
Consultez la section gcloud iam roles update
pour obtenir la liste de toutes les options possibles.
Vous pouvez utiliser les indicateurs suivants pour ajouter ou supprimer des autorisations :
--add-permissions=permissions
: ajoute au rôle une ou plusieurs autorisations séparées par une virgule.--remove-permissions=permissions
: supprime du rôle une ou plusieurs autorisations séparées par une virgule.
Il est également possible de spécifier les nouvelles autorisations à l'aide de l'option --permissions=permissions
et en fournissant une liste d'autorisations séparées par une virgule pour remplacer la liste des autorisations existantes.
Pour mettre à jour d'autres parties de la définition de rôle, exécutez l'une des commandes suivantes :
Pour mettre à jour un rôle au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles update role-id --organization=organization-id \ --title=role-title --description=role-description \ --stage=launch-stage
Pour mettre à jour un rôle au niveau du projet, exécutez la commande suivante :
gcloud iam roles update role-id --project=project-id \ --title=role-title --description=role-description \ --stage=launch-stage
Chaque valeur d'espace réservé est décrite ci-dessous :
role-id
est le nom du rôle, par exemplemyCompanyAdmin
.organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.role-title
est un intitulé convivial pour le rôle, par exemple"My Company Admin"
.role-description
est une brève description du rôle, par exemple"My custom role description."
.launch-stage
indique l'étape d'un rôle dans le cycle de lancement, par exempleALPHA
,BETA
ouGA
.
Exemples
L'exemple suivant montre comment ajouter des autorisations à un rôle au niveau de l'organisation à l'aide d'options :
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --add-permissions=storage.buckets.get,storage.buckets.list
Si le rôle a bien été actualisé, le résultat de la commande est semblable à celui-ci :
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organization/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
L'exemple suivant montre comment ajouter des autorisations à un rôle au niveau du projet à l'aide d'options :
gcloud iam roles update myCompanyAdmin --project=my-project-id \ --add-permissions=storage.buckets.get,storage.buckets.list
Si le rôle a bien été actualisé, le résultat de la commande est semblable à celui-ci :
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
REST
La méthode roles.patch
met à jour un rôle personnalisé dans un projet ou une organisation.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
Obligatoire :
resource-type
: type de ressource dont vous souhaitez gérer les rôles personnalisés. Utilisez la valeurprojects
ouorganizations
.resource-id
: ID de projet ou d'organisation dont vous souhaitez gérer les rôles personnalisés.-
full-role-id
est l'ID de rôle complet, en incluant les préfixesorganizations/
,projects/
ouroles/
. Exemple :organizations/123456789012/roles/myCompanyAdmin
.
Recommandations :
etag
: identifiant de la version du rôle. Incluez ce champ pour éviter que d'autres modifications de rôle soient écrasées.
Facultatif (définissez une ou plusieurs des valeurs suivantes) :
role-title
: titre lisible du rôle. Exemple :My Company Admin
role-description
: description du rôle. Exemple :"The company admin role allows company admins to access important resources"
permission-1
etpermission-2
: autorisations que vous souhaitez inclure dans le rôle. Par exemple,storage.objects.update
.launch-stage
: étape de lancement actuelle du rôle. Ce champ peut contenir l'une des valeurs suivantes :EAP
,ALPHA
,BETA
,GA
,DEPRECATED
ouDISABLED
.
Méthode HTTP et URL :
PATCH https://iam.googleapis.com/v1/resource-type/resource-id/roles
Corps JSON de la requête :
{ "roleId": "full-role-id", "title": "role-title", "description": "role-description", "includedPermissions": [ "permission-1", "permission-2" ], "stage": "launch-stage", "etag": "etag" }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient une définition de rôle abrégée qui inclut le nom du rôle, les champs que vous avez mis à jour et un etag qui identifie la version actuelle du rôle.
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "title": "My Updated Company Admin", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "stage": "BETA", "etag": "BwWoyDpAxBc=" }
Certains rôles prédéfinis contiennent des autorisations obsolètes ou des autorisations qui ne sont par ailleurs pas autorisées dans les rôles personnalisés. La création d'un rôle personnalisé basé sur un rôle prédéfini contenant des autorisations obsolètes ou restreintes échouera.
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Go.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Python.
Désactiver un rôle personnalisé
Vous pouvez désactiver un rôle personnalisé. Lorsqu'un rôle est désactivé, toutes les liaisons de stratégie associées à ce rôle sont désactivées, ce qui signifie que l'attribution du rôle à un utilisateur n'a aucun effet.
Console
Dans Cloud Console, accédez à la page Rôles.
Cliquez sur la liste déroulante "Sélectionner un projet" en haut de la page.
Sélectionnez votre organisation ou votre projet.
Sélectionnez un rôle personnalisé et cliquez sur Désactiver.
gcloud
Exécutez la commande gcloud iam roles update
pour désactiver un rôle personnalisé en définissant son étape de lancement sur DISABLED
.
Comme indiqué dans l'onglet gcloud de la section Modifier un rôle personnalisé existant, vous pouvez mettre à jour un rôle personnalisé existant de deux manières :
- En fournissant un fichier YAML contenant la définition actualisée du rôle
- En utilisant des options pour spécifier la définition actualisée du rôle
Le moyen le plus simple de désactiver un rôle personnalisé existant consiste à utiliser l'option --stage
et à la définir sur DISABLED
. Exécutez l'une des commandes suivantes :
Pour désactiver un rôle au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles update role-id --organization=organization-id \ --stage=DISABLED
Pour désactiver un rôle au niveau du projet, exécutez la commande suivante :
gcloud iam roles update role-id --project=project-id \ --stage=DISABLED
Chaque valeur d'espace réservé est décrite ci-dessous :
role-id
est le nom du rôle, par exemplemyCompanyAdmin
.organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.
Exemples
L'exemple suivant montre comment désactiver un rôle au niveau de l'organisation :
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --stage=DISABLED
Si le rôle a bien été actualisé, le résultat de la commande est semblable à celui-ci :
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: organization/123456789012/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
L'exemple suivant montre comment désactiver un rôle au niveau du projet :
gcloud iam roles update myCompanyAdmin --project=my-project-id \ --stage=DISABLED
Si le rôle a bien été actualisé, le résultat de la commande est semblable à celui-ci :
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project-id/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
REST
La méthode roles.patch
vous permet de remplacer l'étape de lancement d'un rôle personnalisé par DISABLED
, ce qui désactive le rôle.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
resource-type
: type de ressource dont vous souhaitez gérer les rôles personnalisés. Utilisez la valeurprojects
ouorganizations
.resource-id
: ID de projet ou d'organisation dont vous souhaitez gérer les rôles personnalisés.-
full-role-id
est l'ID de rôle complet, en incluant les préfixesorganizations/
,projects/
ouroles/
. Exemple :organizations/123456789012/roles/myCompanyAdmin
. etag
: identifiant de la version du rôle. Incluez ce champ pour éviter que d'autres modifications de rôle soient écrasées.
Méthode HTTP et URL :
PATCH https://iam.googleapis.com/v1/resource/resource-id/roles
Corps JSON de la requête :
{ "roleId": "full-role-id", "stage": DISABLED, "etag": "etag" }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "stage": "DISABLED", "etag": "BwWoyDpAxBc=" }
C#
Mettez à jour le champ stage
du rôle en le définissant sur DISABLED
.
Go
Mettez à jour le champ stage
du rôle en le définissant sur DISABLED
.
Python
Mettez à jour le champ stage
du rôle en le définissant sur DISABLED
.
Répertorier les rôles
Vous pouvez répertorier tous les rôles personnalisés créés dans votre projet ou votre organisation.
Console
Dans Cloud Console, accédez à la page Rôles.
Tous les rôles personnalisés de l'organisation ou du projet que vous avez sélectionnés sont répertoriés sur la page.
gcloud
Exécutez la commande gcloud iam roles list
pour obtenir la liste des rôles personnalisés et des rôles prédéfinis correspondant à un projet ou à une organisation.
Pour obtenir la liste des rôles personnalisés, exécutez l'une des commandes suivantes :
Pour obtenir la liste des rôles personnalisés au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles list --organization=organization-id
Pour obtenir la liste des rôles personnalisés au niveau du projet, exécutez la commande suivante :
gcloud iam roles list --project=project-id
Chaque valeur d'espace réservé est décrite ci-dessous :
organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.
Pour obtenir la liste des rôles supprimés, vous pouvez également spécifier l'option --show-deleted
.
Exécutez la commande gcloud
suivante pour obtenir la liste des rôles prédéfinis :
gcloud iam roles list
REST
La méthode roles.list
répertorie tous les rôles personnalisés d'un projet ou d'une organisation.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
resource-type
: type de ressource dont vous souhaitez gérer les rôles personnalisés. Utilisez la valeurprojects
ouorganizations
.resource-id
: ID de projet ou d'organisation dont vous souhaitez gérer les rôles personnalisés.role-view
: facultatif. Informations à inclure pour les rôles renvoyés. Pour inclure les autorisations associées aux rôles, définissez ce champ surFULL
. Pour exclure les autorisations associées aux rôles, définissez ce champ surBASIC
. La valeur par défaut estBASIC
.page-size
: facultatif. Nombre de rôles à inclure dans la réponse. La valeur par défaut est 300 et la valeur maximale est 1 000. Si le nombre d'autorisations est supérieur à la taille de la page, la réponse contient un jeton de pagination qui vous permet de récupérer la page de résultats suivante.next-page-token
: facultatif. Jeton de pagination renvoyé dans une réponse précédente de cette méthode. Si spécifié, la liste des rôles commence à la fin de la réponse précédente.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v1/resource-type/resource-id/roles?view=role-view&pageSize=page-size&pageToken=next-page-token
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "roles": [ { "name": "projects/my-project/roles/customRole1", "title": "First Custom Role", "description": "Created on: 2020-06-01", "etag": "BwWiPg2fmDE=" }, { "name": "projects/my-project/roles/customRole2", "title": "Second Custom Role", "description": "Created on: 2020-06-07", "etag": "BwWiuX53Wi0=" } ] }
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Go.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Python.
Supprimer un rôle personnalisé
Vous pouvez supprimer n'importe quel rôle personnalisé dans votre projet ou votre organisation.
Console
Dans Cloud Console, accédez à la page Rôles.
Sélectionnez le rôle que vous souhaitez supprimer et cliquez sur delete Supprimer en haut de la page.
gcloud
Exécutez la commande gcloud iam roles delete
pour supprimer un rôle personnalisé. Le rôle est suspendu et ne peut pas être utilisé pour créer de nouvelles liaisons de stratégie IAM.
Pour supprimer un rôle personnalisé, exécutez l'une des commandes suivantes :
Pour supprimer un rôle personnalisé au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles delete role-id --organization=organization-id
Pour supprimer un rôle personnalisé au niveau du projet, exécutez la commande suivante :
gcloud iam roles delete role-id --project=project-id
Chaque valeur d'espace réservé est décrite ci-dessous :
role-id
est le nom du rôle, par exemplemyCompanyAdmin
.organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.
Le rôle ne sera pas inclus dans gcloud iam roles list
, à moins que l'option --show-deleted
ne soit incluse. Les rôles supprimés sont indiqués par le bloc deleted: true
dans une réponse list
, par exemple :
--- deleted: true description: My custom role description. etag: BwVkB5NLIQw= name: projects/my-project-id/roles/myCompanyAdmin title: My Company Admin ---
REST
La méthode roles.delete
supprime un rôle personnalisé dans un projet ou une organisation.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
full-role-id
est l'ID de rôle complet, en incluant les préfixesorganizations/
,projects/
ouroles/
. Exemple :organizations/123456789012/roles/myCompanyAdmin
.
Méthode HTTP et URL :
DELETE https://iam.googleapis.com/v1/full-role-id
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient la définition du rôle qui a été supprimé.
{ "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=", "deleted": true }
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Go.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Python.
Lorsqu'un rôle est supprimé, ses liaisons restent, mais sont inactives. Vous pouvez annuler la suppression d'un rôle dans les sept jours. Pendant cette période de sept jours, le rôle apparaîtra comme Supprimé dans Cloud Console. Il n'apparaîtra pas dans les commandes de programme de type list
(sauf si le champ showDeleted
est défini dans la requête).
À l'issue des sept jours, le rôle est programmé pour être définitivement supprimé. À ce stade, le rôle n'est plus comptabilisé dans la limite de 300 rôles personnalisés par organisation ou 300 rôles personnalisés par projet.
Le processus de suppression définitive prend 30 jours. Au cours de la fenêtre de 30 jours, le rôle et toutes les liaisons associées sont définitivement supprimés et vous ne pouvez pas créer de nouveau rôle avec le même ID de rôle.
Une fois le rôle définitivement supprimé, 37 jours après la demande de suppression initiale, vous pouvez créer un nouveau rôle avec le même ID de rôle.
Annuler la suppression d'un rôle personnalisé
Lorsque vous annulez la suppression d'un rôle, il revient à son état précédent.
La suppression des rôles ne peut être annulée que dans un délai de sept jours. Après sept jours, il est définitivement supprimé, et toutes les liaisons qui y sont associées le sont également.
Console
Dans Cloud Console, accédez à la page Rôles.
Localisez le rôle dont vous souhaitez annuler la suppression. Ensuite, cliquez sur l'icône Plus à la fin de la ligne, puis sur Annuler la suppression.
gcloud
Exécutez la commande gcloud iam roles undelete
pour annuler la suppression d'un rôle personnalisé.
Pour annuler la suppression d'un rôle personnalisé, exécutez l'une des commandes suivantes :
Pour annuler la suppression d'un rôle personnalisé au niveau de l'organisation, exécutez la commande suivante :
gcloud iam roles undelete role-id --organization=organization-id
Pour annuler la suppression d'un rôle personnalisé au niveau du projet, exécutez la commande suivante :
gcloud iam roles undelete role-id --project=project-id
Chaque valeur d'espace réservé est décrite ci-dessous :
role-id
est le nom du rôle, par exemplemyCompanyAdmin
.organization-id
est l'ID numérique de l'organisation, tel que123456789012
.project-id
est le nom du projet, par exemplemy-project-id
.
Exemples
L'exemple suivant montre comment annuler la suppression d'un rôle personnalisé au niveau de l'organisation :
gcloud iam roles undelete myCompanyAdmin --organization=123456789012
Si la suppression du rôle a bien été annulée, le résultat de la commande est semblable à celui-ci :
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: organization/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
L'exemple suivant montre comment annuler la suppression d'un rôle au niveau du projet :
gcloud iam roles undelete myCompanyAdmin --project=my-project-id
Si la suppression du rôle a bien été annulée, le résultat de la commande est semblable à celui-ci :
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
REST
La méthode roles.undelete
annule la suppression d'un rôle personnalisé dans un projet ou une organisation.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
full-role-id
est l'ID de rôle complet, en incluant les préfixesorganizations/
,projects/
ouroles/
. Exemple :organizations/123456789012/roles/myCompanyAdmin
. etag
: identifiant de la version du rôle. Incluez ce champ pour éviter que d'autres modifications de rôle soient écrasées.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/full-role-id:undelete
Corps JSON de la requête :
{ "etag": "etag" }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient la définition du rôle dont la suppression a été annulée.
{ "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=" }
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Go.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le Guide de démarrage rapide de Cloud IAM – Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM en langage Python.
Étapes suivantes
- Découvrez comment attribuer des rôles à vos membres.
- Apprenez en plus sur les attributions de rôles conditionnels, qui n'accordent un rôle que si des conditions spécifiques sont remplies.