Policy
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Stratégie IAM (Identity and Access Management) qui spécifie les contrôles d'accès pour les ressources Google Cloud.
Un Policy
est une collection de bindings
. Un binding
associe un ou plusieurs members
, ou comptes principaux, à un seul role
. Les comptes principaux peuvent être des comptes utilisateur, des comptes de service, des groupes Google et des domaines (tels que G Suite). Un role
est une liste nommée d'autorisations. Chaque role
peut être un rôle IAM prédéfini ou un rôle personnalisé créé par l'utilisateur.
Pour certains types de ressources Google Cloud, un objet binding
peut également spécifier un objet condition
, qui est une expression logique autorisant l'accès à une ressource seulement si l'expression renvoie la valeur true
. Une condition peut ajouter des contraintes en fonction des attributs de la requête, de la ressource ou des deux. Pour savoir quelles ressources acceptent les conditions dans leurs stratégies IAM, consultez la documentation IAM.
Exemple JSON :
{
"bindings": [
{
"role": "roles/resourcemanager.organizationAdmin",
"members": [
"user:mike@example.com",
"group:admins@example.com",
"domain:google.com",
"serviceAccount:my-project-id@appspot.gserviceaccount.com"
]
},
{
"role": "roles/resourcemanager.organizationViewer",
"members": [
"user:eve@example.com"
],
"condition": {
"title": "expirable access",
"description": "Does not grant access after Sep 2020",
"expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
}
}
],
"etag": "BwWWja0YfJA=",
"version": 3
}
Exemple YAML :
bindings:
- members:
- user:mike@example.com
- group:admins@example.com
- domain:google.com
- serviceAccount:my-project-id@appspot.gserviceaccount.com
role: roles/resourcemanager.organizationAdmin
- members:
- user:eve@example.com
role: roles/resourcemanager.organizationViewer
condition:
title: expirable access
description: Does not grant access after Sep 2020
expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
etag: BwWWja0YfJA=
version: 3
Pour obtenir une description d'IAM et de ses fonctionnalités, consultez la documentation IAM.
Représentation JSON |
{
"version": integer,
"bindings": [
{
object (Binding )
}
],
"etag": string
} |
Champs |
version |
integer
Spécifie le format de la règle. Les valeurs valides sont 0 , 1 et 3 . Les requêtes spécifiant une valeur non valide sont rejetées. Toute opération qui affecte les liaisons de rôle conditionnelles doit spécifier la version 3 . Cette exigence s'applique aux opérations suivantes :
- Obtenir une règle qui inclut une liaison de rôle conditionnelle
- Ajouter une liaison de rôle conditionnelle à une règle
- Modifier une liaison de rôle conditionnelle dans une règle
- Suppression de toute liaison de rôle, avec ou sans condition, d'une règle incluant des conditions
Important : Si vous utilisez des conditions IAM, vous devez inclure le champ etag chaque fois que vous appelez setIamPolicy . Si vous omettez ce champ, IAM vous permet de remplacer une règle de version 3 par une règle de version 1 , et toutes les conditions de la règle de version 3 sont perdues. Si une règle n'inclut aucune condition, les opérations associées à cette règle peuvent spécifier une version valide ou laisser le champ non défini. Pour savoir quelles ressources acceptent les conditions dans leurs stratégies IAM, consultez la documentation IAM.
|
bindings[] |
object (Binding )
Associe une liste de members , ou des comptes principaux, à un role . Si vous le souhaitez, vous pouvez spécifier une condition qui détermine comment et quand les bindings sont appliqués. Chacun des bindings doit contenir au moins un compte principal. Le bindings d'une Policy peut faire référence à un maximum de 1 500 comptes principaux. Au maximum, 250 de ces comptes principaux peuvent être des groupes Google. Chaque occurrence d'un compte principal est prise en compte dans ces limites. Par exemple, si bindings accorde 50 rôles différents à user:alice@example.com et non à un autre compte principal, vous pouvez ajouter 1 450 comptes principaux à bindings dans Policy .
|
etag |
string (bytes format)
etag permet d'effectuer un contrôle de simultanéité positive, pour éviter que les mises à jour simultanées d'une stratégie ne s'écrasent les unes les autres. Afin d'éviter les situations de concurrence, il est fortement suggéré que les systèmes utilisent etag dans le cycle lecture-modification-écriture pour effectuer des mises à jour de stratégies : un etag est renvoyé dans la réponse à getIamPolicy , et les systèmes doivent mettre cet élément dans la requête destinée à setIamPolicy de sorte à s'assurer que leur modification sera appliquée à la même version de la stratégie.
Important : Si vous utilisez des conditions IAM, vous devez inclure le champ etag chaque fois que vous appelez setIamPolicy . Si vous omettez ce champ, IAM vous permet de remplacer une règle de version 3 par une règle de version 1 , et toutes les conditions de la règle de version 3 sont perdues. Chaîne encodée en base64.
|
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/07/26 (UTC).
[null,null,["Dernière mise à jour le 2025/07/26 (UTC)."],[[["\u003cp\u003eIAM policies control access to Google Cloud resources by defining who (members) has what permissions (roles).\u003c/p\u003e\n"],["\u003cp\u003eMembers can be users, groups, domains, or service accounts, while roles are collections of permissions.\u003c/p\u003e\n"],["\u003cp\u003ePolicies contain bindings that link members to roles, and these bindings can optionally include conditions for access.\u003c/p\u003e\n"],["\u003cp\u003eConditions allow granting access only when specific criteria are met, such as time-based constraints.\u003c/p\u003e\n"],["\u003cp\u003ePolicies are represented in JSON or YAML format and include versioning and an etag for concurrency control.\u003c/p\u003e\n"]]],["IAM policies manage Google Cloud resource access using `bindings`. Bindings link `members` (users, groups, etc.) to `roles` (permission lists). Some bindings include a `condition`, a logical expression restricting access based on request or resource attributes. Policies have a `version` (0, 1, or 3), with version 3 required for conditional bindings. The `etag` field, a base64-encoded string, ensures concurrent update safety; it is required for version 3.\n"],null,["# Policy\n\nAn Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.\n\nA `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role.\n\nFor some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).\n\n**JSON example:** \n\n {\n \"bindings\": [\n {\n \"role\": \"roles/resourcemanager.organizationAdmin\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-project-id@appspot.gserviceaccount.com\"\n ]\n },\n {\n \"role\": \"roles/resourcemanager.organizationViewer\",\n \"members\": [\n \"user:eve@example.com\"\n ],\n \"condition\": {\n \"title\": \"expirable access\",\n \"description\": \"Does not grant access after Sep 2020\",\n \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\",\n }\n }\n ],\n \"etag\": \"BwWWja0YfJA=\",\n \"version\": 3\n }\n\n**YAML example:** \n\n bindings:\n - members:\n - user:mike@example.com\n - group:admins@example.com\n - domain:google.com\n - serviceAccount:my-project-id@appspot.gserviceaccount.com\n role: roles/resourcemanager.organizationAdmin\n - members:\n - user:eve@example.com\n role: roles/resourcemanager.organizationViewer\n condition:\n title: expirable access\n description: Does not grant access after Sep 2020\n expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\n etag: BwWWja0YfJA=\n version: 3\n\nFor a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).\n\n| JSON representation |\n|--------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"version\": integer, \"bindings\": [ { object (/earth-engine/reference/rest/Shared.Types/Binding) } ], \"etag\": string } ``` |\n\n| Fields ||\n|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `version` | `integer` Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: - Getting a policy that includes a conditional role binding - Adding a conditional role binding to a policy - Changing a conditional role binding in a policy - Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |\n| `bindings[]` | `object (`[Binding](/earth-engine/reference/rest/Shared.Types/Binding)`)` Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`. |\n| `etag` | `string (`[bytes](https://developers.google.com/discovery/v1/type-format)` format)` `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. A base64-encoded string. |"]]