Defines an Identity and Access Management (IAM) policy. It is used to
specify access control policies for Cloud Platform resources.
APolicyis a collection ofbindings. Abindingbinds one or moremembersto a singlerole. Members can be user accounts, service accounts,
Google groups, and domains (such as G Suite). Aroleis a named list of
permissions (defined by IAM or configured by users). Abindingcan
optionally specify acondition, which is a logic expression that further
constrains the role binding based on attributes about the request and/or
target resource.JSON Example{
"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')",
}
}
]
}YAML Examplebindings:
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')
For a description of IAM and its features, see theIAM developer's guide.
Associates a list ofmembersto arole. Optionally may specify aconditionthat determines when binding is in effect.bindingswith no members will result in an error.
Associates a list ofmembersto arole. Optionally may specify aconditionthat determines when binding is in effect.bindingswith no members will result in an error.
Associates a list ofmembersto arole. Optionally may specify aconditionthat determines when binding is in effect.bindingswith no members will result in an error.
Associates a list ofmembersto arole. Optionally may specify aconditionthat determines when binding is in effect.bindingswith no members will result in an error.
Associates a list ofmembersto arole. Optionally may specify aconditionthat determines when binding is in effect.bindingswith no members will result in an error.
etagis 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 theetagin the
read-modify-write cycle to perform policy updates in order to avoid race
conditions: Anetagis returned in the response togetIamPolicy, and
systems are expected to put that etag in the request tosetIamPolicyto
ensure that their change will be applied to the same version of the policy.
If noetagis provided in the call tosetIamPolicy, then the existing
policy is overwritten. Due to blind-set semantics of an etag-less policy,
'setIamPolicy' will not fail even if the incoming policy version does not
meet the requirements for modifying the stored policy.
Specifies the format of the policy.
Valid values are 0, 1, and 3. Requests specifying an invalid value will be
rejected.
Operations affecting conditional bindings must specify version 3. This can
be either setting a conditional policy, modifying a conditional binding,
or removing a binding (conditional or unconditional) from the stored
conditional policy.
Operations on non-conditional policies may specify any valid value or
leave the field unset.
If no etag is provided in the call tosetIamPolicy, version compliance
checks against the stored policy is skipped.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,[]]