Policy Stay organized with collections Save and categorize content based on your preferences.
An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.
APolicy is a collection ofbindings. Abinding binds one or moremembers, or principals, to a singlerole. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). Arole is a named list of permissions; eachrole can be an IAM predefined role or a user-created custom role.
For some types of Google Cloud resources, abinding can also specify acondition, which is a logical expression that allows access to a resource only if the expression evaluates totrue. 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 theIAM documentation.
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: 3For a description of IAM and its features, see theIAM documentation.
| JSON representation |
|---|
{"version":integer,"bindings":[{object ( |
| Fields | |
|---|---|
version |
Specifies the format of the policy. Valid values are Any operation that affects conditional role bindings must specify version
Important: If you use IAM Conditions, you must include the 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 theIAM documentation. |
bindings[] |
Associates a list of The |
auditConfigs[] |
Specifies cloud audit logging configuration for this policy. |
etag |
Important: If you use IAM Conditions, you must include the A base64-encoded string. |
Binding
Associatesmembers, or principals, with arole.
| JSON representation |
|---|
{"role":string,"members":[string],"condition":{object ( |
| Fields | |
|---|---|
role |
Role that is assigned to the list of For an overview of the IAM roles and permissions, see theIAM documentation. For a list of the available pre-defined roles, seehere. |
members[] |
Specifies the principals requesting access for a Google Cloud resource.
|
condition |
The condition that is associated with this binding. If the condition evaluates to If the condition evaluates to To learn which resources support conditions in their IAM policies, see theIAM documentation. |
AuditConfig
Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
If there are AuditConfigs for bothallServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exemptedMembers in each AuditLogConfig are exempted.
Example Policy with multiple AuditConfigs:
{ "auditConfigs": [ { "service": "allServices", "auditLogConfigs": [ { "logType": "DATA_READ", "exemptedMembers": [ "user:jose@example.com" ] }, { "logType": "DATA_WRITE" }, { "logType": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "auditLogConfigs": [ { "logType": "DATA_READ" }, { "logType": "DATA_WRITE", "exemptedMembers": [ "user:aliya@example.com" ] } ] } ]}For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exemptsjose@example.com from DATA_READ logging, andaliya@example.com from DATA_WRITE logging.
| JSON representation |
|---|
{"service":string,"auditLogConfigs":[{object ( |
| Fields | |
|---|---|
service |
Specifies a service that will be enabled for audit logging. For example, |
auditLogConfigs[] |
The configuration for logging of each type of permission. |
AuditLogConfig
Provides the configuration for logging a type of permissions. Example:
{ "auditLogConfigs": [ { "logType": "DATA_READ", "exemptedMembers": [ "user:jose@example.com" ] }, { "logType": "DATA_WRITE" } ]}This enables 'DATA_READ' and 'DATA_WRITE' logging, while exemptingjose@example.com from DATA_READ logging.
| JSON representation |
|---|
{"logType":enum ( |
| Fields | |
|---|---|
logType |
The log type that this config enables. |
exemptedMembers[] |
Specifies the identities that do not cause logging for this type of permission. Follows the same format of |
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-09-04 UTC.