Cette page explique comment créer et gérer des rôles personnalisés IAM (Identity and Access Management). La gestion des rôles comprend la modification, la désactivation, l'établissement de la liste, la suppression et l'annulation de la suppression des rôles.
Avant de commencer
Enable the IAM API.
Configurez l'authentification.
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
Vous pouvez utiliser les exemples gcloud CLI de cette page dans l'un des environnements de développement suivants :
-
Cloud Shell : pour utiliser un terminal en ligne avec gcloud CLI déjà configuré, activez Cloud Shell.
En bas de cette page, une session Cloud Shell démarre et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.
-
Shell local : pour utiliser gcloud CLI dans un environnement de développement local, installez et initialisez gcloud CLI.
C++
Pour utiliser les exemples C++ de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
C#
Pour utiliser les exemples .NET de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
Go
Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
Java
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
Python
Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Découvrez la hiérarchie des ressources Google Cloud.
Consultez la section Comprendre les rôles personnalisés IAM.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer et gérer des rôles personnalisés, demandez à votre administrateur de vous accorder les rôles IAM suivants :
- Pour gérer les rôles d'un projet : Administrateur des rôles (
roles/iam.roleAdmin
), sur le projet dont vous souhaitez gérer les rôles. -
Pour gérer les rôles d'une organisation : Administrateur des rôles de l'organisation (
roles/iam.organizationRoleAdmin
), sur l'organisation dont vous souhaitez gérer les rôles.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Afficher les autorisations disponibles pour les projets, les dossiers et les organisations
Vous pouvez créer des rôles personnalisés pour l'ensemble d'une organisation ou pour un projet spécifique de cette organisation. Les autorisations disponibles pour les rôles personnalisés dépendent de l'emplacement où vous créez le rôle. Par exemple, si une autorisation ne peut être utilisée qu'au niveau de l'organisation, vous ne pouvez pas l'inclure dans un rôle personnalisé au niveau du projet.
Pour vérifier les autorisations disponibles pour les rôles personnalisés au niveau de l'organisation et du projet, vous pouvez utiliser gcloud CLI ou l'API Identity and Access Management pour répertorier les autorisations disponibles dans une organisation ou un projet spécifique. Par exemple, vous pouvez obtenir toutes les autorisations disponibles pour les rôles personnalisés créés dans votre projet.
Certaines autorisations peuvent ne pas s'afficher ou être utilisées dans un rôle personnalisé, même si elles sont compatibles avec les rôles personnalisés. Par exemple, une autorisation peut ne pas être disponible pour des rôles personnalisés si vous n'avez pas activé l'API pour le service.
Pour en savoir plus sur les autorisations que vous pouvez ajouter aux rôles personnalisés, consultez la section Autorisations compatibles.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Exécutez la commande
gcloud iam list-testable-permissions
pour obtenir la liste des autorisations disponibles pour les rôles personnalisés d'un projet ou d'une organisation spécifique. La réponse répertorie les autorisations que vous pouvez utiliser dans les rôles personnalisés de ce projet ou de cette organisation.Pour lister les autorisations disponibles dans des rôles personnalisés pour un projet ou une organisation, exécutez la commande suivante :
gcloud iam list-testable-permissions FULL_RESOURCE_NAME \ --filter="customRolesSupportLevel!=NOT_SUPPORTED"
Remplacez par l'une des valeurs suivantes :
FULL_RESOURCE_NAME
-
Projet :
//cloudresourcemanager.googleapis.com/projects/PROJECT_ID
(par exemple,//cloudresourcemanager.googleapis.com/projects/my-project
) -
Organisation :
//cloudresourcemanager.googleapis.com/organizations/NUMERIC_ID
(par exemple,//cloudresourcemanager.googleapis.com/organizations/123456789012
)
Les résultats indiquent si chaque autorisation est compatible avec les rôles personnalisés. Les autorisations qui ne comportent pas de champ
customRolesSupportLevel
sont entièrement compatibles.La commande
list-testable-permissions
peut afficher des centaines de résultats. Cet exemple partiel affiche le format de chaque résultat :--- name: appengine.applications.create stage: GA --- customRolesSupportLevel: TESTING name: appengine.applications.disable stage: GA --- name: appengine.applications.get stage: GA --- name: appengine.applications.update stage: GA --- name: appengine.instances.delete stage: GA --- name: appengine.instances.get stage: GA ---
-
C++
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C++.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C#.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Go.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
REST
La méthode permissions.queryTestablePermissions
répertorie les autorisations disponibles dans une organisation ou un projet.
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 :
La réponse contient la liste des autorisations.
{ "permissions": [ { "name": "iam.serviceAccountKeys.create", "stage": "GA" }, { "name": "iam.serviceAccountKeys.delete", "stage": "GA" }, { "name": "iam.serviceAccountKeys.get", "stage": "GA" } ], "nextPageToken": "CgoHBajEfjUDQyABEPaIv5vIiMDTVhgDIhtpYW0uc2VydmljZUFjY291bnRLZXlzLmxpc3Q" }
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 la console Google Cloud ou de l'API IAM.
Pour afficher les métadonnées de rôle, utilisez l'une des méthodes ci-dessous :
Console
Dans la console Google Cloud, 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éfiniSi 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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
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 suivante :
gcloud iam roles describe ROLE_ID
ROLE_ID
est l'ID du rôle. Les rôles prédéfinis incluent le préfixerole
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éfiniroles/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 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
. -
ROLE_ID
est l'ID du rôle, à l'exclusion des préfixes tels queprojects/
,organizations/
ouroles/
. Exemple :myCompanyAdmin
Pour en savoir plus, consultez la documentation de référence sur
gcloud iam roles describe
. -
C++
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C++.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C#.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Go.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
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 :
ROLE_NAME
: nom complet du rôle, y compris les préfixesorganizations/
,projects/
ouroles/
. Par exemple,organizations/123456789012/roles/myCompanyAdmin
.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v1/ROLE_NAME
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=" }
Créer un rôle personnalisé
Vous pouvez créer un rôle personnalisé au niveau du projet ou de l'organisation.
Un rôle personnalisé au niveau de l'organisation peut inclure l'une des autorisations IAM compatibles avec les rôles personnalisés. Un rôle personnalisé au niveau du projet peut contenir toute autorisation compatible, à l'exception des autorisations qui ne peuvent être utilisées qu'au niveau de l'organisation ou du dossier, telles que resourcemanager.organizations.get
. Si vous essayez d'ajouter ces autorisations à un rôle personnalisé au niveau du projet, un message d'erreur s'affiche :
Console
Le message d'avertissement suivant s'affiche : "Non applicable aux rôles personnalisés au niveau du projet". L'autorisation est automatiquement désélectionnée de la liste des autorisations incluses et vous pouvez continuer à créer le rôle.
gcloud
Le message d'erreur suivant est renvoyé : INVALID_ARGUMENT: Permission PERMISSION is not
valid
. Le rôle personnalisé ne sera créé qu'une fois l'autorisation supprimée de la définition du rôle et qu'une fois que vous aurez réitéré l'opération.
API REST
Le message d'erreur suivant est renvoyé : Permission PERMISSION is not valid
, avec un code d'erreur HTTP 400 et l'état INVALID_ARGUMENT
. Le rôle personnalisé ne sera créé qu'une fois l'autorisation supprimée de la définition du rôle et qu'une fois que vous aurez réitéré l'opération.
Chaque rôle personnalisé peut contenir jusqu'à 3 000 autorisations. En outre, la taille totale maximale du titre, de la description et des noms d'autorisations pour un rôle personnalisé est de 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)
.
Chaque rôle personnalisé peut comporter une étape de lancement. La plupart des étapes de lancement sont fournies à titre informatif. Elles vous permettent de savoir si chaque rôle est prêt à être utilisé à grande échelle.
En outre, l'étape de lancement DISABLED
vous permet de désactiver un rôle personnalisé. Pour en savoir plus sur les étapes de lancement, consultez la section Tester et déployer.
Console
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. Si vous tentez de créer un rôle personnalisé basé sur l'un de ces rôles prédéfinis, le rôle personnalisé omet les autorisations obsolètes et restreintes.
Pour créer un rôle personnalisé de toutes pièces, procédez comme suit :
Dans la console Google Cloud, 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.
Saisissez un nom, un titre, une description et une étape de lancement pour le rôle. Une fois le rôle créé, vous ne pouvez plus modifier son nom.
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 prédéfini existant, procédez comme suit :
- Dans la console Google Cloud, 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.
- Saisissez un nom, un titre, une description et une étape de lancement pour le rôle. Une fois le rôle créé, vous ne pouvez plus modifier son nom.
- 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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
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.Un rôle personnalisé ne peut contenir que des autorisations compatibles avec les rôles personnalisés. Si le rôle personnalisé contient d'autres autorisations, la commande échoue.
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
. Vous ne pouvez pas utiliser de caractères génériques (*
) dans les noms d'autorisations.
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
. -
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 \ --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/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
. -
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
Vous ne pouvez pas utiliser de caractères génériques (*
) dans les noms d'autorisations. -
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 \ --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/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
C++
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C++.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C#.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Go.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
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, 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. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les identifiants des organisations sont numériques, comme123456789012
.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. Exemple :storage.objects.update
. Vous ne pouvez pas utiliser de caractères génériques (*
) dans les noms d'autorisations.Un rôle personnalisé ne peut contenir que des autorisations compatibles avec les rôles personnalisés. Si le rôle personnalisé contient d'autres autorisations, la requête échoue.
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=" }
Modifier un rôle personnalisé existant
Le modèle lecture-modification-écriture est un modèle courant de mise à jour des métadonnées d'une ressource, comme un rôle personnalisé. Avec ce modèle, vous lisez l'état actuel du rôle, vous mettez à jour les données localement, puis vous envoyez les données modifiées en écriture.
Le modèle lecture-modification-écriture 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 la console Google Cloud, 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.
Pour mettre à jour les métadonnées du rôle, modifiez le titre, la description ou l'étape de lancement du rôle.
Pour mettre à jour les autorisations du rôle, procédez comme suit :
- 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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
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 indicateurs 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
.
La commande
describe
affiche la définition du rôle et inclut une valeuretag
qui identifie de manière unique la version actuelle du rôle. La valeuretag
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 includedPermissions: - PERMISSION_1 - PERMISSION_2 name: ROLE_NAME 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
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
. Vous ne pouvez pas utiliser de caractères génériques (*
) dans les noms d'autorisations. -
ROLE_NAME
est le nom complet du rôle, y compris les préfixesorganizations/
,projects/
ouroles/
. 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/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 mise à jour 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 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
. -
YAML_FILE_PATH
est le chemin d'accès à l'emplacement de votre fichier YAML contenant la définition mise à jour 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 \ --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/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Pour mettre à jour un rôle personnalisé à l'aide d'options, procédez comme suit :
Chaque partie d'une définition de rôle peut être actualisée à l'aide d'une option correspondante. Consultez la section
gcloud iam roles update
pour obtenir la liste de toutes les options possibles.Vous pouvez utiliser les options suivantes pour ajouter ou supprimer des autorisations :
-
--add-permissions=PERMISSIONS
: ajoute au rôle une ou plusieurs autorisations séparées par une virgule. Vous ne pouvez pas utiliser de caractères génériques (*
) dans les noms d'autorisations. -
--remove-permissions=PERMISSIONS
: supprime du rôle une ou plusieurs autorisations séparées par une virgule. Vous ne pouvez pas utiliser de caractères génériques (*
) dans les noms d'autorisations.
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
. -
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 \ --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/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
C++
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C++.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C#.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Go.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
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, 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. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les identifiants des organisations sont numériques, comme123456789012
.ROLE_NAME
: nom complet du rôle, y compris les préfixesorganizations/
,projects/
ouroles/
. Par 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. Exemple :storage.objects.update
. Vous ne pouvez pas utiliser de caractères génériques (*
) dans les noms d'autorisations.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": "ROLE_NAME", "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=" }
Désactiver un rôle personnalisé
Vous pouvez désactiver un rôle personnalisé en remplaçant son étape de lancement par DISABLED
. Lorsqu'un rôle est désactivé, toutes les liaisons de rôles 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 la console Google Cloud, 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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Exécutez la commande
gcloud iam roles update
pour désactiver un rôle personnalisé en définissant son étape de lancement surDISABLED
.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 indicateurs 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 surDISABLED
. 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
.
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 \ --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/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
-
C++
Mettez à jour le champ stage
du rôle en le définissant sur DISABLED
.
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
.
Java
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
.
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, 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. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les identifiants des organisations sont numériques, comme123456789012
.ROLE_NAME
: nom complet du rôle, y compris les préfixesorganizations/
,projects/
ouroles/
. Par 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_TYPE/RESOURCE_ID/roles
Corps JSON de la requête :
{ "roleId": "ROLE_NAME", "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=" }
Répertorier des rôles
Vous pouvez répertorier tous les rôles personnalisés créés dans votre projet ou votre organisation.
Console
Dans la console Google Cloud, 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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
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 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
.
Pour obtenir la liste des rôles supprimés, vous pouvez également spécifier l'option
--show-deleted
.Exécutez la commande suivante pour obtenir la liste des rôles prédéfinis :
gcloud iam roles list
-
C++
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C++.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C#.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Go.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
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, 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. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les identifiants des organisations sont numériques, comme123456789012
.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=" } ] }
Supprimer un rôle personnalisé
Vous pouvez supprimer n'importe quel rôle personnalisé dans votre projet ou votre organisation.
Console
Dans la console Google Cloud, 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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Exécutez la commande
gcloud iam roles delete
pour supprimer un rôle personnalisé :-
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
.
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 blocdeleted: true
dans une réponselist
, par exemple :--- deleted: true description: My custom role description. etag: BwVkB5NLIQw= name: projects/my-project/roles/myCompanyAdmin title: My Company Admin ---
-
C++
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C++.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C#.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Go.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
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 :
ROLE_NAME
: nom complet du rôle, y compris les préfixesorganizations/
,projects/
ouroles/
. Par exemple,organizations/123456789012/roles/myCompanyAdmin
.
Méthode HTTP et URL :
DELETE https://iam.googleapis.com/v1/ROLE_NAME
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 }
Lorsqu'un rôle est supprimé, toutes les liaisons de rôle qui font référence à ce rôle sont conservées dans vos stratégies d'autorisation, mais elles n'ont aucun effet. Vous pouvez annuler la suppression d'un rôle dans les sept jours. Pendant cette période de sept jours, la console Google Cloud indique que le rôle a été supprimé. Vous pouvez également répertorier les rôles supprimés par programmation, mais ils sont omis par défaut.
À l'issue des sept à 14 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é, 44 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. À l'issue des sept jours, le rôle peut être définitivement supprimé, et toutes les liaisons de rôle qui y font référence sont supprimées.
Console
Dans la console Google Cloud, 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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
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é 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
.
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
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/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
C++
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C++.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C#.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Go.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
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 :
ROLE_NAME
: nom complet du rôle, y compris les préfixesorganizations/
,projects/
ouroles/
. Par 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/ROLE_NAME: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=" }
Étapes suivantes
- Découvrez comment attribuer des rôles aux comptes principaux.
- Découvrez comment utiliser les recommandations de rôles pour réduire le champ d'application des autorisations associées aux comptes principaux.
- Apprenez en plus sur les attributions de rôles conditionnels, qui n'accordent un rôle que si des conditions spécifiques sont remplies.