- Representação JSON
- Vinculação
- Expr
- AuditConfig
- AuditLogConfig
- LogType
- Regra
- Ação
- Condição
- Atribuição
- Atribuição
- Operador
- LogConfig
- CounterOptions
- CustomField
- DataAccessOptions
- LogMode
- CloudAuditOptions
- LogName
- AuthorizationLoggingOptions
- PermissionType
- PermissionType
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 ( |
Campos | |
---|---|
version |
Especifica o formato da política. Os valores válidos são Qualquer operação que afete as vinculações condicionais de papel precisa especificar a versão
Importante: se você usar as condições do IAM, precisará incluir o campo 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[] |
Associa uma lista de O |
auditConfigs[] |
Especifica a configuração do Cloud Audit Logging para esta política. |
rules[] |
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 |
Importante: se você usar as condições do IAM, precisará incluir o campo Uma string codificada em base64. |
Vinculação
Associa members
, ou principais, a um role
.
Representação JSON |
---|
{
"role": string,
"members": [
string
],
"condition": {
object ( |
Campos | |
---|---|
role |
Papel atribuído à lista de 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[] |
Especifica as identidades que solicitam acesso a um recurso do Google Cloud.
|
condition |
A condição que está associada a essa vinculação. Se a condição for avaliada como Se a condição for avaliada como Para saber quais recursos são compatíveis com as condições nas políticas do IAM, consulte a documentação do IAM. |
bindingId |
|
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 |
Representação textual de uma expressão na sintaxe Common Expression Language. |
title |
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 |
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 |
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 ( |
Campos | |
---|---|
service |
Especifica um serviço que é ativado para geração de registros de auditoria. Por exemplo: |
auditLogConfigs[] |
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 ( |
Campos | |
---|---|
logType |
O tipo de registro permitido por essa configuração. |
exemptedMembers[] |
Especifica as identidades que não causam geração de registros para esse tipo de permissão. Segue o mesmo formato de |
ignoreChildExemptions |
|
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 ( |
Campos | |
---|---|
description |
Descrição legível da regra. |
permissions[] |
Uma permissão é uma string no formato " |
action |
Obrigatório |
in[] |
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[] |
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[] |
Restrições adicionais que precisam ser cumpridas. Todas as condições precisam passar para que a regra seja correspondente. |
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 ( |
Campos | |
---|---|
op |
Um operador com quem o assunto será aplicado. |
values[] |
Os objetos da condição. |
Campo de união Subject . Assunto da condição. Subject só pode ser de um dos seguintes tipos: |
|
iam |
Atributos confiáveis fornecidos pelo sistema IAM. |
sys |
Atributos confiáveis fornecidos por qualquer serviço que tenha recursos e use o sistema IAM para controle de acesso. |
svc |
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 |
Campos | |
---|---|
Campo de união type . Precisa ser definido: type pode ser apenas de uma das seguintes opções: |
|
counter |
Opções de contador. |
dataAccess |
Opções de acesso a dados. |
cloudAudit |
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 ( |
Campos | |
---|---|
metric |
A métrica a ser atualizada. |
field |
O valor do campo a ser atribuído. |
customFields[] |
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 |
Nome é o nome do campo. |
value |
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 ( |
Campos | |
---|---|
logMode |
|
isDirectAuth |
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 ( |
Campos | |
---|---|
logName |
O logName para preencher no Cloud Audit Record. |
authorizationLoggingOptions |
Informações usadas pelo pipeline do Cloud Audit Logging. Será descontinuado quando a migração para PermissionType for concluída (b/201806118). |
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 ( |
Campos | |
---|---|
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. |