Policy

Es una política de administración de identidades y accesos (IAM) que especifica los controles de acceso de los recursos de Google Cloud.

Una Policy es una colección de bindings. Una binding une uno o más members o principales con un solo role. Las principales pueden ser cuentas de usuario, cuentas de servicio, grupos de Google y dominios (como G Suite). Una role es una lista con nombre de permisos; una role puede ser una función predefinida de IAM o una función personalizada creada por el usuario.

Para algunos tipos de recursos de Google Cloud, una 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 agregar restricciones en función de los atributos de la solicitud, el recurso o ambos. Para saber qué recursos admiten condiciones en sus políticas de IAM, 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 características, 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.

Las operaciones que afecten las vinculaciones de funciones condicionales deben especificar la versión 3. Este requisito se aplica a las siguientes operaciones:

  • Obtener una política que incluya una vinculación de funciones condicional
  • Agregar una vinculación de funciones condicional a una política
  • Cambiar una vinculación de funciones condicional en una política
  • Quitar cualquier vinculación de funciones, con o sin condición, de una política que incluya condiciones

Importante: Si usas Condiciones de IAM, debes incluir el campo etag cuando llames a setIamPolicy. Si omites este campo, IAM te permite reemplazar una política de versión 3 por una de versión 1, y se pierden todas las condiciones de la política de versión 3.

Si una política no incluye condiciones, las operaciones de 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, consulta la documentación de IAM.

bindings[]

object (Binding)

Asocia una lista de members o principales, con un role. De forma alternativa, puede especificar una condition que determine cómo y cuándo se aplicarán las bindings. Cada bindings deben contener al menos una principal.

Las bindings de una Policy pueden hacer referencia hasta a 1,500 principales; hasta 250 de estas principales pueden ser Grupos de Google. Cada caso de una principal se tiene en cuenta para estos límites. Por ejemplo, si las bindings otorgan 50 roles diferentes a user:alice@example.com y a ninguna otra principal, puedes agregar otras 1,450 principales a las bindings en la Policy.

auditConfigs[]

object (AuditConfig)

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

etag

string (bytes format)

etag se usa para el control de simultaneidad optimista, como una forma de evitar que las actualizaciones simultáneas de una política se reemplacen entre sí. Se recomienda que los sistemas usen la etag en el ciclo de lectura, modificación y escritura para realizar actualizaciones de políticas a fin de evitar condiciones de carrera: se muestra una etag en la respuesta a getIamPolicy, y se espera que los sistemas incluyan esa ETag en la solicitud a setIamPolicy para garantizar 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 cuando llames a setIamPolicy. Si omites este campo, IAM te permite reemplazar una política de versión 3 por una de versión 1, y se pierden todas las condiciones de la política de versión 3.

String codificada en base64.