Una política de administración de identidad y acceso (IAM) que especifica los controles de acceso para los recursos de Google Cloud.
Una Policy es un conjunto de bindings . Un binding vincula a uno o más members , o principales, a un único role . Los principales pueden ser cuentas de usuario, cuentas de servicio, grupos de Google y dominios (como G Suite). Un role es una lista de permisos con nombre; cada role puede ser un rol predefinido de IAM o un rol personalizado creado por el usuario.
Para algunos tipos de recursos de Google Cloud, un binding también puede especificar una condition , que es una expresión lógica que permite el acceso a un recurso solo si la expresión se evalúa como true . Una condición puede añadir restricciones basadas en los atributos de la solicitud, el recurso o ambos. Para saber qué recursos admiten condiciones en sus políticas de IAM, consulte la documentación de IAM .
Los valores válidos son 0 , 1 y 3 Las solicitudes que especifiquen un valor no válido se rechazan.
Cualquier operación que afecte a las vinculaciones de roles condicionales debe especificar la versión 3 Este requisito se aplica a las siguientes operaciones:
Obtener una política que incluya un enlace de rol condicional
Agregar un enlace de rol condicional a una política
Cambiar un enlace de rol condicional en una política
Eliminar cualquier vinculación de roles, con o sin una condición, de una política que incluye condiciones
Importante: Si usa condiciones de IAM, debe incluir el campo etag al llamar a setIamPolicy . Si omite este campo, IAM le permite sobrescribir una política de la versión 3 con una de la versión 1 , y se perderán todas las condiciones de la política de la versión 3 .
Si una política no incluye ninguna condición, las operaciones en esa política pueden especificar cualquier versión válida o dejar el campo sin configurar.
Para saber qué recursos admiten condiciones en sus políticas de IAM, consulte la documentación de IAM .
Asocia una lista de members o principales a un role . Opcionalmente, puede especificar una condition que determine cómo y cuándo se aplican las bindings . Cada bindings debe contener al menos un principal.
Las bindings de una Policy pueden hacer referencia a un máximo de 1500 principales; hasta 250 de estos principales pueden ser grupos de Google. Cada instancia de un principal cuenta para estos límites. Por ejemplo, si las bindings otorgan 50 roles diferentes a user:alice@example.com y no a ningún otro principal, se pueden agregar otros 1450 principales a las bindings de la Policy .
etag se utiliza para el control de concurrencia optimista y así evitar que las actualizaciones simultáneas de una política se sobrescriban. Se recomienda encarecidamente que los sistemas utilicen la etag en el ciclo de lectura-modificación-escritura para realizar actualizaciones de políticas y así evitar condiciones de competencia: Se devuelve una etag en la respuesta a getIamPolicy y se espera que los sistemas la incluyan en la solicitud a setIamPolicy para garantizar que el cambio se aplique a la misma versión de la política.
Importante: Si usa condiciones de IAM, debe incluir el campo etag al llamar a setIamPolicy . Si omite este campo, IAM le permite sobrescribir una política de la versión 3 con una de la versión 1 , y se perderán todas las condiciones de la política de la versión 3 .
Rol asignado a la lista de members o directores. Por ejemplo, roles/viewer , roles/editor o roles/owner .
Para obtener una descripción general de los roles y permisos de IAM, consulte la documentación de IAM . Para obtener una lista de los roles predefinidos disponibles, consulte aquí .
members[]
string
Especifica los principales que solicitan acceso a un recurso de Google Cloud. members pueden tener los siguientes valores:
allUsers : un identificador especial que representa a cualquier persona que esté en Internet; con o sin una cuenta de Google.
allAuthenticatedUsers : Un identificador especial que representa a cualquier persona autenticada con una cuenta de Google o una cuenta de servicio. No incluye identidades provenientes de proveedores de identidad externos (IdP) mediante federación de identidades.
user:{emailid} : Una dirección de correo electrónico que representa una cuenta de Google específica. Por ejemplo, alice@example.com .
serviceAccount:{emailid} : Una dirección de correo electrónico que representa una cuenta de servicio de Google. Por ejemplo, my-other-app@appspot.gserviceaccount.com .
serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}] : Identificador de una cuenta de servicio de Kubernetes . Por ejemplo, my-project.svc.id.goog[my-namespace/my-kubernetes-sa] .
group:{emailid} : Una dirección de correo electrónico que representa un grupo de Google. Por ejemplo, admins@example.com .
domain:{domain} : El dominio principal de G Suite que representa a todos los usuarios de ese dominio. Por ejemplo, google.com o example.com .
principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value} : una única identidad en un grupo de identidades de fuerza de trabajo.
principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{groupId} : todas las identidades de fuerza laboral en un grupo.
principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value} : todas las identidades de fuerza laboral con un valor de atributo específico.
principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/* : Todas las identidades en un grupo de identidades de fuerza laboral.
principal://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value} : una única identidad en un grupo de identidades de carga de trabajo.
principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/group/{groupId} : un grupo de identidades de carga de trabajo.
principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value} : todas las identidades en un grupo de identidades de carga de trabajo con un atributo determinado.
principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/* : Todas las identidades en un grupo de identidades de carga de trabajo.
deleted:user:{emailid}?uid={uniqueid} : Una dirección de correo electrónico (más un identificador único) que representa a un usuario eliminado recientemente. Por ejemplo, alice@example.com?uid=123456789012345678901 . Si se recupera el usuario, este valor vuelve a user:{emailid} y el usuario recuperado conserva el rol en la vinculación.
deleted:serviceAccount:{emailid}?uid={uniqueid} : Una dirección de correo electrónico (con su identificador único) que representa una cuenta de servicio eliminada recientemente. Por ejemplo, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901 . Si la cuenta de servicio se recupera, este valor vuelve a serviceAccount:{emailid} y la cuenta recuperada conserva el rol en el enlace.
deleted:group:{emailid}?uid={uniqueid} : Una dirección de correo electrónico (más un identificador único) que representa un grupo de Google eliminado recientemente. Por ejemplo, admins@example.com?uid=123456789012345678901 . Si se recupera el grupo, este valor vuelve a group:{emailid} y el grupo recuperado conserva la función en la vinculación.
deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value} : Se eliminó una sola identidad de un grupo de identidades de personal. Por ejemplo, deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value .
Si la condición se evalúa como true , entonces este enlace se aplica a la solicitud actual.
Si la condición se evalúa como false , esta vinculación no se aplica a la solicitud actual. Sin embargo, una vinculación de rol diferente podría otorgar la misma función a uno o más de los principales de esta vinculación.
Para saber qué recursos admiten condiciones en sus políticas de IAM, consulte la documentación de IAM .
Expr
Representa una expresión textual en la sintaxis del Lenguaje de Expresión Común (CEL). CEL es un lenguaje de expresión similar a C. La sintaxis y la semántica de CEL están documentadas en https://github.com/google/cel-spec .
Ejemplo (Comparación):
title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"
Ejemplo (Igualdad):
title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"
Ejemplo (lógica):
title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"
Ejemplo (manipulación de datos):
title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"
Las variables y funciones exactas a las que se puede hacer referencia en una expresión las determina el servicio que la evalúa. Consulte la documentación del servicio para obtener más información.
Representación textual de una expresión en la sintaxis del lenguaje de expresión común.
title
string
Opcional. Título de la expresión, es decir, una cadena corta que describe su propósito. Esto puede usarse, por ejemplo, en interfaces de usuario que permiten introducir la expresión.
description
string
Opcional. Descripción de la expresión. Este texto es más largo y describe la expresión, por ejemplo, al pasar el cursor sobre ella en una interfaz de usuario.
location
string
Opcional. Cadena que indica la ubicación de la expresión para el informe de errores, por ejemplo, un nombre de archivo y una posición en el archivo.
Configuración de auditoría
Especifica la configuración de auditoría de un servicio. Esta configuración determina qué tipos de permisos se registran y qué identidades, si las hay, quedan exentas del registro. Una configuración de auditoría (AuditConfig) debe tener una o más configuraciones de registro (AuditLogConfig).
Si hay AuditConfigs tanto para allServices como para un servicio específico, se utiliza la unión de las dos AuditConfigs para ese servicio: se habilitan los log_types especificados en cada AuditConfig y se eximen los exceptedMembers en cada AuditLogConfig.
Para sampleservice, esta política habilita el registro de DATA_READ, DATA_WRITE y ADMIN_READ. También exime jose@example.com del registro de DATA_READ y aliya@example.com del registro de DATA_WRITE.
Especifica un servicio que se habilitará para el registro de auditoría. Por ejemplo, storage.googleapis.com o cloudsql.googleapis.com . allServices es un valor especial que abarca todos los servicios.
El tipo de registro que habilita esta configuración.
exemptedMembers[]
string
Especifica las identidades que no generan registro para este tipo de permiso. Sigue el mismo formato que Binding.members .
Tipo de registro
Lista de tipos de permisos válidos para los que se puede configurar el registro. Las escrituras del administrador siempre se registran y no son configurables.
Enumeraciones
LOG_TYPE_UNSPECIFIED
Caso predeterminado. Nunca debería ser así.
ADMIN_READ
El administrador lee. Ejemplo: CloudIAM getIamPolicy
DATA_WRITE
Escritura de datos. Ejemplo: Los usuarios de CloudSQL crean
DATA_READ
Lecturas de datos. Ejemplo: Lista de usuarios de CloudSQL
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-06-09 (UTC)."],[[["\u003cp\u003eIAM policies manage access control for Google Cloud resources through a collection of bindings.\u003c/p\u003e\n"],["\u003cp\u003eA binding in an IAM policy links one or more principals (members) to a single role, with principals including user accounts, service accounts, Google groups, and domains.\u003c/p\u003e\n"],["\u003cp\u003eIAM policies can also contain a condition, which is a logical expression that must evaluate to true for the binding to apply, enabling constraint-based access.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eetag\u003c/code\u003e field in the policy JSON is crucial for optimistic concurrency control, especially when using IAM Conditions, to prevent simultaneous updates from overwriting each other.\u003c/p\u003e\n"],["\u003cp\u003eAudit configurations (\u003ccode\u003eauditConfigs\u003c/code\u003e) within an IAM policy allow for specifying which types of permissions are logged, and can also list exempted members for specific types of logging.\u003c/p\u003e\n"]]],[],null,["# Policy\n\n- [JSON representation](#SCHEMA_REPRESENTATION)\n- [Binding](#Binding)\n - [JSON representation](#Binding.SCHEMA_REPRESENTATION)\n- [Expr](#Expr)\n - [JSON representation](#Expr.SCHEMA_REPRESENTATION)\n- [AuditConfig](#AuditConfig)\n - [JSON representation](#AuditConfig.SCHEMA_REPRESENTATION)\n- [AuditLogConfig](#AuditLogConfig)\n - [JSON representation](#AuditLogConfig.SCHEMA_REPRESENTATION)\n- [LogType](#LogType)\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\nBinding\n-------\n\nAssociates `members`, or principals, with a `role`.\n\nExpr\n----\n\nRepresents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at \u003chttps://github.com/google/cel-spec\u003e.\n\nExample (Comparison): \n\n title: \"Summary size limit\"\n description: \"Determines if a summary is less than 100 chars\"\n expression: \"document.summary.size() \u003c 100\"\n\nExample (Equality): \n\n title: \"Requestor is owner\"\n description: \"Determines if requestor is the document owner\"\n expression: \"document.owner == request.auth.claims.email\"\n\nExample (Logic): \n\n title: \"Public documents\"\n description: \"Determine whether the document should be publicly visible\"\n expression: \"document.type != 'private' && document.type != 'internal'\"\n\nExample (Data Manipulation): \n\n title: \"Notification string\"\n description: \"Create a notification string with a timestamp.\"\n expression: \"'New message received at ' + string(document.create_time)\"\n\nThe exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.\n\nAuditConfig\n-----------\n\nSpecifies 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.\n\nIf there are AuditConfigs for both `allServices` 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.\n\nExample Policy with multiple AuditConfigs: \n\n {\n \"auditConfigs\": [\n {\n \"service\": \"allServices\",\n \"auditLogConfigs\": [\n {\n \"logType\": \"DATA_READ\",\n \"exemptedMembers\": [\n \"user:jose@example.com\"\n ]\n },\n {\n \"logType\": \"DATA_WRITE\"\n },\n {\n \"logType\": \"ADMIN_READ\"\n }\n ]\n },\n {\n \"service\": \"sampleservice.googleapis.com\",\n \"auditLogConfigs\": [\n {\n \"logType\": \"DATA_READ\"\n },\n {\n \"logType\": \"DATA_WRITE\",\n \"exemptedMembers\": [\n \"user:aliya@example.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.\n\nAuditLogConfig\n--------------\n\nProvides the configuration for logging a type of permissions. Example: \n\n {\n \"auditLogConfigs\": [\n {\n \"logType\": \"DATA_READ\",\n \"exemptedMembers\": [\n \"user:jose@example.com\"\n ]\n },\n {\n \"logType\": \"DATA_WRITE\"\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting [jose@example.com](mailto:jose@example.com) from DATA_READ logging.\n\nLogType\n-------\n\nThe list of valid permission types for which logging can be configured. Admin writes are always logged, and are not configurable."]]