Política

Define uma política de Gerenciamento de Identidade e Acesso (IAM, na sigla em inglês). É usada para especificar políticas de controle de acesso a recursos do Cloud Platform.

Uma Policy consiste em uma lista de bindings. Uma binding vincula uma lista de members a um role, em que os membros podem ser contas de usuário, grupos do Google, domínios do Google e contas de serviço. Um role é uma lista nomeada de permissões definidas pelo IAM.

Exemplo de JSON

{
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:mike@example.com",
        "group:admins@example.com",
        "domain:google.com",
        "serviceAccount:my-other-app@appspot.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/viewer",
      "members": ["user:sean@example.com"]
    }
  ]
}

Exemplo de YAML

bindings:
- members:
  - user:mike@example.com
  - group:admins@example.com
  - domain:google.com
  - serviceAccount:my-other-app@appspot.gserviceaccount.com
  role: roles/owner
- members:
  - user:sean@example.com
  role: roles/viewer

Para ler uma descrição do IAM e seus recursos, consulte o guia do desenvolvedor do IAM.

Representação JSON

{
  "version": number,
  "bindings": [
    {
      object(Binding)
    }
  ],
  "auditConfigs": [
    {
      object(AuditConfig)
    }
  ],
  "etag": string
}
Campos
version
(deprecated)

number

Obsoleto.

bindings[]

object(Binding)

Associa uma lista de members a um role. bindings sem membros resultarão em erro.

auditConfigs[]

object(AuditConfig)

Especifica a configuração da geração de registros de auditoria em nuvem para esta política.

etag

string (bytes format)

A etag é usada 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 a etag no ciclo de leitura-modificação-gravação para fazer atualizações de políticas e evitar condições de corrida. Uma etag é retornada na resposta a getIamPolicy e essa etag é colocada na solicitação de setIamPolicy para garantir que a alteração seja aplicada à mesma versão da política.

Se não é fornecida uma etag na chamada para setIamPolicy, a política existente é substituída sem visualização.

Uma string codificada em base64.

Vinculação

Associa members a um role.

Representação JSON

{
  "role": string,
  "members": [
    string
  ],
  "condition": {
    object(Expr)
  }
}
Campos
role

string

Papel atribuído aos members. Por exemplo, roles/viewer, roles/editor ou roles/owner.

members[]

string

Especifica as identidades que solicitam acesso a um recurso do Cloud Platform. Os members podem 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.

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

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

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

  • domain:{domain}: um nome de domínio do Google Apps que representa todos os usuários desse domínio. Por exemplo, google.com ou example.com.

condition

object(Expr)

Não implementado. A condição que está associada a essa vinculação. OBSERVAÇÃO: uma condição não satisfeita impede o acesso do usuário pela vinculação atual. Vinculações diferentes, incluindo as próprias condições, são examinadas de maneira independente.

Expr

Representa um texto de expressão. Exemplo:

title: "User account presence"
description: "Determines whether the request has a user account"
expression: "size(request.user) > 0"
Representação JSON

{
  "expression": string,
  "title": string,
  "description": string,
  "location": string
}
Campos
expression

string

Representação textual de uma expressão na sintaxe de Linguagem de expressão comum.

O contexto do aplicativo a que pertence a mensagem determina qual conjunto de recursos conhecido da Linguagem de expressão comum (CEL, na sigla em inglês) é compatível.

title

string

Um título opcional para a expressão, ou seja, uma string curta descrevendo a finalidade. Isso pode ser usado, por exemplo, em IUs que permitam inserir a expressão.

description

string

Uma descrição opcional 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

Uma sequência opcional indicando a localização da expressão para relatórios 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:foo@gmail.com"
          ]
        },
        {
          "logType": "DATA_WRITE",
        },
        {
          "logType": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "fooservice.googleapis.com"
      "auditLogConfigs": [
        {
          "logType": "DATA_READ",
        },
        {
          "logType": "DATA_WRITE",
          "exemptedMembers": [
            "user:bar@gmail.com"
          ]
        }
      ]
    }
  ]
}

Para o fooservice, essa política permite a geração de registros de DATA_READ, DATA_WRITE e ADMIN_READ. Ela também isenta foo@gmail.com da geração de registros de DATA_READ e bar@gmail.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, cloudsql.googleapis.com. allServices é um valor especial que cobre 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:foo@gmail.com"
      ]
    },
    {
      "logType": "DATA_WRITE",
    }
  ]
}

Isso ativa a geração de registros de "DATA_READ" e "DATA_WRITE" e isenta foo@gmail.com da geração de registros de DATA_READ.

Representação JSON

{
  "logType": enum(LogType),
  "exemptedMembers": [
    string
  ]
}
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.

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.

Enums
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: CloudSQL Users list