Policy

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)
    }
  ],
  "rules": [
    {
      object (Rule)
    }
  ],
  "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.

rules[]

object (Rule)

Si se especifica más de una regla, las reglas se aplican de la siguiente manera: - Siempre se aplican todas las reglas de LOG que coincidan. - Si coincide alguna regla DENY/DENY_WITH_LOG, se rechaza el permiso. Se aplicarán registros si una o más reglas coincidentes requieren que se registren. - De lo contrario, si alguna regla ALLOW/ALLOW_WITH_LOG coincide, se otorga el permiso. Se aplicarán registros si una o más reglas coincidentes requieren que se registren. - De lo contrario, si no se aplica ninguna regla, se deniega el permiso.

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 base 64.

Vinculación

Asocia members o principales con un role.

Representación JSON
{
  "role": string,
  "members": [
    string
  ],
  "condition": {
    object (Expr)
  },
  "bindingId": string
}
Campos
role

string

Rol que se asigna a la lista de members o principales. Por ejemplo, roles/viewer, roles/editor o roles/owner.

Para obtener una descripción general de los roles y permisos de IAM, consulta la documentación de IAM. Para obtener una lista de los roles predefinidos disponibles, consulta aquí.

members[]

string

Especifica las principales que solicitan acceso para un recurso de Google Cloud. members puede tener los siguientes valores:

  • allUsers: un identificador especial que representa a cualquier persona que esté en Internet; independientemente de si tienen una Cuenta de Google o no.

  • allAuthenticatedUsers: un identificador especial que representa a cualquier persona que esté autenticada con una Cuenta de Google o una cuenta de servicio. No incluye las identidades que provienen de proveedores de identidad externos (IdP) a través de la 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}]: un identificador para 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 a un grupo de Google. Por ejemplo, admins@example.com

  • domain:{domain}: el dominio de G Suite (principal) 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}: Identidad única en un grupo de identidad de personal.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{groupId}: Todas las identidades del personal de un grupo.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: Todas las identidades del personal con un valor de atributo específico

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: Todas las identidades en un grupo de identidad de personal.

  • principal://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: Identidad única en un grupo de identidades para cargas de trabajo.

  • principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/group/{groupId}: Un grupo de grupos de identidades para cargas de trabajo.

  • principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: Todas las identidades de un grupo de Workload Identity con un atributo determinado.

  • principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/*: Todas las identidades en un grupo de Workload Identity.

  • deleted:user:{emailid}?uid={uniqueid}: Una dirección de correo electrónico (más el identificador único) que representa a un usuario que se borró en los últimos días. Por ejemplo, alice@example.com?uid=123456789012345678901. Si el usuario se recupera, este valor se revierte a user:{emailid}, y el usuario recuperado conserva la función en la vinculación.

  • deleted:serviceAccount:{emailid}?uid={uniqueid}: Una dirección de correo electrónico (más el identificador único) que representa a una cuenta de servicio que se borró en los últimos días. Por ejemplo, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. Si la cuenta se recupera, este valor se revierte a serviceAccount:{emailid}, y la cuenta recuperada conserva el rol en la vinculación.

  • deleted:group:{emailid}?uid={uniqueid}: Una dirección de correo electrónico (más el identificador único) que representa a un grupo de Google que se borró en los últimos días. Por ejemplo, admins@example.com?uid=123456789012345678901 Si el grupo se recupera, este valor se revierte 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}: Identidad única eliminada en un grupo de identidad de personal. Por ejemplo, deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value.

condition

object (Expr)

La condición asociada a esta vinculación.

Si la condición se evalúa como true, esta vinculación 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 roles diferente puede otorgar el mismo rol a una o más de las principales de esta vinculación.

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

bindingId

string

Expr

Representa una expresión textual en la sintaxis de Common Expression Language (CEL). CEL es un lenguaje de expresión similar a C. La sintaxis y la semántica de CEL se documentan 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)"

El servicio que evalúa la expresión determina las variables y las funciones exactas a las que se puede hacer referencia en la expresión. Para obtener más información, consulta la documentación del servicio.

Representación JSON
{
  "expression": string,
  "title": string,
  "description": string,
  "location": string
}
Campos
expression

string

Representación textual de una expresión en la sintaxis de Common Expression Language.

title

string

Opcional. Título de la expresión (una string corta que describe el propósito de esta). Se puede usar, p. ej., en IU que permiten ingresar la expresión.

description

string

Opcional. Descripción de la expresión. Es un texto más largo que describe la expresión (p. ej., cuando se coloca el cursor sobre ella en una IU).

location

string

Opcional. Cadena que indica la ubicación de la expresión para los informes de errores (p.ej., el nombre de un archivo y una posición en él).

AuditConfig

Especifica la configuración de auditoría para un servicio. La configuración determina los tipos de permisos que se registran, y qué identidades, si las hay, están exentas del registro. Un AuditConfig debe tener un AuditLogConfig o más.

Si hay AuditConfigs para allServices y un servicio específico, se usa la unión de las dos AuditConfigs para ese servicio: se habilitan los log_types especificados en cada AuditConfig y se hacen exenciones para los exemptedMembers en cada AuditLogConfig.

Ejemplo de una política con varios 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"
          ]
        }
      ]
    }
  ]
}

Para sampleservice, esta política habilita el registro de DATA_READ, DATA_WRITE y ADMIN_READ. También exime a jose@example.com del registro de DATA_READ y a aliya@example.com del registro de DATA_WRITE.

Representación JSON
{
  "service": string,
  "auditLogConfigs": [
    {
      object (AuditLogConfig)
    }
  ]
}
Campos
service

string

Especifica un servicio que se habilitará para el registro de auditoría. Por ejemplo: storage.googleapis.com, cloudsql.googleapis.com. allServices es un valor especial que abarca todos los servicios.

auditLogConfigs[]

object (AuditLogConfig)

La configuración para el registro de cada tipo de permiso.

AuditLogConfig

Proporciona la configuración para el registro de un tipo de permiso. Ejemplo:

{
  "auditLogConfigs": [
    {
      "logType": "DATA_READ",
      "exemptedMembers": [
        "user:jose@example.com"
      ]
    },
    {
      "logType": "DATA_WRITE"
    }
  ]
}

Así se habilita el registro de DATA_READ y DATA_WRITE, y se exime a jose@example.com del registro de DATA_READ.

Representación JSON
{
  "logType": enum (LogType),
  "exemptedMembers": [
    string
  ],
  "ignoreChildExemptions": boolean
}
Campos
logType

enum (LogType)

El tipo de registro que habilita esta configuración.

exemptedMembers[]

string

Especifica las identidades que no provocan registros para este tipo de permiso. Sigue el mismo formato de Binding.members.

ignoreChildExemptions

boolean

LogType

La lista de tipos de permiso válidos para los que se puede configurar el registro. Las escrituras de administradores siempre se registran y no son configurables.

Enums
LOG_TYPE_UNSPECIFIED Caso predeterminado. Nunca debería aparecer esto.
ADMIN_READ Lecturas de administrador. Ejemplo: CloudIAM getIamPolicy
DATA_WRITE Escrituras de datos. Ejemplo: CloudSQL Users create
DATA_READ Lecturas de datos. Ejemplo: CloudSQL Users list

Regla

Una regla que se aplicará en una política.

Representación JSON
{
  "description": string,
  "permissions": [
    string
  ],
  "action": enum (Action),
  "in": [
    string
  ],
  "notIn": [
    string
  ],
  "conditions": [
    {
      object (Condition)
    }
  ],
  "logConfig": [
    {
      object (LogConfig)
    }
  ]
}
Campos
description

string

Descripción legible de la regla.

permissions[]

string

Un permiso es una cadena de forma ".." (p.ej., “storage.buckets.list”). Un valor de “*” coincide con todos los permisos, y una parte del verbo de “*” (p.ej., “storage.buckets.*”) coincide con todos los verbos.

action

enum (Action)

Requeridos

in[]

string

Si se especifican una o más cláusulas “in”, la regla coincidirá si PRINCIPAL/AUTHORITY_SELECTOR se encuentra en al menos una de estas entradas.

notIn[]

string

Si se especifican una o más cláusulas “notIn”, la regla coincidirá si PRINCIPAL/AUTHORITY_SELECTOR no se encuentra en ninguna de las entradas.

conditions[]

object (Condition)

Restricciones adicionales que deben cumplirse. Se deben aprobar todas las condiciones para que la regla coincida.

logConfig[]

object (LogConfig)

La configuración que se muestra a los llamadores de CheckPolicy para cualquier entrada que coincida con la acción LOG.

Acción

Tipos de acciones de las reglas.

Enums
NO_ACTION Ninguna acción predeterminada.
ALLOW Las “Entradas” coinciden con otorgar acceso.
ALLOW_WITH_LOG Si las “Entradas” coinciden, otorga acceso y el emisor promete registrar la solicitud según los log_configs que se muestran.
DENY Las “Entradas” coinciden con la denegación del acceso.
DENY_WITH_LOG Las 'entradas' que coinciden deniegan el acceso y el emisor promete registrar la solicitud según los log_configs que se muestran.
LOG Cuando las “Entradas” coinciden, se le indica a IAM.Verifica a los emisores que generen registros.

Condición

Una condición que se debe cumplir.

Representación JSON
{
  "op": enum (Operator),
  "values": [
    string
  ],

  // Union field Subject can be only one of the following:
  "iam": enum (Attr),
  "sys": enum (Attr),
  "svc": string
  // End of list of possible types for union field Subject.
}
Campos
op

enum (Operator)

Operador para aplicar el sujeto.

values[]

string

Los objetos de la condición.

Campo de unión Subject. Sujeto de la condición. Subject puede ser solo uno de los siguientes:
iam

enum (Attr)

Atributos de confianza proporcionados por el sistema de IAM.

sys

enum (Attr)

Atributos de confianza proporcionados por cualquier servicio que posee recursos y usa el sistema de IAM para el control de acceso.

svc

string

Atributos de confianza que dio el servicio de baja.

Attr

Tipos de atributos.

Enums
NO_ATTR No es un atributo predeterminado.
AUTHORITY Selector de autoridad principal o (si está presente)
ATTRIBUTION El principal (incluso si hay un selector de autoridad), que solo se debe usar para la atribución, no para la autorización.
SECURITY_REALM Cualquiera de los dominios de seguridad en IAMContext (go/security-realms). Cuando se usa con IN, la condición indica “cualquiera de los dominios de la solicitud coincide con uno de los valores especificados; con NOT_IN, “ninguno de los dominios coincide con ninguno de los valores especificados”. Ten en cuenta que un valor puede ser: - “self:campus” (es decir, clientes que se encuentran en el mismo campus) - “self:metro” (es decir, clientes que están en la misma área metropolitana) - “self:cloud-region” (es decir, permitir conexiones de clientes que se encuentran en la misma región de la nube) - “self:m: prod-region permiten conexiones de los mismos clientes” de la misma región de la nube (pro. Para obtener más información, consulta go/security-realms-glossary#guardian). - "self" [OBSOLETO] (es decir, permitir conexiones de clientes que se encuentran en el mismo dominio de seguridad, que actualmente, pero no se garantiza que sea del tamaño de un campus) - un dominio (p. ej., 'campus-abc'): Un grupo de dominio (p.ej., "realms-for-borg-cell-xx", consulta: go/realm-groups) Una coincidencia se determina mediante una verificación de membresía a un grupo de dominios que realiza un objeto RealmAclRep (go/realm-acl-howto). No se permite otorgar acceso en función de la ausencia de un dominio, por lo que sus condiciones solo se pueden usar en un contexto “positivo” (p.ej., ALLOW/IN o DENY/NOT_IN).
APPROVER Un responsable de aprobación (distinto del solicitante) que autorizó esta solicitud. Cuando se usa con IN, la condición indica que uno de los responsables de aprobación asociados con la solicitud coincide con la principal especificada o es miembro del grupo indicado. Los responsables de aprobación solo pueden otorgar acceso adicional y, por lo tanto, solo se utilizan en un contexto estrictamente positivo (p.ej., ALLOW/IN o DENY/NOT_IN).
JUSTIFICATION_TYPE

Los tipos de justificaciones que se proporcionaron con esta solicitud. Los valores de cadena deben coincidir con los nombres de enumeración de security.credentials.JustificationType, p.ej., "MANUAL_STRING". No se permite otorgar acceso en función de la ausencia de una justificación, por lo que las condiciones de justificación solo se pueden usar en un contexto "positivo" (p.ej., ALLOW/IN o DENY/NOT_IN).

Existen varias justificaciones, p.ej., un ID de Buganizer y un motivo ingresado manualmente, que son normales y compatibles.

CREDENTIALS_TYPE El tipo de credenciales que se proporcionaron con esta solicitud. Los valores de cadena deben coincidir con los nombres de enumeración de security_loas_l2.CredentialsType. Por el momento, solo se admite CREDS_TYPE_EMERGENCY. No se permite otorgar acceso en función de la ausencia de un tipo de credencial, por lo que las condiciones solo se pueden usar en un contexto “positivo” (p.ej., ALLOW/IN o DENY/NOT_IN).
CREDS_ASSERTION

EXPERIMENTAL -- NO USAR.

Las condiciones solo se pueden usar en un contexto “positivo” (p.ej., ALLOW/IN o DENY/NOT_IN).

Attr

Tipos de atributos.

Enums
NO_ATTR Tipo predeterminado que no es un atributo
REGION Región del recurso
SERVICE Nombre del servicio
NAME Nombre del recurso
IP Dirección IP del emisor

Operador

Tipos de operadores de condiciones.

Enums
NO_OP No-op predeterminada.
EQUALS OBSOLETO. En su lugar, usa IN.
NOT_EQUALS OBSOLETO. En su lugar, usa NOT_IN.
IN La condición es verdadera si el sujeto (o cualquier elemento de él si es un conjunto) coincide con cualquiera de los valores proporcionados.
NOT_IN La condición es verdadera si el sujeto (o todos sus elementos si es un conjunto) coincide con ninguno de los valores proporcionados.
DISCHARGED Se dio de baja al sujeto

LogConfig

Especifica qué tipo de registro debe escribir el emisor

Representación JSON
{

  // Union field type can be only one of the following:
  "counter": {
    object (CounterOptions)
  },
  "dataAccess": {
    object (DataAccessOptions)
  },
  "cloudAudit": {
    object (CloudAuditOptions)
  }
  // End of list of possible types for union field type.
}
Campos
Campo de unión type. Se debe configurar type solo puede ser una de las siguientes opciones:
counter

object (CounterOptions)

Opciones de mostrador.

dataAccess

object (DataAccessOptions)

Opciones de acceso a los datos.

cloudAudit

object (CloudAuditOptions)

Opciones de auditoría de Cloud.

CounterOptions

Incrementa un contador de streamz con la métrica especificada y los nombres de campo.

Los nombres de las métricas deben comenzar con “/”, escribir solo en minúscula y terminar en “_count”. Los nombres de los campos no deben contener una barra inicial. Los nombres reales de las métricas exportadas tendrán “/iam/policy” antepuesto.

Los nombres de los campos corresponden a los parámetros de solicitud de IAM y los valores de los campos son sus respectivos valores.

Nombres de campo admitidos: - “authority”, que es “[token]” si IAMContext.token está presente; de lo contrario, es el valor de IAMContext.authority_selector, si está presente, y, de lo contrario, es una representación de IAMContext.principal; o - “iamPrincipal”, una representación de IAMContext.principal, incluso si hay un selector de token o de autoridad, o - “” (cadena vacía), que genera un contador sin campos.

Ejemplos: contador { metric: "/debug_access_count" field: "iamPrincipal" } ==> contador de incremento /iam/policy/debug_access_count {iamPrincipal=[valor de IAMContext.principal]}

Representación JSON
{
  "metric": string,
  "field": string,
  "customFields": [
    {
      object (CustomField)
    }
  ]
}
Campos
metric

string

La métrica que se actualizará.

field

string

El valor del campo que se atribuirá.

customFields[]

object (CustomField)

Campos personalizados

CustomField

Campos personalizados Estos se pueden usar para crear un contador con pares de campo/valor arbitrarios. Consulta go/rpcsp-custom-fields.

Representación JSON
{
  "name": string,
  "value": string
}
Campos
name

string

El nombre es el nombre del campo.

value

string

El valor es el valor del campo. Es importante que, a diferencia de CounterOptions.field, el valor aquí sea una constante que no se derive de IAMContext.

DataAccessOptions

Cómo escribir un registro de acceso a los datos (Gin)

Representación JSON
{
  "logMode": enum (LogMode),
  "isDirectAuth": boolean
}
Campos
logMode

enum (LogMode)

isDirectAuth

boolean

Indica que una política de otorgamiento normal otorgó acceso

LogMode

Especifica el comportamiento del cliente en el registro de Gin.

Enums
LOG_MODE_UNSPECIFIED No es necesario que el cliente escriba un registro Gin parcial inmediatamente después de la verificación de autorización. Si el cliente elige escribir una y falla, puede que se produzca un error al abrir (permitir que la operación continúe) o que falle (manejar como resultado DENY).
LOG_FAIL_CLOSED

La operación de la aplicación en el contexto en el que se realiza esta verificación de autorización solo se puede realizar si se registra correctamente en Gin. Por ejemplo, la biblioteca de autorización puede cumplir con esta obligación emitiendo una entrada de registro parcial en el momento de la verificación de autorización y solo mostrando PERMITIR a la aplicación si tiene éxito.

Si una regla coincidente tiene esta directiva, pero el cliente no indicó que cumplirá con esos requisitos, la verificación de IAM generará un error de autorización configurando CheckPolicyResponse.success=false.

CloudAuditOptions

Escribe un registro de auditoría de Cloud

Representación JSON
{
  "logName": enum (LogName),
  "authorizationLoggingOptions": {
    object (AuthorizationLoggingOptions)
  },
  "permissionType": enum (PermissionType)
}
Campos
logName

enum (LogName)

El logName que se propagará en el Registro de auditoría de Cloud.

authorizationLoggingOptions

object (AuthorizationLoggingOptions)

Información que usa la canalización de Cloud Audit Logging. Dejará de estar disponible una vez que se complete la migración a PermissionType (b/201806118).

permissionType

enum (PermissionType)

Es el tipo asociado con el permiso.

LogName

Enum de nombres de registro.

Enums
UNSPECIFIED_LOG_NAME predeterminada. No se debe usar.
ADMIN_ACTIVITY Corresponde a "cloudaudit.googleapis.com/activity".
DATA_ACCESS Corresponde a "cloudaudit.googleapis.com/dataAccess".

AuthorizationLoggingOptions

Información relacionada con la autorización que usa Cloud Audit Logging.

Representación JSON
{
  "permissionType": enum (PermissionType)
}
Campos
permissionType

enum (PermissionType)

El tipo de permiso que se verificó.

PermissionType

Es la lista de tipos de permisos válidos que se pueden verificar.

Enums
PERMISSION_TYPE_UNSPECIFIED predeterminada. No se debe usar.
ADMIN_READ Es una lectura de datos administrativos (meta).
ADMIN_WRITE Es una escritura de datos administrativos (meta).
DATA_READ Es una lectura de datos estándar.
DATA_WRITE Es una escritura de datos estándar.

PermissionType

Es la lista de tipos de permisos válidos que se pueden verificar.

Enums
PERMISSION_TYPE_UNSPECIFIED predeterminada. No se debe usar.
ADMIN_READ Son permisos que restringen la lectura de la configuración de recursos o los metadatos.
ADMIN_WRITE Permisos que restringen la modificación de la configuración de recursos o los metadatos.
DATA_READ Son permisos que restringen la lectura de datos proporcionados por el usuario.
DATA_WRITE Son permisos que controlan la escritura de datos proporcionados por el usuario.