Policy

Uma política de gestão de identidade e de acesso (IAM), que especifica os controlos de acesso para os recursos do Google Cloud.

Um Policy é uma coleção de bindings. Uma binding associa um ou mais members, ou principais, a um único role. Os principais podem ser contas de utilizador, contas de serviço, grupos Google e domínios (como o G Suite). Uma role é uma lista de autorizações com nome; cada role pode ser uma função predefinida do IAM ou uma função personalizada criada pelo utilizador.

Para alguns tipos de recursos do Google Cloud, uma binding também pode especificar uma condition, que é uma expressão lógica que permite o acesso a um recurso apenas se a expressão for avaliada como true. Uma condição pode adicionar restrições com base nos atributos do pedido, do recurso ou de ambos. Para saber que recursos suportam condições nas respetivas políticas de IAM, consulte a documentação da 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 das respetivas funcionalidades, 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. Os pedidos que especificam um valor inválido são rejeitados.

Qualquer operação que afete as associações de funções condicionais tem de especificar a versão 3. Este requisito aplica-se às seguintes operações:

  • Obter uma política que inclua uma associação de funções condicional
  • Adicionar uma associação de função condicional a uma política
  • Alterar uma associação de função condicional numa política
  • Remover qualquer associação de funções, com ou sem uma condição, de uma política que inclua condições

Importante: se usar condições do IAM, tem de incluir o campo etag sempre que chamar setIamPolicy. Se omitir este campo, o IAM permite-lhe 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 são perdidas.

Se uma política não incluir condições, as operações nessa política podem especificar qualquer versão válida ou deixar o campo não definido.

Para saber que recursos suportam condições nas respetivas políticas de IAM, consulte a documentação da IAM.

bindings[]

object (Binding)

Associa uma lista de members, ou principais, a um role. Opcionalmente, pode especificar um condition que determine como e quando os bindings são aplicados. Cada um dos bindings tem de conter, pelo menos, um principal.

O bindings num Policy pode referir-se a até 1500 responsáveis; até 250 destes responsáveis podem ser grupos Google. Cada ocorrência de um principal conta para estes limites. Por exemplo, se a bindings conceder 50 funções diferentes a user:alice@example.com e a nenhum outro principal, pode adicionar mais 1450 principais à bindings no Policy.

auditConfigs[]

object (AuditConfig)

Especifica a configuração do registo de auditoria na nuvem para esta política.

etag

string (bytes format)

etag é usado para o controlo de simultaneidade otimista como forma de ajudar a evitar que as atualizações simultâneas de uma política se substituam mutuamente. É fortemente sugerido que os sistemas usem o etag no ciclo de leitura-modificação-escrita para fazer atualizações de políticas de modo a evitar condições de concorrência: é devolvido um etag na resposta a getIamPolicy, e espera-se que os sistemas coloquem esse etag no pedido a setIamPolicy para garantir que a respetiva alteração é aplicada à mesma versão da política.

Importante: se usar condições do IAM, tem de incluir o campo etag sempre que chamar setIamPolicy. Se omitir este campo, o IAM permite-lhe 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 são perdidas.

Uma string codificada em Base64.