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.
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
Avant de répertorier les rôles que vous pouvez attribuer, assurez-vous que le service est activé dans le projet. Si le service n'est pas activé, ses rôles ne sont pas renvoyés.
Console
Dans Cloud Console, accédez à la page IAM.
Cliquez sur le menu déroulant "Sélectionner un projet" en haut de la page.
Sélectionnez le projet ou l'entreprise pour lequel vous souhaitez afficher les rôles.
Cliquez sur Ajouter.
Sous Membres, saisissez l'e-mail ou le nom de domaine du membre.
Le menu déroulant Sélectionner un rôle affiche tous les rôles (y compris tous les rôles personnalisés) que vous pouvez accorder au membre de 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...
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 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.
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." } ] }
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.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java 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 Java.
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.
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 attribuer, modifier et révoquer les accès d'un membre.
- Consultez des exemples de noms de ressources pour différents types de ressources.