Avant d'accorder un rôle de gestion de l'authentification et des accès (IAM) à un utilisateur pour une ressource, il est préférable de connaître les rôles disponibles pour une ressource particulière.
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
-
Rôles requis
Pour obtenir l'autorisation dont vous avez besoin pour lister les rôles pouvant être attribués, demandez à votre administrateur de vous attribuer le rôle IAM Examinateur de sécurité (roles/iam.securityReviewer
), sur la ressource pour laquelle vous souhaitez lister les rôles attribuables.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ce rôle prédéfini contient les autorisations getIamPolicy
pour tous les types de ressources. Pour lister les rôles pouvant être attribués, vous devez disposer de l'autorisation getIamPolicy
pour la ressource pour laquelle vous souhaitez lister les rôles attribuables. Par exemple, pour lister les rôles attribuables pour un projet, vous devez disposer de l'autorisation resourcemanager.projects.getIamPolicy
.
Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.
Comprendre quels rôles sont attribuables
Un rôle peut être octroyé au niveau d'une ressource ou au niveau supérieur s'il possède des autorisations pour ce type de ressource. Par exemple, le rôle storage.admin
accorde des autorisations aux API storage.buckets.get
et storage.objects.get
. Il peut donc être attribué aux types de ressources buckets de stockage et objets de stockage.
Les rôles peuvent également être octroyés "au-dessus" des types de ressources pour lesquels leurs autorisations sont définies. Autrement dit, vous pouvez attribuer des rôles pour des ressources de niveau inférieur sur une ressource située plus haut dans la hiérarchie des ressources Google Cloud. Par exemple, le rôle storage.admin
peut également être attribué au niveau du projet ou de l'organisation, en plus des buckets de stockage.
Les autorisations accordées par un rôle n'affectent que les ressources du niveau spécifié ou de niveau inférieur. Elles n'affectent pas les ressources de niveau supérieur ou homologue. De plus, quand un rôle est accordé sur une ressource, seules les autorisations applicables à la ressource en question sont accordées, indépendamment du nom, de la description et des autres autorisations du rôle. Par exemple, l'attribution du rôle resourcemanager.organizationAdmin
(qui accorde l'autorisation resourcemanager.projects.list
) à un utilisateur au niveau du projet n'accorde les autorisations que pour ce projet. Cela ne permet pas d'afficher, ni de gérer tous les projets de l'organisation.
De la même manière, lorsque vous attribuez le rôle compute.admin
sur une instance Compute Engine spécifique, vous n'accordez des autorisations que pour cette instance et pas pour les autres instances du projet.
Afficher les rôles attribuables
Vous pouvez répertorier les rôles à attribuer à l'aide de la console Google Cloud, de Google Cloud CLI, de l'API IAM ou des bibliothèques clientes IAM.
La console Google Cloud répertorie toujours tous les rôles pouvant être attribués pour la ressource que vous consultez. Google Cloud CLI, l'API IAM et les bibliothèques clientes ne répertorient que les rôles pouvant être attribués pour les API activées.
Console
Pour afficher les rôles pouvant être attribués pour un projet, un dossier ou une organisation, procédez comme suit :
Dans la console Google Cloud, accédez à la page IAM.
Cliquez sur Sélectionnez un projet en haut de la page.
Sélectionnez le projet, le dossier ou l'organisation dont vous souhaitez afficher les rôles pouvant être attribués.
Cliquez sur
Accorder l'accès.Cliquez sur Select a role (Sélectionner un rôle). Ce menu affiche tous les rôles, y compris tous les rôles personnalisés, que vous pouvez attribuer sur cette ressource.
Pour afficher les rôles pouvant être attribués pour d'autres types de ressources, procédez comme suit :
Dans la console Google Cloud, accédez à la page répertoriant la ressource pour laquelle vous souhaitez afficher les rôles pouvant être attribués.
Par exemple, pour gérer l'accès à une instance Compute Engine, accédez à la page Instances de VM.
Cochez la case située à côté de la ressource pour laquelle vous souhaitez afficher les rôles pouvant être attribués.
Assurez-vous que le panneau d'informations est visible. S'il n'est pas visible, cliquez sur Afficher le panneau d'informations.
Cliquez sur
Ajouter un compte principal.Cliquez sur Select a role (Sélectionner un rôle). Ce menu affiche tous les rôles, y compris tous les rôles personnalisés, que vous pouvez attribuer sur cette ressource.
gcloud
Exécutez la commande gcloud iam list-grantable-roles
pour renvoyer la liste de tous les rôles pouvant être appliqués à une ressource donnée.
gcloud iam list-grantable-roles full-resource-name
En fonction de la ressource de votre choix, un grand nombre de rôles peut être renvoyé. Pour limiter les résultats, vous pouvez spécifier une expression de filtre.
La sortie sera semblable à ce qui suit :
description: Full control of all Compute Engine resources.
name: roles/compute.admin
title: Compute Admin
---
description: Full control of Compute Engine instance resources.
name: roles/compute.instanceAdmin
title: Compute Instance Admin
# Additional results here...
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.queryGrantableRoles
renvoie une liste de tous les rôles pouvant être attribués à une ressource donnée.
Avant d'utiliser les données de requête, 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.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/roles:queryGrantableRoles
Corps JSON de la requête :
{ "fullResourceName": "FULL_RESOURCE_NAME" }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "roles": [ { "name": "roles/compute.admin", "title": "Compute Admin", "description": "Full control of all Compute Engine resources." }, { "name": "roles/compute.instanceAdmin", "title": "Compute Instance Admin (beta)", "description": "Full control of Compute Engine instance resources." } ] }
Dans les exemples ci-dessus, le nom complet de la ressource est un URI sans schéma comprenant un nom de service d'API et un chemin d'accès à la ressource compatibles avec DNS.
Par exemple, pour renvoyer tous les rôles pouvant être attribués à un projet, utilisez :
//cloudresourcemanager.googleapis.com/projects/project-id
Les ressources de niveau inférieur ont un nom complet plus détaillé. Par exemple, utilisez la commande suivante pour renvoyer tous les rôles attribuables sur une instance Compute Engine :
//compute.googleapis.com/projects/project-id/zones/zone-name/instances/instance-id
Étape suivante
- Apprenez-en plus sur les rôles IAM.
- Découvrez comment choisir les rôles prédéfinis les plus appropriés.
- Découvrez comment attribuer, modifier et révoquer les accès d'un compte principal.
- Consultez des exemples de noms de ressources pour différents types de ressources.