Cette page explique comment refuser l'accès aux comptes principaux en les empêchant d'utiliser des autorisations IAM (Identity and Access Management) spécifiques.
Dans IAM, vous refusez les accès avec des stratégies de refus. Chaque stratégie de refus est associée à une organisation, un dossier ou un projet Google Cloud. Une stratégie de refus contient des règles de refus, qui identifient les comptes principaux et liste les autorisations qu'ils ne peuvent pas utiliser.
Les stratégies de refus sont distinctes des stratégies d'autorisation, également appelées stratégies IAM. Une stratégie d'autorisation fournit un accès aux ressources en attribuant des rôles IAM aux comptes principaux.
Vous pouvez gérer les règles de refus avec la CLI Google Cloud ou l'API REST IAM v2
.
Avant de commencer
Enable the IAM API.
Configurez l'authentification.
Select the tab for how you plan to use the samples on this 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.
Terraform
Pour utiliser les exemples Terraform 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.
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
-
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.
Node.js
Pour utiliser les exemples Node.js 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.
Consultez la présentation des stratégies de refus.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les stratégies de refus, demandez à votre administrateur de vous accorder les rôles IAM suivants sur l'organisation :
- Pour afficher les règles de refus : Examinateur des refus (
roles/iam.denyReviewer
) - Pour afficher, créer, mettre à jour et supprimer des règles de refus : Administrateur des refus (
roles/iam.denyAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ces rôles prédéfinis contiennent les autorisations requises pour gérer les stratégies de refus. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour gérer les règles de refus :
-
Pour afficher les règles de refus :
-
iam.denypolicies.get
-
iam.denypolicies.list
-
-
Pour créer, mettre à jour et supprimer des règles de refus :
-
iam.denypolicies.create
-
iam.denypolicies.delete
-
iam.denypolicies.get
-
iam.denypolicies.update
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Identifier les autorisations à refuser
Avant de créer une stratégie de refus, vous devez choisir les autorisations que vous souhaitez refuser et les comptes principaux qui doivent se voir refuser ces autorisations.
Seules certaines autorisations peuvent être refusées. Pour obtenir la liste des autorisations que vous pouvez refuser, consultez la section Autorisations compatibles avec les stratégies de refus.
Dans certains cas, vous pouvez également utiliser des groupes d'autorisations pour refuser des ensembles d'autorisations. Pour en savoir plus, consultez la section Groupes d'autorisations.
Vous gérez les stratégies de refus avec l'API REST
v2
, qui nécessite un format spécial pour les noms d'autorisations. Par exemple, l'autorisation de créer un rôle personnalisé IAM est nommée comme suit :- API
v1
:iam.roles.create
- API
v2
:iam.googleapis.com/roles.create
Identifier le point de rattachement
Chaque règle de refus est associée à une organisation, un dossier ou un projet. Lorsqu'elles sont associées à l'une de ces ressources, les règles de refus sont héritées par toutes les ressources de niveau inférieur contenues dans ce projet, ce dossier ou cette organisation. Pour utiliser des règles de refus, vous avez besoin d'un identifiant pour la ressource à laquelle la règle de refus est associée, appelée point de rattachement. Cet identifiant utilise l'un des formats du tableau suivant :
Format des points de rattachement Organisation cloudresourcemanager.googleapis.com/organizations/ORG_ID
RemplacezORG_ID
par l'ID numérique de l'organisation. Pour l'API REST, encodez l'intégralité de la valeur au format URL.Exemple pour la CLI gcloud :
cloudresourcemanager.googleapis.com/organizations/123456789012
Exemple pour l'API REST :
cloudresourcemanager.googleapis.com%2Forganizations%2F123456789012
Dossier cloudresourcemanager.googleapis.com/folders/FOLDER_ID
RemplacezFOLDER_ID
par l'ID numérique du dossier. Pour l'API REST, encodez l'intégralité de la valeur au format URL.Exemple pour la CLI gcloud :
cloudresourcemanager.googleapis.com/folders/987654321098
Exemple pour l'API REST :
cloudresourcemanager.googleapis.com%2Ffolders%2F987654321098
Projet cloudresourcemanager.googleapis.com/projects/PROJECT_ID
RemplacezPROJECT_ID
par l'ID alphanumérique ou numérique du projet. Pour l'API REST, encodez l'intégralité de la valeur au format URL.Exemple pour la CLI gcloud :
cloudresourcemanager.googleapis.com/projects/my-project
Exemple pour l'API REST :
cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project
Créer une stratégie de refus
Vous pouvez ajouter des stratégies de refus aux organisations, aux dossiers et aux projets. Chaque ressource peut comporter jusqu'à 500 stratégies de refus.
Les stratégies de refus contiennent des règles de refus qui spécifient les éléments suivants :
- Les autorisations à refuser.
- Les comptes principaux qui se voient refuser ces autorisations.
Facultatif : les comptes principaux exemptés du refus d'autorisations.
Par exemple, vous pouvez refuser une autorisation à un groupe, mais exclure des utilisateurs spécifiques appartenant à ce groupe.
Facultatif : une expression de condition qui spécifie quand les comptes principaux ne peuvent pas utiliser les autorisations. Dans les règles de refus, les expressions de condition ne peuvent utiliser que des fonctions pour les tags de ressources. Les autres fonctions et opérateurs ne sont pas acceptés.
Chaque ressource peut comporter jusqu'à 500 règles de refus pour l'ensemble des stratégies de refus qui lui sont associées.
Les stratégies de refus sont héritées via la hiérarchie des ressources. Par exemple, si vous refusez une autorisation au niveau de l'organisation, cette autorisation sera également refusée pour les dossiers et les projets de cette organisation, ainsi que pour les ressources spécifiques aux services de chaque projet.
Les stratégies de refus remplacent les stratégies d'autorisation. Si un compte principal dispose d'un rôle contenant une autorisation spécifique, mais qu'une stratégie de refus indique que le compte principal ne peut pas utiliser cette autorisation, alors il ne peut pas l'utiliser.
gcloud
Pour créer une stratégie de refus pour une ressource, commencez par créer un fichier JSON contenant la stratégie. Une stratégie de refus utilise le format suivant :
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
Indiquez les valeurs suivantes :
POLICY_NAME
: le nom à afficher pour la stratégie de refus.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: les règles de refus de la stratégie. Chaque règle de refus peut contenir les champs suivants :-
deniedPermissions
: une liste des autorisations que les comptes principaux spécifiés ne peuvent pas utiliser. Les autorisations doivent être compatibles avec les stratégies de refus.Dans certains cas, vous pouvez également utiliser des groupes d'autorisations pour refuser des ensembles d'autorisations. Pour en savoir plus, consultez la section Groupes d'autorisations.
-
deniedPrincipals
: une liste des comptes principaux qui ne peuvent pas utiliser les autorisations spécifiées. Utilisez le format APIv2
pour les identifiants des comptes principaux. -
exceptionPrincipals
: facultatif. Une liste de comptes principaux pouvant utiliser les autorisations spécifiées, même si ces comptes principaux sont inclus dansdeniedPrincipals
. Par exemple, vous pouvez utiliser ce champ afin de créer une exception pour des utilisateurs spécifiques faisant partie d'un groupe refusé. Utilisez le format APIv2
pour les identifiants des comptes principaux. -
denialCondition
: facultatif. Une expression de condition qui spécifie quand les comptes principaux ne peuvent pas utiliser les autorisations. Elle contient les champs suivants :-
expression
: une expression de condition qui utilise la syntaxe CEL (Common Expression Language). L'expression doit utiliser les fonctions CEL pour évaluer les tags des ressources. Les autres fonctions et opérateurs ne sont pas compatibles. -
title
: facultatif. Un bref résumé de l'objectif de la condition. -
description
: facultatif. Une description plus longue de la condition.
-
Pour obtenir des exemples de règles de refus, consultez la section Cas d'utilisation courants.
-
Par exemple, la stratégie de refus suivante contient une règle de refus, qui refuse une autorisation pour l'utilisateur
lucian@example.com
:{ "displayName": "My deny policy.", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Exécutez ensuite la commande
gcloud iam policies create
:gcloud iam policies create POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Indiquez les valeurs suivantes :
-
POLICY_ID
: l'identifiant de la stratégie de refus. -
ATTACHMENT_POINT
: identifiant de la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page. -
POLICY_FILE
: le chemin d'accès au fichier JSON contenant la stratégie de refus.
Par défaut, si cette commande aboutit, elle n'affiche aucun résultat. Pour afficher une réponse détaillée, ajoutez l'option
--format=json
à la commande.Par exemple, la commande suivante crée une stratégie de refus nommée
my-deny-policy
pour le projetmy-project
, à l'aide d'un fichier nommépolicy.json
:gcloud iam policies create my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --policy-file=policy.json
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.
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.
Node.js
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 Node.js.
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
policies.createPolicy
crée une stratégie de refus pour une ressource.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
ENCODED_ATTACHMENT_POINT
: identifiant encodé au format URL pour la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page. POLICY_ID
: un identifiant pour la stratégie de refus.POLICY_NAME
: le nom à afficher pour la stratégie de refus.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: les règles de refus de la stratégie. Chaque règle de refus peut contenir les champs suivants :-
deniedPermissions
: une liste des autorisations que les comptes principaux spécifiés ne peuvent pas utiliser. Les autorisations doivent être compatibles avec les stratégies de refus.Dans certains cas, vous pouvez également utiliser des groupes d'autorisations pour refuser des ensembles d'autorisations. Pour en savoir plus, consultez la section Groupes d'autorisations.
-
deniedPrincipals
: une liste des comptes principaux qui ne peuvent pas utiliser les autorisations spécifiées. Utilisez le format APIv2
pour les identifiants des comptes principaux. -
exceptionPrincipals
: facultatif. Une liste de comptes principaux pouvant utiliser les autorisations spécifiées, même si ces comptes principaux sont inclus dansdeniedPrincipals
. Par exemple, vous pouvez utiliser ce champ afin de créer une exception pour des utilisateurs spécifiques faisant partie d'un groupe refusé. Utilisez le format APIv2
pour les identifiants des comptes principaux. -
denialCondition
: facultatif. Une expression de condition qui spécifie quand les comptes principaux ne peuvent pas utiliser les autorisations. Elle contient les champs suivants :-
expression
: une expression de condition qui utilise la syntaxe CEL (Common Expression Language). L'expression doit utiliser les fonctions CEL pour évaluer les tags des ressources. Les autres fonctions et opérateurs ne sont pas compatibles. -
title
: facultatif. Un bref résumé de l'objectif de la condition. -
description
: facultatif. Une description plus longue de la condition.
-
Pour obtenir des exemples de règles de refus, consultez la section Cas d'utilisation courants.
-
Méthode HTTP et URL :
POST https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies?policyId=POLICY_ID
Corps JSON de la requête :
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01", "metadata": { "@type": "type.googleapis.com/google.iam.v2.PolicyOperationMetadata", "createTime": "2022-06-28T19:06:12.455151Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-06-28T22:26:21.968687Z" "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] } }
La réponse identifie une opération de longue durée. Vous pouvez surveiller l'état de l'opération de longue durée pour savoir quand elle est terminée. Pour plus de détails, consultez la section Vérifier l'état d'une opération de longue durée sur cette page.
Lister les stratégies de refus
Une ressource peut comporter plusieurs stratégies de refus. Vous pouvez lister toutes les stratégies de refus associées à une ressource, puis afficher chaque stratégie de refus pour voir les règles de refus de chaque stratégie.
gcloud
Pour lister les stratégies de refus attribuées à une ressource, exécutez la commande
gcloud iam policies list
:gcloud iam policies list \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Indiquez la valeur suivante :
-
ATTACHMENT_POINT
: identifiant de la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page.
Par exemple, la commande suivante liste les stratégies de refus associées à une organisation dont l'ID numérique est
123456789012
:gcloud iam policies list \ --attachment-point=cloudresourcemanager.googleapis.com/organizations/123456789012 \ --kind=denypolicies \ --format=json
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.
Node.js
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 Node.js.
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
policies.listPolicies
liste les stratégies de refus d'une ressource.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
ENCODED_ATTACHMENT_POINT
: identifiant encodé au format URL pour la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "policies": [ { "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "createTime": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-06-28T22:26:21.968687Z" }, { "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-2", "uid": "8465d710-ea20-0a08-d92c-b2a3ebf766ab", "kind": "DenyPolicy", "displayName": "My second deny policy.", "createTime": "2022-06-05T19:21:53.595455Z", "updateTime": "2022-06-05T19:21:53.595455Z" }, { "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-3", "uid": "ee9f7c2f-7e8c-b05c-d4e5-e03bfb2954e0", "kind": "DenyPolicy", "displayName": "My third deny policy.", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z" } ] }
Afficher une stratégie de refus
Vous pouvez afficher une stratégie de refus pour voir les règles de refus qu'elle contient, y compris les autorisations refusées et les comptes principaux qui ne peuvent pas utiliser ces autorisations.
gcloud
Pour obtenir la stratégie de refus pour une ressource, exécutez la commande
gcloud iam policies get
:gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Indiquez les valeurs suivantes :
-
POLICY_ID
: l'identifiant de la stratégie de refus. -
ATTACHMENT_POINT
: identifiant de la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page.
Par exemple, la commande suivante permet d'obtenir la stratégie de refus nommée
my-deny-policy
pour le projetmy-project
et l'enregistre dans un fichier nommépolicy.json
:gcloud iam policies get my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --format=json \ > ./policy.json
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.
Node.js
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 Node.js.
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
policies.get
permet d'obtenir une stratégie de refus pour une ressource.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
ENCODED_ATTACHMENT_POINT
: identifiant encodé au format URL pour la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page. POLICY_ID
: un identifiant pour la stratégie de refus.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Mettre à jour une stratégie de refus
Après avoir créé une stratégie de refus, vous pouvez mettre à jour les règles de refus qu'elle contient, ainsi que son nom à afficher.
Pour mettre à jour une stratégie de refus, utilisez le modèle lecture-modification-écriture :
- Lisez la version actuelle de la stratégie.
- Modifiez les informations de la stratégie si nécessaire.
- Écrivez la stratégie mise à jour.
Lire la stratégie de refus
gcloud
Pour obtenir la stratégie de refus pour une ressource, exécutez la commande
gcloud iam policies get
:gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Indiquez les valeurs suivantes :
-
POLICY_ID
: l'identifiant de la stratégie de refus. -
ATTACHMENT_POINT
: identifiant de la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page.
Par exemple, la commande suivante permet d'obtenir la stratégie de refus nommée
my-deny-policy
pour le projetmy-project
et l'enregistre dans un fichier nommépolicy.json
:gcloud iam policies get my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --format=json \ > ./policy.json
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.
Node.js
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 Node.js.
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
policies.get
permet d'obtenir une stratégie de refus pour une ressource.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
ENCODED_ATTACHMENT_POINT
: identifiant encodé au format URL pour la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page. POLICY_ID
: un identifiant pour la stratégie de refus.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Modifier la stratégie de refus
Pour modifier la stratégie de refus, vous devez modifier la copie de la stratégie que vous avez lue précédemment à partir d'IAM. Vous pouvez mettre à jour le nom à afficher ou ajouter, modifier ou supprimer des règles de refus. Les modifications ne prendront effet qu'après avoir écrit la stratégie mise à jour.
Par exemple, vous pouvez ajouter une autorisation à une règle de refus existante :
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2021-10-05T19:22:26.770543Z", "updateTime": "2021-10-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
Écrire la stratégie de refus mise à jour
Après avoir modifié la stratégie de refus localement, vous devez écrire la stratégie de refus mise à jour dans IAM.
Chaque stratégie de refus contient un champ
etag
qui identifie la version de la stratégie. Leetag
change chaque fois que vous mettez à jour la stratégie. Lorsque vous écrivez la stratégie mise à jour, leetag
de votre requête doit correspondre auetag
actuel stocké dans IAM. Si les valeurs ne correspondent pas, la requête échoue. Cette fonctionnalité permet d'éviter que les modifications simultanées ne s'écrasent les unes les autres.gcloud
Pour mettre à jour la stratégie de refus pour une ressource, exécutez la commande
gcloud iam policies update
:gcloud iam policies update POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Indiquez les valeurs suivantes :
-
POLICY_ID
: l'identifiant de la stratégie de refus. -
ATTACHMENT_POINT
: identifiant de la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page. -
POLICY_FILE
: le chemin d'accès au fichier JSON contenant la stratégie de refus.
Par défaut, si cette commande aboutit, elle n'affiche aucun résultat. Pour afficher une réponse détaillée, ajoutez l'option
--format=json
à la commande.Par exemple, la commande suivante met à jour une stratégie de refus nommée
my-deny-policy
pour le projetmy-project
, à l'aide d'un fichier nommépolicy.json
:gcloud iam policies update my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --policy-file=policy.json
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.
Node.js
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 Node.js.
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
policies.update
met à jour une stratégie de refus.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
ENCODED_ATTACHMENT_POINT
: identifiant encodé au format URL pour la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page. POLICY_ID
: un identifiant pour la stratégie de refus.-
POLICY
: la stratégie de refus mise à jour.Par exemple, pour ajouter une autorisation à la stratégie présentée à l'étape précédente, remplacez
POLICY
par ce qui suit :{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
Méthode HTTP et URL :
PUT https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Corps JSON de la requête :
POLICY
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8b2d0ab2daf1ff01", "metadata": { "@type": "type.googleapis.com/google.iam.v2.PolicyOperationMetadata", "createTime": "2021-10-05T22:26:21.968687Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTgxNTIxNDE3NTYxNjQxODYxMTI=", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T22:26:21.968687Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] } }
La réponse identifie une opération de longue durée. Vous pouvez surveiller l'état de l'opération de longue durée pour savoir quand elle est terminée. Pour plus de détails, consultez la section Vérifier l'état d'une opération de longue durée sur cette page.
Supprimer une stratégie de refus
Si vous ne souhaitez plus appliquer les règles d'une stratégie de refus, vous pouvez supprimer la stratégie de refus.
Vous pouvez éventuellement spécifier le
etag
pour la version de stratégie que vous supprimez. Si vous spécifiez leetag
, il doit correspondre auetag
actuel stocké par IAM. Si les valeurs ne correspondent pas, la requête échoue. Vous pouvez utiliser cette fonctionnalité pour vous assurer de supprimer la stratégie souhaitée, plutôt qu'une version mise à jour de cette stratégie.Si vous omettez le
etag
dans la requête, IAM supprime la stratégie sans condition.gcloud
Pour supprimer une stratégie de refus d'une ressource, exécutez la commande
gcloud iam policies delete
:gcloud iam policies delete POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies
Indiquez les valeurs suivantes :
-
POLICY_ID
: l'identifiant de la stratégie de refus. -
ATTACHMENT_POINT
: identifiant de la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page.
Vous pouvez éventuellement ajouter l'option
--etag=ETAG
. RemplacezETAG
par la valeuretag
actuelle pour la stratégie de refus.Par défaut, si cette commande aboutit, elle n'affiche aucun résultat. Pour afficher une réponse détaillée, ajoutez l'option
--format=json
à la commande.Par exemple, la commande suivante supprime une stratégie de refus nommée
my-deny-policy
du projetmy-project
:gcloud iam policies delete my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies
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.
Node.js
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 Node.js.
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
policies.delete
supprime une stratégie de refus d'une ressource.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
ENCODED_ATTACHMENT_POINT
: identifiant encodé au format URL pour la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page. POLICY_ID
: un identifiant pour la stratégie de refus.-
ETAG
: facultatif. Un identifiant pour la version de la stratégie. Si cette valeur est présente, elle doit correspondre à la valeuretag
actuelle de la stratégie.
Méthode HTTP et URL :
DELETE https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID?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": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8223fe308bf1ff01", "metadata": { "@type": "type.googleapis.com/google.iam.v2.PolicyOperationMetadata", "createTime": "2021-10-05T19:45:00.133311Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-07-05T19:45:00.133311Z", "deleteTime": "2022-07-05T19:45:00.133311Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] } }
La réponse identifie une opération de longue durée. Vous pouvez surveiller l'état de l'opération de longue durée pour savoir quand elle est terminée. Pour plus de détails, consultez la section Vérifier l'état d'une opération de longue durée sur cette page.
Vérifier l'état d'une opération de longue durée
Lorsque vous utilisez l'API REST ou les bibliothèques clientes, toute méthode modifiant une stratégie de refus renvoie une opération de longue durée, ou LRO. L'opération de longue durée suit l'état de la requête et indique si la modification de la stratégie est terminée.
Go
Les exemples de code sur cette page montrent comment attendre la fin d'une opération de longue durée, puis accéder à son résultat.
Java
Les exemples de code sur cette page montrent comment attendre la fin d'une opération de longue durée, puis accéder à son résultat.
Node.js
Les exemples de code sur cette page montrent comment attendre la fin d'une opération de longue durée, puis accéder à son résultat.
Python
Les exemples de code sur cette page montrent comment attendre la fin d'une opération de longue durée, puis accéder à son résultat.
REST
La méthode
policies.operations.get
renvoie l'état d'une opération de longue durée.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
ENCODED_ATTACHMENT_POINT
: identifiant encodé au format URL pour la ressource à laquelle la règle de refus est associée. Pour savoir comment mettre en forme cette valeur, consultez la section Identifier le point de rattachement de cette page. -
OPERATION_ID
: l'identifiant pour l'opération. Vous recevez cet identifiant dans la réponse à votre requête d'origine, dans le nom de l'opération. Utilisez la valeur hexadécimale à la fin du nom de l'opération. Par exemple,89cb3e508bf1ff01
.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/operations/OPERATION_ID
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01", "done": true }
Si le champ
done
de l'opération n'est pas présent, continuez à surveiller son état en obtenant l'opération de façon répétée. Utilisez un intervalle exponentiel tronqué entre les tentatives pour introduire un délai entre chaque requête. Lorsque le champdone
est défini surtrue
, l'opération est terminée et vous pouvez cesser de l'obtenir.Étape suivante
- Identifiez les autorisations compatibles avec les stratégies de refus.
- Obtenez le format des identifiants des comptes principaux dans les stratégies de refus.
- Découvrez comment résoudre les problèmes d'accès avec des stratégies de refus.
- Apprenez-en plus sur les refus d'accès aux 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 2024/11/21 (UTC).