Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
A Policy
consists of a list of bindings
. A binding
binds a list of members
to a role
, where the members can be user accounts, Google groups, Google domains, and service accounts. A role
is a named list of permissions defined by IAM.
JSON Example
{
"bindings": [
{
"role": "roles/owner",
"members": [
"user:mike@example.com",
"group:admins@example.com",
"domain:google.com",
"serviceAccount:my-other-app@appspot.gserviceaccount.com"
]
},
{
"role": "roles/viewer",
"members": ["user:sean@example.com"]
}
]
}
YAML Example
bindings:
- members:
- user:mike@example.com
- group:admins@example.com
- domain:google.com
- serviceAccount:my-other-app@appspot.gserviceaccount.com
role: roles/owner
- members:
- user:sean@example.com
role: roles/viewer
For a description of IAM and its features, see the IAM developer's guide .
JSON representation | |
---|---|
{
"version" :
number
,
"bindings" :
[
{
object(
|
Fields | |
---|---|
version
|
This item is deprecated! Deprecated. |
bindings[]
|
Associates a list of |
etag
|
If no A base64-encoded string. |
Binding
Associates members
with a role
.
JSON representation | |
---|---|
{
"role" :
string
,
"members" :
[
string
]
,
"condition" :
{
object(
|
role
string
Role that is assigned to members
. For example, roles/viewer
, roles/editor
, or roles/owner
.
members[]
string
Specifies the identities requesting access for a Cloud Platform resource. members
can have the following values:
-
allUsers
: A special identifier that represents anyone who is on the internet; with or without a Google account. -
allAuthenticatedUsers
: A special identifier that represents anyone who is authenticated with a Google account or a service account. -
user:{emailid}
: An email address that represents a specific Google account. For example,alice@gmail.com
.
-
serviceAccount:{emailid}
: An email address that represents a service account. For example,my-other-app@appspot.gserviceaccount.com
. -
group:{emailid}
: An email address that represents a Google group. For example,admins@example.com
.
-
domain:{domain}
: A Google Apps domain name that represents all the users of that domain. For example,google.com
orexample.com
.
condition
object(
Expr
)
Unimplemented. The condition that is associated with this binding. NOTE: an unsatisfied condition will not allow user access via current binding. Different bindings, including their conditions, are examined independently.
Expr
Represents an expression text. Example:
title: "User account presence"
description: "Determines whether the request has a user account"
expression: "size(request.user) > 0"
JSON representation | |
---|---|
{ "expression" : string , "title" : string , "description" : string , "location" : string } |
Fields | |
---|---|
expression
|
Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. |
title
|
An optional title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. |
description
|
An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. |
location
|
An optional string indicating the location of the expression for error reporting, e.g. a file name and a position in the file. |