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)
    }
  ],
  "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.

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.