- Representação JSON
- Vinculativo
- Expr
- Configuração de auditoria
- Configuração do Log de Auditoria
- Tipo de log
Uma política de gerenciamento de identidade e acesso (IAM), que especifica controles de acesso para recursos do Google Cloud.
Uma Policy
é uma coleção de bindings
. Uma binding
vincula um ou mais members
, ou principais, a uma única role
. Os principais podem ser contas de usuário, contas de serviço, grupos do Google e domínios (como o G Suite). Uma role
é uma lista nomeada de permissões; cada role
pode ser uma função predefinida do IAM ou uma função personalizada criada pelo usuário.
Para alguns tipos de recursos do Google Cloud, uma binding
também pode especificar uma condition
, que é uma expressão lógica que permite 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 oferecem suporte a condições em suas políticas do IAM, consulte a documentação do IAM .
Exemplo JSON:
{
"bindings": [
{
"role": "roles/resourcemanager.organizationAdmin",
"members": [
"user:[email protected]",
"group:[email protected]",
"domain:google.com",
"serviceAccount:[email protected]"
]
},
{
"role": "roles/resourcemanager.organizationViewer",
"members": [
"user:[email protected]"
],
"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:[email protected]
- group:[email protected]
- domain:google.com
- serviceAccount:[email protected]
role: roles/resourcemanager.organizationAdmin
- members:
- user:[email protected]
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 obter uma descrição do IAM e seus recursos, 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 vinculações de funções condicionais deve especificar a versão
Importante: Se você usar as Condições do IAM, deverá 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 indefinido. Para saber quais recursos oferecem suporte a condições em suas políticas do IAM, consulte a documentação do IAM . |
bindings[] | Associa uma lista de As |
auditConfigs[] | Especifica a configuração de registro de auditoria em nuvem para esta política. |
etag | Importante: Se você usar as Condições do IAM, deverá incluir o campo Uma string codificada em base64. |
Vinculativo
members
associados, ou principais, com uma role
.
Representação JSON |
---|
{
"role": string,
"members": [
string
],
"condition": {
object ( |
Campos | |
---|---|
role | Função atribuída à lista de Para uma visão geral das funções e permissões do IAM, consulte a documentação do IAM . Para uma lista das funções predefinidas disponíveis, consulte aqui . |
members[] | Especifica os principais que solicitam acesso a um recurso do Google Cloud.
|
condition | A condição associada a esta ligação. Se a condição for avaliada como Se a condição for avaliada como Para saber quais recursos oferecem suporte a condições em suas políticas do IAM, consulte a documentação do IAM . |
Expr
Representa uma expressão textual na sintaxe da Linguagem de Expressão Comum (CEL). CEL é uma linguagem de expressão semelhante à linguagem C. A sintaxe e a semântica da 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 obter 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 da Common Expression Language. |
title | Opcional. Título para a expressão, ou seja, uma string curta descrevendo sua finalidade. Isso pode ser usado, por exemplo, em interfaces de usuário que permitem a inserção da expressão. |
description | Opcional. Descrição da expressão. Este é um texto mais longo que descreve a expressão, por exemplo, ao passar o mouse sobre ela em uma interface de usuário. |
location | Opcional. String que indica a localização da expressão para relatório de erros, por exemplo, um nome de arquivo e uma posição no arquivo. |
Configuração de auditoria
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, são isentas de registro. Uma AuditConfig deve ter uma 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 log_types especificados em cada AuditConfig serão habilitados e os exemptedMembers em cada AuditLogConfig serão isentos.
Exemplo de política com vários AuditConfigs:
{
"auditConfigs": [
{
"service": "allServices",
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:[email protected]"
]
},
{
"logType": "DATA_WRITE"
},
{
"logType": "ADMIN_READ"
}
]
},
{
"service": "sampleservice.googleapis.com",
"auditLogConfigs": [
{
"logType": "DATA_READ"
},
{
"logType": "DATA_WRITE",
"exemptedMembers": [
"user:[email protected]"
]
}
]
}
]
}
Para o sampleservice, esta política habilita os registros DATA_READ, DATA_WRITE e ADMIN_READ. Ela também isenta [email protected]
do registro DATA_READ e [email protected]
do registro DATA_WRITE.
Representação JSON |
---|
{
"service": string,
"auditLogConfigs": [
{
object ( |
Campos | |
---|---|
service | Especifica um serviço que será habilitado para registro de auditoria. Por exemplo, |
auditLogConfigs[] | A configuração para registro de cada tipo de permissão. |
Configuração do Log de Auditoria
Fornece a configuração para registrar um tipo de permissão. Exemplo:
{
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:[email protected]"
]
},
{
"logType": "DATA_WRITE"
}
]
}
Isso habilita o registro 'DATA_READ' e 'DATA_WRITE', ao mesmo tempo que isenta [email protected] do registro DATA_READ.
Representação JSON |
---|
{
"logType": enum ( |
Campos | |
---|---|
logType | O tipo de log que esta configuração habilita. |
exemptedMembers[] | Especifica as identidades que não geram registro para este tipo de permissão. Segue o mesmo formato de |
Tipo de log
A lista de tipos de permissão válidos para os quais o registro pode ser configurado. As gravações de administrador são sempre registradas e não são configuráveis.
Enumerações | |
---|---|
LOG_TYPE_UNSPECIFIED | Caso padrão. Nunca deveria ser assim. |
ADMIN_READ | O administrador lê. Exemplo: CloudIAM getIamPolicy |
DATA_WRITE | Gravações de dados. Exemplo: usuários do CloudSQL criam |
DATA_READ | Leituras de dados. Exemplo: Lista de usuários do CloudSQL |