La plupart des ressources Google Cloud exposent la méthode testIamPermissions()
, qui permet de vérifier de manière automatisée si l'appelant actuellement authentifié s'est vu accorder une ou plusieurs autorisations IAM spécifiques sur la ressource. La méthode testIamPermissions()
prend comme paramètres d'entrée un identifiant de ressource et un ensemble d'autorisations, et renvoie l'ensemble d'autorisations dont dispose l'auteur de l'appel.
La méthode testIamPermissions()
permet de déterminer si un utilisateur doit disposer de l'accès à un outil administratif dans une application Web. Par exemple, cette méthode peut vous permettre de décider, en fonction des autorisations de l'utilisateur, d'afficher ou non des informations détaillées sur une ressource Google Cloud.
Par exemple, pour déterminer si l'utilisateur actuellement authentifié est autorisé à supprimer un projet, appelez la méthode projects.testIamPermissions()
en fournissant l'ID de projet (tel que foo-project
) et l'autorisation resourcemanager.projects.delete
en tant que paramètres d'entrée. Si l'auteur de l'appel a obtenu l'autorisation resourcemanager.projects.delete
, il est répertorié dans le corps de la réponse. Si l'auteur de l'appel ne dispose pas de cette autorisation, le corps de la réponse ne liste aucune autorisation.
La méthode testIamPermissions()
est destinée aux interfaces utilisateurs graphiques tierces qui doivent afficher les ressources Google Cloud en fonction de ce que l'utilisateur authentifié est autorisé à voir. Par exemple, la console Google Cloud utilise en interne la méthode testIamPermissions()
pour déterminer quelles ressources et fonctionnalités sont visibles pour vous après votre authentification. Différents utilisateurs bénéficient généralement de permissions différentes, et la console Google Cloud masque ou affiche les éléments en conséquence.
Avant de commencer
Enable the Resource Manager API.
Configurez l'authentification.
Select the tab for how you plan to use the samples on this page:
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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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 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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Rôles requis
Aucun rôle IAM n'est requis pour tester les autorisations.
Comment tester les autorisations
Cet exemple montre comment tester les autorisations
resourcemanager.projects.get
etresourcemanager.projects.delete
pour un projet Google Cloud. Pour tester les autorisations des autres ressources Google Cloud, utilisez la méthodetestIamPermissions()
exposée par chaque ressource. Par exemple, vous pouvez tester les autorisations IAM pour un bucket Cloud Storage.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 vous authentifier auprès de Resource Manager, configurez les identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Pour savoir comment installer et utiliser la bibliothèque cliente pour Resource Manager, consultez la page Bibliothèques clientes Resource Manager.
Cloud IAM teste les autorisations du compte de service que vous utilisez pour générer des identifiants.
Java
Pour vous authentifier auprès de Resource Manager, configurez les identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Pour savoir comment installer et utiliser la bibliothèque cliente pour Resource Manager, consultez la page Bibliothèques clientes Resource Manager.
Cloud IAM teste les autorisations du compte de service que vous utilisez pour générer des identifiants.
Python
Pour vous authentifier auprès de Resource Manager, configurez les identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Pour savoir comment installer et utiliser la bibliothèque cliente pour Resource Manager, consultez la page Bibliothèques clientes Resource Manager.
Cloud IAM teste les autorisations du compte de service que vous utilisez pour générer des identifiants.
REST
Dans cet exemple, l'utilisateur dispose d'un rôle IAM lui permettant d'obtenir des informations sur un projet, mais pas de supprimer des projets.
La méthode
projects.testIamPermissions
de l'API Resource Manager accepte une liste d'autorisations et teste celles dont dispose un compte principal.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID de votre projet Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
.
Méthode HTTP et URL :
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:testIamPermissions
Corps JSON de la requête :
{ "permissions": [ "resourcemanager.projects.get", "resourcemanager.projects.delete" ] }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "permissions": [ "resourcemanager.projects.get" ] }
Étapes suivantes
Découvrez comment attribuer, modifier et révoquer les accès des comptes principaux.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/01/07 (UTC).