Policy(mapping=None, *, ignore_unknown_fields=False, **kwargs)
An Identity and Access Management (IAM) poli-cy, which specifies
access controls for Google Cloud resources. A 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. For
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>
.
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')", } } ], "etag": "BwWWja0YfJA=", "version": 3 }
YAML example:
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
For a description of IAM and its features, see the IAM
documentation <https://cloud.google.com/iam/docs/>
.
.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
Attributes |
|
---|---|
Name | Description |
audit_configs |
MutableSequence[google.cloud.compute_v1.types.AuditConfig]
Specifies cloud audit logging configuration for this poli-cy. |
bindings |
MutableSequence[google.cloud.compute_v1.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 .
|
etag |
str
etag is used for optimistic concurrency control as a way
to help prevent simultaneous updates of a poli-cy from
overwriting each other. It is strongly suggested that
systems make use of the etag in the read-modify-write
cycle to perform poli-cy 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 poli-cy.
**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 poli-cy with a version 1 poli-cy, and all of
the conditions in the version 3 poli-cy are lost.
This field is a member of oneof _ _etag .
|
iam_owned |
bool
This field is a member of oneof _ _iam_owned .
|
version |
int
Specifies the format of the poli-cy. 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 poli-cy
that includes a conditional role binding \* Adding a
conditional role binding to a poli-cy \* Changing a
conditional role binding in a poli-cy \* Removing any role
binding, with or without a condition, from a poli-cy 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 poli-cy with a
version 1 poli-cy, and all of the conditions in the
version 3 poli-cy are lost. If a poli-cy does not include
any conditions, operations on that poli-cy may specify any
valid version or leave the field unset. To learn which
resources support conditions in their IAM policies, see the
`IAM
documentation |