Policy

Una política de Gestión de Identidades y Accesos (IAM), que especifica los controles de acceso de los recursos de Google Cloud.

Un Policy es una colección de bindings. Un binding vincula uno o varios members (o principales) a un solo role. Las entidades 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 gestión de identidades y accesos o un rol personalizado creado por el usuario.

En algunos tipos de recursos de Google Cloud, un binding también puede especificar un condition, que es una expresión lógica que permite acceder 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, del recurso o de ambos. Para saber qué recursos admiten condiciones en sus políticas de gestión de identidades y accesos, consulta la documentación de IAM.

Ejemplo de JSON:

    {
      "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
    }

Ejemplo de YAML:

    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

Para obtener una descripción de IAM y sus funciones, consulta la documentación de IAM.

Representación JSON
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "auditConfigs": [
    {
      object (AuditConfig)
    }
  ],
  "etag": string
}
Campos
version

integer

Especifica el formato de la política.

Los valores válidos son 0, 1 y 3. Las solicitudes que especifican 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 una vinculación de rol condicional
  • Añadir una vinculación de roles condicional a una política
  • Cambiar una vinculación de rol condicional en una política
  • Quitar una vinculación de roles, con o sin condición, de una política que incluya condiciones

Importante: Si usas condiciones de IAM, debes incluir el campo etag cada vez que llames a setIamPolicy. Si omite este campo, IAM le permitirá sobrescribir una política de la versión 3 con una política 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 de esa política pueden especificar cualquier versión válida o dejar el campo sin definir.

Para saber qué recursos admiten condiciones en sus políticas de gestión de identidades y accesos, consulta la documentación de IAM.

bindings[]

object (Binding)

Asocia una lista de members o principales con un role. Opcionalmente, puede especificar un condition que determine cómo y cuándo se aplican los bindings. Cada uno de los bindings debe contener al menos un principal.

El bindings de un Policy puede hacer referencia a un máximo de 1500 principales,de los cuales 250 pueden ser grupos de Google. Cada instancia de un principal se tiene en cuenta para calcular estos límites. Por ejemplo, si la concesión bindings asigna 50 roles diferentes a user:alice@example.com y a ningún otro principal, puedes añadir otros 1450 principales a bindings en Policy.

auditConfigs[]

object (AuditConfig)

Especifica la configuración del almacenamiento de registros de auditoría en la nube de esta política.

etag

string (bytes format)

etag se usa para el control de concurrencia optimista como una forma de evitar que las actualizaciones simultáneas de una política se sobrescriban entre sí. Se recomienda encarecidamente que los sistemas usen etag en el ciclo de lectura-modificación-escritura para llevar a cabo las actualizaciones de las políticas y evitar las condiciones de carrera. Se devuelve un etag en la respuesta a getIamPolicy, y se espera que los sistemas incluyan ese etag en la solicitud a setIamPolicy para asegurarse de que el cambio se aplique a la misma versión de la política.

Importante: Si usas condiciones de IAM, debes incluir el campo etag cada vez que llames a setIamPolicy. Si omite este campo, IAM le permitirá sobrescribir una política de la versión 3 con una política de la versión 1, y se perderán todas las condiciones de la política de la versión 3.

Cadena codificada en base64.