Policy

Uma política de gerenciamento de identidade e acesso (IAM, na sigla em inglês), que especifica controles de acesso para recursos do Google Cloud.

Um Policy é uma coleção de bindings. Uma binding vincula um ou mais members, ou principais, a um único role. Os membros podem ser contas de usuário, contas de serviço, Grupos do Google e domínios, como o G Suite. Um role é uma lista nomeada de permissões. Cada role pode ser um papel pré-definido do IAM ou um papel personalizado criado pelo usuário.

Para determinados tipos de recursos do Google Cloud, uma binding também pode especificar uma condition, que é uma expressão lógica que permitirá acesso a um recurso somente se a expressão for avaliada como true. Uma condição pode adicionar restrições com base nos atributos da solicitação, do recurso ou de ambos. Para saber quais recursos são compatíveis com as condições nas políticas do IAM, consulte a documentação do IAM.

Exemplo 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
    }

Exemplo 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 uma descrição do IAM e dos recursos dele, consulte a documentação do IAM.

Representação JSON
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "auditConfigs": [
    {
      object (AuditConfig)
    }
  ],
  "rules": [
    {
      object (Rule)
    }
  ],
  "etag": string
}
Campos
version

integer

Especifica o formato da política.

Os valores válidos são 0, 1 e 3. As solicitações que especificam um valor inválido são rejeitadas.

Qualquer operação que afete as vinculações condicionais de papel precisa especificar a versão 3. Esse requisito se aplica às seguintes operações:

  • Como conseguir uma política que inclua uma vinculação de papel condicional
  • Como adicionar uma vinculação de papel condicional a uma política
  • Como alterar uma vinculação de papel condicional em uma política
  • Como remover qualquer vinculação de papel (com ou sem uma condição) de uma política que inclua condições

Importante: se você usar as condições do IAM, precisará incluir o campo etag sempre que chamar setIamPolicy. Se você omitir esse campo, o IAM permitirá substituir uma política de versão 3 por uma política de versão 1, e todas as condições na política de versão 3 serão perdidas.

Se uma política não incluir nenhuma condição, as operações nessa política poderão especificar qualquer versão válida ou deixar o campo não definido.

Para saber quais recursos são compatíveis com as condições nas políticas do IAM, consulte a documentação do IAM.

bindings[]

object (Binding)

Associa uma lista de members ou principais a um role. Como alternativa, pode especificar um condition que determina como e quando o bindings é aplicado. Cada bindings precisa conter pelo menos um membro.

O bindings em uma Policy pode se referir a até 1.500 principais. até 250 desses principais podem ser grupos do Google. Cada ocorrência de um principal conta para esses limites. Por exemplo, se o bindings conceder 50 papéis diferentes a user:alice@example.com, e não a qualquer outro principal, será possível adicionar mais 1.450 principais ao bindings no Policy.

auditConfigs[]

object (AuditConfig)

Especifica a configuração do Cloud Audit Logging para esta política.

rules[]

object (Rule)

Se mais de uma regra for especificada, elas serão aplicadas da seguinte maneira: - Todas as regras LOG correspondentes serão sempre aplicadas. - Se alguma regra DENY/DENY_WITH_LOG corresponder, a permissão será negada. A geração de registros será aplicada se uma ou mais regras correspondentes exigirem geração de registros. - Caso contrário, se qualquer regra ALLOW/ALLOW_WITH_LOG corresponder, a permissão será concedida. A geração de registros será aplicada se uma ou mais regras correspondentes exigirem geração de registros. - Caso contrário, se nenhuma regra se aplicar, a permissão será negada.

etag

string (bytes format)

etag é usado para otimização do controle de simultaneidade, para ajudar a evitar que atualizações simultâneas de uma política substituam-se mutuamente. É altamente recomendável que os sistemas usem etag no ciclo de leitura-modificação-gravação para fazer atualizações de política e evitar disputas. Um etag é retornado na resposta a getIamPolicy e ele é colocado na solicitação a setIamPolicy para garantir que a alteração seja aplicada à mesma versão da política.

Importante: se você usar as condições do IAM, precisará incluir o campo etag sempre que chamar setIamPolicy. Se você omitir esse campo, o IAM permitirá substituir uma política de versão 3 por uma política de versão 1, e todas as condições na política de versão 3 serão perdidas.

Uma string codificada em base64.

Vinculação

Associa members, ou principais, a um role.

Representação JSON
{
  "role": string,
  "members": [
    string
  ],
  "condition": {
    object (Expr)
  },
  "bindingId": string
}
Campos
role

string

Papel atribuído à lista de members ou principais. Por exemplo, roles/viewer, roles/editor ou roles/owner.

Para uma visão geral dos papéis e permissões do IAM, consulte a documentação do IAM. Consulte aqui uma lista dos papéis predefinidos disponíveis.

members[]

string

Especifica as identidades que solicitam acesso a um recurso do Google Cloud. members pode ter os seguintes valores:

  • allUsers: um identificador especial que representa qualquer pessoa na Internet, com ou sem uma conta do Google.

  • allAuthenticatedUsers: um identificador especial que representa qualquer pessoa autenticada com uma Conta do Google ou uma conta de serviço. Não inclui identidades de provedores de identidade externos (IdPs) pela federação de identidade.

  • user:{emailid}: um endereço de e-mail que representa uma Conta do Google específica. Por exemplo, alice@example.com.

  • serviceAccount:{emailid}: um endereço de e-mail que representa uma conta de serviço do Google. Por exemplo, my-other-app@appspot.gserviceaccount.com.

  • serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: identificador de uma conta de serviço do Kubernetes. Por exemplo, my-project.svc.id.goog[my-namespace/my-kubernetes-sa].

  • group:{emailid}: um endereço de e-mail que representa um grupo do Google. Por exemplo, admins@example.com.

  • domain:{domain}: domínio do G Suite (principal) que representa todos os usuários dele. Por exemplo, google.com ou example.com.
  • principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: uma identidade única em um pool de identidades de força de trabalho.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{groupId}: todas as identidades de força de trabalho em um grupo.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: todas as identidades com um valor de atributo específico.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: todas as identidades em um pool de Identidades de força de trabalho.

  • principal://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: identidade única em um pool de identidades de carga de trabalho.

  • principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/group/{groupId}: um grupo de pools de identidades de cargas de trabalho.

  • principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: todas as identidades em um pool de Identidades de carga de trabalho com um determinado atributo.

  • principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/*: todas as identidades em um pool de Identidades de carga de trabalho.

  • deleted:user:{emailid}?uid={uniqueid}: um endereço de e-mail (mais identificador exclusivo) que representa um usuário que foi excluído recentemente. Por exemplo, alice@example.com?uid=123456789012345678901. Se o usuário for recuperado, esse valor será revertido para user:{emailid} e o usuário recuperado manterá o papel na vinculação.

  • deleted:serviceAccount:{emailid}?uid={uniqueid}: um endereço de e-mail (além do identificador exclusivo) que representa uma conta de serviço que foi excluída recentemente. Por exemplo, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. Se a exclusão da conta de serviço for revertida, esse valor será revertido para serviceAccount:{emailid}, e a conta de serviço não excluída manterá o papel na vinculação.

  • deleted:group:{emailid}?uid={uniqueid}: um endereço de e-mail, mais um identificador exclusivo, que representa um grupo do Google que foi excluído recentemente. Por exemplo, admins@example.com?uid=123456789012345678901. Se o grupo for recuperado, esse valor será revertido para group:{emailid} e o grupo recuperado manterá o papel na vinculação.

  • deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: identidade excluída em um pool de identidades de força de trabalho Por exemplo, deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value.

condition

object (Expr)

A condição que está associada a essa vinculação.

Se a condição for avaliada como true, essa vinculação se aplicará à solicitação atual.

Se a condição for avaliada como false, essa vinculação não se aplicará à solicitação atual. No entanto, uma vinculação de papel diferente pode conceder o mesmo papel a um ou mais principais da vinculação.

Para saber quais recursos são compatíveis com as condições nas políticas do IAM, consulte a documentação do IAM.

bindingId

string

Expr

Representa uma expressão textual na sintaxe Common Expression Language (CEL). A CEL é uma linguagem de expressão semelhante a C. A sintaxe e a semântica do CEL estão documentadas em https://github.com/google/cel-spec.

Exemplo (comparação):

title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"

Exemplo (igualdade):

title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"

Exemplo (lógica):

title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"

Exemplo (manipulação de dados):

title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"

As variáveis e funções exatas que podem ser referenciadas em uma expressão são determinadas pelo serviço que a avalia. Consulte a documentação do serviço para mais informações.

Representação JSON
{
  "expression": string,
  "title": string,
  "description": string,
  "location": string
}
Campos
expression

string

Representação textual de uma expressão na sintaxe Common Expression Language.

title

string

Opcional. Título da expressão, ou seja, uma string curta que descreve sua finalidade. Isso pode ser usado, por exemplo, em IUs que permitam inserir a expressão.

description

string

Opcional. Descrição da expressão. Este é um texto mais longo que descreve a expressão, por exemplo, quando o cursor é passado sobre ela em uma IU.

location

string

Opcional. String que indica o local da expressão para o relatório de erros, por exemplo, um nome de arquivo e uma posição no arquivo.

AuditConfig

Especifica a configuração de auditoria para um serviço. A configuração determina quais tipos de permissão são registrados e quais identidades, se houver, estão isentas de geração de registros. Um AuditConfig precisa ter um ou mais AuditLogConfigs.

Se houver AuditConfigs para allServices e um serviço específico, a união dos dois AuditConfigs será usada para esse serviço: os tipos de registro especificados em cada AuditConfig são ativados e os exemptedMembers em cada AuditLogConfig são isentos.

Exemplo de política com vários 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, essa política permite a geração de registros de DATA_READ, DATA_WRITE e ADMIN_READ. Ela também isenta jose@example.com da geração de registros de DATA_READ e aliya@example.com da geração de registros de DATA_WRITE.

Representação JSON
{
  "service": string,
  "auditLogConfigs": [
    {
      object (AuditLogConfig)
    }
  ]
}
Campos
service

string

Especifica um serviço que é ativado para geração de registros de auditoria. Por exemplo: storage.googleapis.com e cloudsql.googleapis.com. allServices é um valor especial que abrange todos os serviços.

auditLogConfigs[]

object (AuditLogConfig)

A configuração para a geração de registros de cada tipo de permissão.

AuditLogConfig

Fornece a configuração para geração de registros de um tipo de permissões. Exemplo:

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

Isso ativa a geração de registros de DATA_READ e DATA_WRITE e isenta jose@example.com da geração de registros de DATA_READ.

Representação JSON
{
  "logType": enum (LogType),
  "exemptedMembers": [
    string
  ],
  "ignoreChildExemptions": boolean
}
Campos
logType

enum (LogType)

O tipo de registro permitido por essa configuração.

exemptedMembers[]

string

Especifica as identidades que não causam geração de registros para esse tipo de permissão. Segue o mesmo formato de Binding.members.

ignoreChildExemptions

boolean

LogType

A lista de tipos de permissão válidos para os quais a geração de registros pode ser configurada. As gravações de administrador sempre são registradas e não são configuráveis.

Tipos enumerados
LOG_TYPE_UNSPECIFIED Caso padrão. Nunca deve ser isso.
ADMIN_READ O administrador lê. Exemplo: CloudIAM getIamPolicy
DATA_WRITE Dados são gravados. Exemplo: CloudSQL Users create
DATA_READ Dados são lidos. Exemplo: lista de usuários do CloudSQL

Regra

Uma regra a ser aplicada a uma Política.

Representação JSON
{
  "description": string,
  "permissions": [
    string
  ],
  "action": enum (Action),
  "in": [
    string
  ],
  "notIn": [
    string
  ],
  "conditions": [
    {
      object (Condition)
    }
  ],
  "logConfig": [
    {
      object (LogConfig)
    }
  ]
}
Campos
description

string

Descrição legível da regra.

permissions[]

string

Uma permissão é uma string no formato ".." (por exemplo, "storage.buckets.list"). O valor "*" corresponde a todas as permissões e uma parte verbal de "*" (por exemplo, "storage.buckets.*") corresponde a todos os verbos.

action

enum (Action)

Obrigatório

in[]

string

Se uma ou mais cláusulas "in" são especificadas, a regra faz a correspondência se PRINCIPAL/AUTHORITY_SELECTOR está em pelo menos uma dessas entradas.

notIn[]

string

Se uma ou mais cláusulas "notIn" são especificadas, a regra corresponde quando PRINCIPAL/AUTHORITY_SELECTOR não está em nenhuma das entradas.

conditions[]

object (Condition)

Restrições adicionais que precisam ser cumpridas. Todas as condições precisam passar para que a regra seja correspondente.

logConfig[]

object (LogConfig)

A configuração retornada aos autores da chamada do CheckPolicy para quaisquer entradas que correspondam à ação LOG.

Ação

Tipos de ação de regra.

Tipos enumerados
NO_ACTION O padrão é nenhuma ação.
ALLOW As "Entradas" correspondentes concedem acesso.
ALLOW_WITH_LOG As "Entradas" correspondentes concedem acesso, e o autor da chamada promete registrar a solicitação conforme o log_configs retornado.
DENY As "Entradas" correspondentes negam o acesso.
DENY_WITH_LOG As "Entradas" correspondentes negam o acesso, e o autor da chamada promete registrar a solicitação conforme o log_configs retornado.
LOG As "Entradas" correspondentes notificam os autores da chamada IAM.Check para gerar registros.

Condição

Uma condição a ser cumprida.

Representação 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)

Um operador com quem o assunto será aplicado.

values[]

string

Os objetos da condição.

Campo de união Subject. Assunto da condição. Subject só pode ser de um dos seguintes tipos:
iam

enum (Attr)

Atributos confiáveis fornecidos pelo sistema IAM.

sys

enum (Attr)

Atributos confiáveis fornecidos por qualquer serviço que tenha recursos e use o sistema IAM para controle de acesso.

svc

string

Atributos confiáveis descarregados pelo serviço.

Atributos

Tipos de atributos.

Enums
NO_ATTR Não atributo padrão.
AUTHORITY O principal ou o seletor de autoridade (se presente).
ATTRIBUTION O principal (mesmo se um seletor de autoridade estiver presente), que só é necessário usar para atribuição, e não para autorização.
SECURITY_REALM Qualquer um dos domínios de segurança no IAMContext (go/security-realms). Quando usada com IN, a condição indica "qualquer um dos realms da solicitação corresponde a um dos valores fornecidos; com NOT_IN, "nenhum dos realms corresponde a nenhum dos valores fornecidos". Observe que um valor pode ser: - 'self:campus' (ou seja, clientes que estão no mesmo campus) - 'self:metro' (ou seja, clientes que estão na mesma área metropolitana) - 'self:cloud-region' (ou seja, permite conexões de clientes que estão na mesma região de nuvem) - 'self:prod-region's auth. Consulte go/security-realms-glossary#guardian para mais informações. - "self" [OBSOLETO] (ou seja, permitir conexões de clientes que estão no mesmo domínio de segurança, que atualmente não tem garantia de ter o tamanho de um campus) - um domínio (por exemplo, "campus-abc") - um grupo de realm (por exemplo, "realms-for-borg-cell-xx", consulte: go/realm-groups. Uma correspondência é determinada por uma verificação de associação ao grupo do realm realizada por um objeto RealmAclRep (go/realm-acl-howto). Não é permitido conceder acesso com base na ausência de um realm. Portanto, as condições de realm só podem ser usadas em um contexto "positivo" (por exemplo, ALLOW/IN ou DENY/NOT_IN).
APPROVER Um aprovador (diferente do solicitante) que autorizou a solicitação. Quando usada com IN, a condição indica que um dos aprovadores associados à solicitação corresponde ao principal especificado ou é membro do grupo especificado. Os aprovadores só podem conceder acesso adicional e, portanto, são usados ​​apenas em um contexto estritamente positivo (por exemplo, ALLOW/IN ou DENY/NOT_IN).
JUSTIFICATION_TYPE

Quais tipos de justificativas foram fornecidos com essa solicitação. Os valores de string precisam corresponder aos nomes de enumeração de security.credentials.JustificationType, por exemplo, "MANUAL_STRING". Não é permitido conceder acesso com base na ausência de uma justificativa. Portanto, as condições de justificativa só podem ser usadas em um contexto "positivo" (por exemplo, ALLOW/IN ou DENY/NOT_IN).

Múltiplas justificativas, por exemplo, um código do Buganizer e um motivo de inserção manual, são normais e aceitas.

CREDENTIALS_TYPE Quais tipos de credenciais foram fornecidas com essa solicitação. Os valores de string precisam corresponder aos nomes de enumeração de security_loas_l2.CredentialsType. Atualmente, somente CREDS_TYPE_EMERGENCY é compatível. Não é permitido conceder acesso com base na ausência de um tipo de credencial. Portanto, as condições só podem ser usadas em um contexto "positivo" (por exemplo, ALLOW/IN ou DENY/NOT_IN).
CREDS_ASSERTION

EXPERIMENTAL -- NÃO USE.

As condições só podem ser usadas em um contexto "positivo" (por exemplo, ALLOW/IN ou DENY/NOT_IN).

Attr

Tipos de atributos.

Tipos enumerados
NO_ATTR Tipo de não atributo padrão
REGION Região do recurso
SERVICE Nome do serviço
NAME Nome do recurso
IP Endereço IP do autor da chamada

Operador

Tipos de operador de condição.

Enums
NO_OP Ambiente autônomo padrão.
EQUALS OBSOLETO. Use IN.
NOT_EQUALS OBSOLETO. Use NOT_IN.
IN A condição será verdadeira se o assunto (ou cada elemento dele, se ele for um conjunto) não corresponder a nenhum dos valores fornecidos.
NOT_IN A condição será verdadeira se o assunto (ou cada elemento dele, se ele for um conjunto) não corresponder a nenhum dos valores fornecidos.
DISCHARGED O assunto é descarregado

LogConfig

Especifica o tipo de registro que o autor da chamada precisa gravar

Representação 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ão type. Precisa ser definido: type pode ser apenas de uma das seguintes opções:
counter

object (CounterOptions)

Opções de contador.

dataAccess

object (DataAccessOptions)

Opções de acesso a dados.

cloudAudit

object (CloudAuditOptions)

Opções de auditoria do Cloud.

CounterOptions

Incrementar um contador de streamz com os nomes de métricas e campos especificados.

Os nomes das métricas precisam começar com "/", geralmente somente em letras minúsculas e terminar em "_count". Os nomes de campo não podem conter uma barra inicial. Os nomes reais das métricas exportadas terão "/iam/policy" como prefixo.

Os nomes dos campos correspondem aos parâmetros de solicitação do IAM, e os valores dos campos são os respectivos valores.

Nomes de campos compatíveis: - "authority", que é "[token]" se IAMContext.token estiver presente, caso contrário, o valor de IAMContext.authority_ selector, se presente, e, caso contrário, uma representação de IAMContext.principal; ou - "iamPrincipal", uma representação de IAMContext.principal, mesmo que um token ou seletor de autoridade esteja presente; ou - "" (string vazia), resultando em um contador sem campos.

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

Representação JSON
{
  "metric": string,
  "field": string,
  "customFields": [
    {
      object (CustomField)
    }
  ]
}
Campos
metric

string

A métrica a ser atualizada.

field

string

O valor do campo a ser atribuído.

customFields[]

object (CustomField)

Campos personalizados.

CustomField

Campos personalizados. Eles podem ser usados para criar um contador com pares de campo/valor arbitrários. Consulte: go/rpcsp-custom-fields.

Representação JSON
{
  "name": string,
  "value": string
}
Campos
name

string

Nome é o nome do campo.

value

string

Valor refere-se ao valor do campo. É importante que, ao contrário de CounterOptions.field, o valor aqui seja uma constante que não seja derivada do IAMContext.

DataAccessOptions

Gravar um registro de acesso a dados (Gin)

Representação JSON
{
  "logMode": enum (LogMode),
  "isDirectAuth": boolean
}
Campos
logMode

enum (LogMode)

isDirectAuth

boolean

Indica que o acesso foi concedido por uma política de concessão normal

LogMode

Especifica o comportamento do cliente na geração de registros do Gin.

Tipos enumerados
LOG_MODE_UNSPECIFIED O cliente não precisa gravar um registro Gin parcial imediatamente após a verificação da autorização. Se o cliente optar por gravar uma e ela falhar, o cliente poderá falhar ao abrir (permita que a operação continue) ou não fechar (processar como um resultado DENY).
LOG_FAIL_CLOSED

A operação do aplicativo no contexto da qual essa verificação de autorização está sendo feita só poderá ser executada se ele tiver sido registrado com sucesso no Gin. Por exemplo, a biblioteca de autorização pode cumprir essa obrigação emitindo uma entrada de registro parcial no momento da verificação da autorização e retornando ALLOW para o aplicativo, se for bem-sucedida.

Se uma regra correspondente tiver essa diretiva, mas o cliente não tiver indicado que vai respeitar esses requisitos, a verificação do IAM vai resultar em falha na autorização definindo CheckPolicyResponse.success=false.

CloudAuditOptions

Gravar um registro no Cloud Audit

Representação JSON
{
  "logName": enum (LogName),
  "authorizationLoggingOptions": {
    object (AuthorizationLoggingOptions)
  },
  "permissionType": enum (PermissionType)
}
Campos
logName

enum (LogName)

O logName para preencher no Cloud Audit Record.

authorizationLoggingOptions

object (AuthorizationLoggingOptions)

Informações usadas pelo pipeline do Cloud Audit Logging. Será descontinuado quando a migração para PermissionType for concluída (b/201806118).

permissionType

enum (PermissionType)

O tipo associado à permissão.

LogName

Enum de nomes de registros.

Tipos enumerados
UNSPECIFIED_LOG_NAME Padrão. Não deve ser usado.
ADMIN_ACTIVITY Corresponde a "cloudaudit.googleapis.com/activity"
DATA_ACCESS Corresponde a "cloudaudit.googleapis.com/dataAccess"

AuthorizationLoggingOptions

Informações relacionadas à autorização usadas pelo Cloud Audit Logging.

Representação JSON
{
  "permissionType": enum (PermissionType)
}
Campos
permissionType

enum (PermissionType)

O tipo da permissão que foi verificada.

PermissionType

A lista de tipos de permissão válidos que podem ser verificados.

Tipos enumerados
PERMISSION_TYPE_UNSPECIFIED Padrão. Não pode ser usado.
ADMIN_READ Uma leitura dos dados do administrador (meta).
ADMIN_WRITE Uma gravação de dados do administrador (meta).
DATA_READ Uma leitura de dados padrão.
DATA_WRITE Uma gravação de dados padrão.

PermissionType

A lista de tipos de permissão válidos que podem ser verificados.

Tipos enumerados
PERMISSION_TYPE_UNSPECIFIED Padrão. Não pode ser usado.
ADMIN_READ Permissões que bloqueiam a leitura da configuração ou dos metadados de recursos.
ADMIN_WRITE Permissões que bloqueiam a modificação da configuração ou dos metadados de recursos.
DATA_READ Permissões que bloqueiam a leitura de dados fornecidos pelo usuário.
DATA_WRITE Permissões que bloqueiam a gravação de dados fornecidos pelo usuário.