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.

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"
          ],
        }
      ],
      "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)
    }
  ],
  "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 um Policy pode se referir a até 1.500 principais, e 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.

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.