Dans les grandes organisations, il peut être utile de laisser les équipes gérer indépendamment les stratégies d'autorisation pour leurs ressources. Toutefois, permettre à un compte principal d'accorder ou de révoquer tous les rôles IAM peut considérablement augmenter les risques liés à la sécurité.
Vous pouvez définir des limites sur les rôles qu'un compte principal peut accorder et révoquer à l'aide des conditions IAM (Identity and Access Management) et de l'attribut d'API iam.googleapis.com/modifiedGrantsByRole
. Ces limites vous permettent de créer des administrateurs IAM limités pouvant gérer les stratégies d'autorisation de leur propre équipe, mais uniquement dans les limites que vous avez définies.
Avant de commencer
Enable the Resource Manager API.
Familiarisez-vous avec la structure des stratégies d'autorisation.
Consultez la documentation relative aux conditions IAM.
Autorisations requises
Pour obtenir les autorisations nécessaires pour créer des administrateurs IAM limités pour un projet, un dossier ou une organisation, demandez à votre administrateur de vous accorder les rôles IAM suivants sur la ressource pour laquelle vous souhaitez créer un administrateur IAM limité (projet, dossier ou organisation) :
- Pour créer un administrateur IAM limité pour un projet : administrateur IAM de projet (
roles/resourcemanager.projectIamAdmin
) - Pour créer un administrateur IAM limité pour un dossier : administrateur de dossier (
roles/resourcemanager.folderAdmin
) - Pour créer un administrateur IAM limité pour un projet, un dossier ou une organisation : administrateur de l'organisation (
roles/resourcemanager.organizationAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour créer des administrateurs IAM limités pour un projet, un dossier ou une organisation. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer des administrateurs IAM limités pour un projet, un dossier ou une organisation :
-
Pour créer un administrateur IAM limité pour un projet :
-
resourcemanager.projects.getIamPolicy
-
resourcemanager.projects.setIamPolicy
-
-
Pour créer un administrateur IAM limité pour un dossier :
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
-
Pour créer un administrateur IAM limité pour une organisation
-
resourcemanager.organizations.getIamPolicy
-
resourcemanager.organizations.setIamPolicy
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Cas d'utilisation courants
Les sections suivantes décrivent comment utiliser l'attribution de rôles limitée pour activer la gestion en libre-service des stratégies d'autorisation.
Créer des administrateurs IAM limités
Imaginons un scénario dans lequel vous souhaitez autoriser un utilisateur, Finn (finn@example.com
), à agir en tant qu'administrateur IAM limité pour votre projet. Vous souhaitez que Finn puisse accorder et révoquer uniquement les rôles Administrateur App Engine (roles/appengine.appAdmin
) et Lecteur App Engine (roles/appengine.appViewer
) pour votre projet.
Pour accorder cette fonctionnalité limitée, vous accordez de manière conditionnelle à Finn le rôle d'administrateur IAM de projet (roles/resourcemanager.projectIamAdmin
). Le rôle d'administrateur IAM de projet permet à Finn d'accorder et de révoquer des rôles IAM, et la condition limite les rôles que Finn peut accorder et révoquer :
{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "finn@example.com" ], "role": "roles/resourcemanager.projectIamAdmin", "condition": { "title": "only_appengine_admin_viewer_roles", "description": "Only allows changes to role bindings with the App Engine Admin or Viewer roles", "expression": "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/appengine.appAdmin', 'roles/appengine.appViewer'])" } } ] }
Cette liaison de rôle conditionnelle permet à Finn d'effectuer les opérations suivantes :
- Révoquez les rôles Administrateur App Engine et Lecteur App Engine du projet.
- Révoquez les rôles Administrateur App Engine et Lecteur App Engine du projet.
- Ajoutez, supprimez ou modifiez des conditions pour les liaisons de rôle au niveau du projet qui attribuent les rôles Administrateur App Engine et Lecteur App Engine.
- Effectuez d'autres actions autorisées par le rôle Administrateur IAM du projet qui ne modifient pas la stratégie d'autorisation du projet. Par exemple, Finn peut utiliser la méthode
projects.getIamPolicy
pour obtenir la stratégie d'autorisation du projet.
Cette liaison de rôle conditionnelle ne permet pas à Finn d'effectuer les opérations suivantes :
- Modifier les stratégies d'autorisation pour des ressources autres que le projet
- Accordez des rôles autres que les rôles Administrateur App Engine ou Lecteur App Engine.
- Révoquez les rôles autres que les rôles Administrateur App Engine ou Lecteur App Engine.
- Ajoutez, supprimez ou modifiez des conditions pour les liaisons de rôle qui n'accordent pas les rôles Administrateur App Engine ou Lecteur App Engine.
Autoriser les utilisateurs à gérer des administrateurs IAM limités
Imaginons, par exemple, que vous souhaitiez créer un utilisateur, Lila, un administrateur IAM limité pour son équipe. Vous souhaitez que Lila ne puisse accorder et révoquer que le rôle d'administrateur Compute (roles/compute.admin
) pour son projet.
Vous souhaitez également que Lila sélectionne d'autres utilisateurs pour agir en tant qu'administrateurs IAM limités. En d'autres termes, vous souhaitez permettre à d'autres utilisateurs d'accorder et de révoquer uniquement le rôle d'administrateur Compute.
Vous pensez peut-être que la solution consiste à attribuer à Lila le rôle d'administrateur de projet IAM (roles/resourcemanager.projectIamAdmin
), puis à lui permettre d'accorder ou de révoquer ce rôle pour d'autres personnes. Toutefois, si vous accordez à Lila le rôle d'administrateur de projet IAM, elle peut supprimer la condition de son propre rôle et s'autoriser à accorder ou à révoquer n'importe quel rôle IAM.
Pour éviter cette transmission de privilèges, créez un groupe Google, iam-compute-admins@example.com
, pour les administrateurs IAM limités du projet. Ensuite, ajoutez Lila au groupe et rendez-la gestionnaire de groupe.
Après avoir créé le groupe, vous lui accordez de manière conditionnelle le rôle d'administrateur de projet IAM (roles/resourcemanager.projectIamAdmin
). Le rôle d'administrateur de projet IAM permet aux membres du groupe d'accorder et de révoquer des rôles IAM, et la condition limite les rôles qu'ils peuvent accorder et révoquer :
{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "iam-compute-admins@example.com" ], "role": "roles/resourcemanager.projectIamAdmin", "condition": { "title": "only_compute_admin_role", "description": "Only allows changes to role bindings for the Compute Admin role", "expression": "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/compute.admin'])" } } ] }
En tant que membre du groupe iam-compute-admins@example.com
, Lila peut effectuer les opérations suivantes :
- Accorder le rôle d'administrateur Compute du projet en ajoutant une nouvelle liaison pour le rôle, ou en ajoutant un compte principal à une liaison existante pour le rôle
- Révoquer le rôle d'administrateur Compute en supprimant une liaison existante pour le rôle ou en supprimant un compte principal d'une liaison existante pour le rôle
- Modifier les autorisations pour le rôle d'administrateur Compute en ajoutant, supprimant ou modifiant des conditions associées aux liaisons du rôle
- Effectuez d'autres actions autorisées par le rôle Administrateur IAM du projet qui ne modifient pas la stratégie d'autorisation du projet. Par exemple, elle peut utiliser la méthode
projects.getIamPolicy
pour obtenir la stratégie d'autorisation du projet.
En tant qu'administrateur du groupe iam-compute-admins@example.com
, Lila peut autoriser d'autres utilisateurs à accorder ou à révoquer le rôle d'administrateur Compute en les ajoutant au groupe iam-compute-admins@example.com
.
Lila ne peut pas effectuer les opérations suivantes :
- S'autoriser à accorder ou à révoquer d'autres rôles
- Modifier les stratégies d'autorisation pour des ressources autres que le projet
- Accorder des rôles autres que le rôle d'administrateur Compute
- Révoquer les rôles autres que celui d'administrateur Compute
- Ajouter, supprimer ou modifier des conditions pour les liaisons de rôles qui n'accordent pas le rôle d'administrateur Compute.
Limiter l'attribution de rôles
Les sections suivantes expliquent comment autoriser des comptes principaux à accorder ou à révoquer uniquement certains rôles.
Écrire une expression de condition pour limiter l'attribution de rôles
Pour limiter la capacité d'un compte principal à attribuer des rôles, écrivez une expression de condition qui spécifie les rôles qu'un compte principal peut accorder ou révoquer.
Utilisez le format suivant pour votre expression de condition :
api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(roles)
Cette expression effectue les opérations suivantes :
Récupérer l'attribut de l'API
iam.googleapis.com/modifiedGrantsByRole
à l'aide de la fonctionapi.getAttribute()
Pour une requête permettant de définir la stratégie d'autorisation d'une ressource, cet attribut contient les noms de rôle des liaisons modifiées par la requête. Pour les autres types de requêtes, l'attribut n'est pas défini. Dans ces cas, la fonction renvoie la valeur par défaut (
[]
).Utilise la fonction Common Expression Language
hasOnly()
pour définir et appliquer les rôles que le compte principal est autorisé à accorder ou à révoquer.L'entrée de la fonction
hasOnly()
est une liste des rôles que le compte principal est autorisé à accorder ou à révoquer. Si les rôles de l'attributiam.googleapis.com/modifiedGrantsByRole
sont inclus dans cette liste, la fonction renvoietrue
. Si elles ne sont pas égales, la fonction renvoiefalse
.Si l'attribut
iam.googleapis.com/modifiedGrantsByRole
contient la valeur par défaut ([]
), la fonction renvoietrue
, car[]
ne contient aucun rôle non inclus dans la liste.
Pour personnaliser cette expression, remplacez roles
par la liste des rôles que le compte principal peut accorder ou révoquer. Par exemple, pour permettre au compte principal d'accorder ou de révoquer uniquement les rôles de publication Pub/Sub (roles/pubsub.editor
) et d'éditeur Pub/Sub (roles/pubsub.publisher
), utilisez la valeur ['roles/pubsub.editor', 'roles/pubsub.publisher']
.
Vous pouvez inclure jusqu'à 10 valeurs dans la liste des rôles autorisés. Toutes ces valeurs doivent être des constantes de chaîne.
Opérateurs logiques pour les instructions hasOnly()
N'utilisez pas les opérateurs &&
ou ||
pour joindre plusieurs instructions hasOnly()
dans une seule condition. Dans ce cas, les requêtes qui attribuent ou révoquent plusieurs rôles peuvent échouer, même si le compte principal peut attribuer ou révoquer ces rôles individuellement.
Par exemple, considérons la condition suivante :
api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []) .hasOnly(['roles/pubsub.editor']) || api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []) .hasOnly(['roles/pubsub.publisher'])
Cette condition renvoie true
si la requête accorde le rôle roles/pubsub.editor
ou roles/pubsub.publisher
, et false
si la requête accorde à la fois les rôles roles/pubsub.editor
et roles/pubsub.publisher
.
Limiter l'attribution de rôles à l'aide de liaisons de rôles conditionnelles
Pour permettre à un compte principal de n'accorder ou de révoquer que certains rôles, utilisez l'expression de condition de la section précédente pour créer une liaison de rôle conditionnelle. Ajoutez ensuite la liaison de rôle conditionnelle à la stratégie d'autorisation d'une ressource.
Sélectionnez une ressource qui représente le champ d'application pour lequel un compte principal peut attribuer et révoquer des rôles :
- Si vous souhaitez autoriser un compte principal à accorder et révoquer certains rôles pour toutes les ressources d'une organisation, sélectionnez une organisation.
- Si vous souhaitez autoriser un compte principal à accorder et révoquer certains rôles pour toutes les ressources d'un dossier, sélectionnez un dossier.
- Si vous souhaitez autoriser un compte principal à accorder et révoquer certains rôles pour toutes les ressources d'un projet, sélectionnez un projet.
Sélectionnez un rôle permettant à un compte principal de définir la stratégie d'autorisation pour le type de ressource que vous avez sélectionné (projet, dossier ou organisation). Pour suivre le principe du moindre privilège, choisissez l'un des rôles prédéfinis suivants :
- Projets : administrateur IAM de projets (
roles/resourcemanager.projectIamAdmin
) - Dossiers : administrateur IAM de dossiers (
roles/resourcemanager.folderIamAdmin
) Organisations : administrateur de l'organisation (
roles/resourcemanager.organizationAdmin
)
Vous pouvez également choisir un rôle personnalisé qui inclut les autorisations
resourcemanager.resource-type.setIamPolicy
etresourcemanager.resource-type.getIamPolicy
, oùresource-type
correspond àproject
,folder
ouorganization
.- Projets : administrateur IAM de projets (
Accordez de manière conditionnelle à un compte principal le rôle que vous avez choisi pour le projet, le dossier ou l'organisation que vous avez sélectionné.
La nouvelle stratégie d'autorisation est appliquée et votre compte principal ne peut modifier les liaisons que pour les rôles que vous avez autorisés.
Console
Dans la console Google Cloud, accédez à la page IAM.
Assurez-vous que le nom de votre projet, dossier ou organisation apparaît dans le sélecteur de ressources en haut de la page. Le sélecteur de ressources indique le projet, le dossier ou l'organisation dans lequel vous travaillez actuellement.
Si vous ne voyez pas le nom de votre ressource, cliquez sur le sélecteur de ressource, puis sélectionnez votre ressource.
Dans la liste des comptes principaux, recherchez celui qui accorde et révoque les rôles, puis cliquez sur le bouton
.Dans le panneau Modifier les autorisations, sélectionnez le rôle que vous avez choisi précédemment. Puis sous Condition IAM (facultatif), cliquez sur Ajouter une condition IAM.
Dans le panneau Modifier la condition, saisissez un titre et une description facultative pour la condition.
Cliquez sur l'onglet Éditeur de conditions, puis saisissez l'expression que vous avez écrite dans Écrire une expression de condition pour limiter l'attribution des rôles. Cette expression limite les rôles que le compte principal peut accorder ou révoquer.
Par exemple, l'expression de condition suivante limite le compte principal à accorder et à révoquer les rôles d'Éditeur Pub/Sub (
roles/pubsub.editor
etroles/pubsub.publisher
) :api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
Avertissement : N'incluez pas les types de rôles suivants dans la liste des rôles autorisés :
-
Rôles disposant d'autorisations pour accorder et révoquer les rôles IAM (c'est-à-dire, les rôles avec des noms d'autorisation se terminant par
setIamPolicy
) -
Rôles personnalisés que l'administrateur IAM limité peut modifier. Par exemple, si l'administrateur IAM limité dispose également du rôle d'administrateur de rôle (
roles/iam.roleAdmin
) sur un projet, ne l'autorisez pas à accorder ou à révoquer les rôles personnalisés au niveau du projet.
Les administrateurs IAM limités qui peuvent accorder et révoquer ces types de rôles peuvent s'accorder eux-mêmes l'autorisation d'accorder et de révoquer tous les rôles IAM. Pour en savoir plus, consultez la section Écrire une expression de condition pour limiter l'attribution de rôles.
-
Rôles disposant d'autorisations pour accorder et révoquer les rôles IAM (c'est-à-dire, les rôles avec des noms d'autorisation se terminant par
Cliquez sur Enregistrer pour appliquer la condition.
Une fois le panneau Modifier la condition fermé, cliquez sur Enregistrer dans le panneau Modifier les autorisations pour mettre à jour votre stratégie d'autorisation.
gcloud
Les stratégies d'autorisation sont définies à l'aide du modèle lecture-modification-écriture.
Consultez la stratégie d'autorisation associée à la ressource :
Exécutez la commande
get-iam-policy
. Cette commande obtient la stratégie d'autorisation actuelle de la ressource.Commande :
gcloud resource-type get-iam-policy resource-id --format=json > path
Remplacez les valeurs suivantes :
resource-type
: type de ressource pour lequel un compte principal peut accorder ou révoquer des rôles. Utilisez l'un des éléments suivants :projects
,resource-manager folders
ouorganizations
.resource-id
: votre projet, dossier ou ID Google Cloudpath
: chemin d'accès au fichier vers lequel télécharger la stratégie d'autorisation
La stratégie d'autorisation est enregistrée au format JSON, par exemple :
{ "bindings": [ { "members": [ "user:project-owner@example.com" ], "role": "roles/owner" } ], "etag": "BwWKmjvelug=", "version": 1 }
Ensuite, modifiez la stratégie d'autorisation.
Pour permettre à un compte principal de ne modifier que les liaisons de certains rôles, ajoutez la liaison de rôle conditionnelle en surbrillance :
{ "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "principal" ], "role": "role", "condition": { "title": "title", "description": "description", "expression": "expression" } } ], "etag": "BwWKmjvelug=", "version": 3 }
Remplacez les valeurs suivantes :
principal
: compte principal qui accorde ou révoque certains rôles. Par exemple,user:my-user@example.com
. Pour connaître les formats de chaque type de compte principal, consultez la documentation de référence surBinding
.role
: rôle que vous avez choisi lors des étapes précédentes. Ce rôle doit inclure l'autorisationsetIamPolicy
pour le type de ressource que vous avez choisi.title
: chaîne décrivant brièvement la condition. Par exemple,only_pubsub_roles
.description
: facultatif. Une description supplémentaire de la condition. Par exemple,Only allows granting/revoking the Pub/Sub editor and publisher roles
.expression
: expression que vous avez écrite dans la section Écrire une expression de condition pour limiter l'attribution de rôles. Cette expression limite les rôles que le compte principal peut accorder ou révoquer.Par exemple, l'expression de condition suivante limite le compte principal à accorder et à révoquer les rôles d'Éditeur Pub/Sub (
roles/pubsub.editor
etroles/pubsub.publisher
) :api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
Avertissement : N'incluez pas les types de rôles suivants dans la liste des rôles autorisés :
-
Rôles disposant d'autorisations pour accorder et révoquer les rôles IAM (c'est-à-dire, les rôles avec des noms d'autorisation se terminant par
setIamPolicy
) -
Rôles personnalisés que l'administrateur IAM limité peut modifier. Par exemple, si l'administrateur IAM limité dispose également du rôle d'administrateur de rôle (
roles/iam.roleAdmin
) sur un projet, ne l'autorisez pas à accorder ou à révoquer les rôles personnalisés au niveau du projet.
Les administrateurs IAM limités qui peuvent accorder et révoquer ces types de rôles peuvent s'accorder eux-mêmes l'autorisation d'accorder et de révoquer tous les rôles IAM. Pour en savoir plus, consultez la section Écrire une expression de condition pour limiter l'attribution de rôles.
-
Rôles disposant d'autorisations pour accorder et révoquer les rôles IAM (c'est-à-dire, les rôles avec des noms d'autorisation se terminant par
Enfin, écrivez la stratégie d'autorisation mise à jour :
Définissez la nouvelle stratégie d'autorisation en exécutant la commande
set-iam-policy
pour la ressource :gcloud resource-type set-iam-policy resource-id path
Remplacez les valeurs suivantes :
resource-type
: type de ressource pour lequel un compte principal peut accorder ou révoquer des rôles. Utilisez l'un des éléments suivants :projects
,resource-manager folders
ouorganizations
.resource-id
: votre projet, dossier ou ID Google Cloudpath
: chemin d'accès au fichier contenant la stratégie d'autorisation mise à jour
La nouvelle stratégie d'autorisation est appliquée et le compte principal ne peut modifier les liaisons que pour les rôles que vous avez autorisés.
REST
Les stratégies d'autorisation sont définies à l'aide du modèle lecture-modification-écriture.
Consultez la stratégie d'autorisation associée à la ressource :
La méthode
getIamPolicy
de l'API Resource Manager permet d'obtenir la stratégie d'autorisation d'un projet, d'un dossier ou d'une organisation.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
API_VERSION
: version de l'API à utiliser. Pour les projets et les organisations, utilisezv1
. Pour les dossiers, utilisezv2
.RESOURCE_TYPE
: type de ressource dont vous souhaitez gérer la stratégie. Utilisez la valeurprojects
,folders
ouorganizations
.RESOURCE_ID
: ID du projet, de l'organisation ou du dossier Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les ID de dossier et d'organisation sont numériques, tels que123456789012
.POLICY_VERSION
: version de la stratégie à renvoyer. Les requêtes doivent spécifier la version de stratégie la plus récente, qui est la version 3. Pour plus d'informations, consultez la section Spécifier une version de stratégie lors de l'obtention d'une stratégie.
Méthode HTTP et URL :
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
Corps JSON de la requête :
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient la stratégie d'autorisation de la ressource. Exemple :
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:my-user@example.com" ] } ] }
Ensuite, modifiez la stratégie d'autorisation.
Ajoutez une liaison de rôle conditionnelle permettant à un compte principal d'accorder et de révoquer uniquement certains rôles. Veillez à remplacer la valeur du champ
version
par la valeur3
:{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "PRINCIPAL" ], "role": "ROLE", "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ] }
PRINCIPAL
: compte principal qui accorde ou révoque certains rôles. Par exemple,user:my-user@example.com
. Pour connaître les formats de chaque type de compte principal, consultez la documentation de référence surBinding
.ROLE
: rôle que vous avez choisi lors des étapes précédentes. Ce rôle doit inclure l'autorisationsetIamPolicy
pour le type de ressource que vous avez choisi.TITLE
: chaîne décrivant brièvement la condition. Par exemple,only_pubsub_roles
.DESCRIPTION
: facultatif. Une description supplémentaire de la condition. Par exemple,Only allows granting/revoking the Pub/Sub editor and publisher roles
.EXPRESSION
: expression que vous avez écrite dans la section Écrire une expression de condition pour limiter l'attribution de rôles. Cette expression limite les rôles que le compte principal peut accorder ou révoquer.Par exemple, l'expression de condition suivante limite le compte principal à accorder et à révoquer les rôles d'Éditeur Pub/Sub (
roles/pubsub.editor
etroles/pubsub.publisher
) :api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
Avertissement : N'incluez pas les types de rôles suivants dans la liste des rôles autorisés :
-
Rôles disposant d'autorisations pour accorder et révoquer les rôles IAM (c'est-à-dire, les rôles avec des noms d'autorisation se terminant par
setIamPolicy
) -
Rôles personnalisés que l'administrateur IAM limité peut modifier. Par exemple, si l'administrateur IAM limité dispose également du rôle d'administrateur de rôle (
roles/iam.roleAdmin
) sur un projet, ne l'autorisez pas à accorder ou à révoquer les rôles personnalisés au niveau du projet.
Les administrateurs IAM limités qui peuvent accorder et révoquer ces types de rôles peuvent s'accorder eux-mêmes l'autorisation d'accorder et de révoquer tous les rôles IAM. Pour en savoir plus, consultez la section Écrire une expression de condition pour limiter l'attribution de rôles.
-
Rôles disposant d'autorisations pour accorder et révoquer les rôles IAM (c'est-à-dire, les rôles avec des noms d'autorisation se terminant par
Enfin, écrivez la stratégie d'autorisation mise à jour :
La méthode
setIamPolicy
de l'API Resource Manager définit la stratégie d'autorisation de la requête comme nouvelle stratégie d'autorisation pour le projet, le dossier ou l'organisation.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
API_VERSION
: version de l'API à utiliser. Pour les projets et les organisations, utilisezv1
. Pour les dossiers, utilisezv2
.RESOURCE_TYPE
: type de ressource dont vous souhaitez gérer la stratégie. Utilisez la valeurprojects
,folders
ouorganizations
.RESOURCE_ID
: ID du projet, de l'organisation ou du dossier Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les ID de dossier et d'organisation sont numériques, tels que123456789012
.-
POLICY
: représentation JSON de la stratégie que vous souhaitez définir. Pour en savoir plus sur le format d'une stratégie, consultez la documentation de référence sur les stratégies.Par exemple, pour définir la stratégie présentée à l'étape précédente, remplacez
POLICY
par ce qui suit :{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "principal" ], "role": "role", "condition": { "title": "title", "description": "description", "expression": "expression" } } ] }
Méthode HTTP et URL :
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
Corps JSON de la requête :
{ "policy": POLICY }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient la stratégie d'autorisation mise à jour.
Étape suivante
- Appliquez le principe du moindre privilège avec les recommandations de rôles.
- Découvrez comment utiliser les conditions IAM pour configurer l'accès temporaire et configurer un accès basé sur les ressources.