Pacote google.iam.v1

Índice

IAMPolicy

Visão geral da API

Gerencia as políticas de gerenciamento de identidade e acesso (IAM, na sigla em inglês).

Qualquer implementação de uma API que ofereça recursos de controle de acesso implementa a interface google.iam.v1.IAMPolicy.

Modelo de dados

O controle de acesso é aplicado quando um principal (usuário ou conta de serviço) executa alguma ação em um recurso exposto por um serviço. Os recursos, identificados por nomes semelhantes a URI, são a unidade de especificação de controle de acesso. As implementações de serviço podem escolher a granularidade do controle de acesso e as permissões aceitas nos recursos. Por exemplo, um serviço de banco de dados pode permitir que o controle de acesso seja especificado somente no nível da Tabela, já outro pode permitir que o controle de acesso também seja especificado no nível da Coluna.

Estrutura da política

Consulte google.iam.v1.Policy

Ela não tem a intenção de ser uma API no estilo CRUD porque as políticas de controle de acesso são criadas e excluídas implicitamente com os recursos aos quais são anexadas.

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 log_types especificados em cada AuditConfig são ativados e os exempted_members em cada AuditLogConfig são isentos.

Exemplo de política com vários AuditConfigs:

{
  "audit_configs": [
    {
      "service": "allServices"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
          "exempted_members": [
            "user:jose@example.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "sampleservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "user:aliya@example.com"
          ]
        }
      ]
    }
  ]
}

Para sampleservice, essa política permite a geração de registros de DATA_READ, DATA_WRITE e ADMIN_READ. Ela também isenta jose@example.com da geração de registros de DATA_READ, e aliya@example.com da geração de registros de DATA_WRITE.

Campos
service

string

Especifica um serviço que é ativado para geração de registros de auditoria. Por exemplo: storage.googleapis.com e cloudsql.googleapis.com. allServices é um valor especial que abrange todos os serviços.

audit_log_configs[]

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:

{
  "audit_log_configs": [
    {
      "log_type": "DATA_READ",
      "exempted_members": [
        "user:jose@example.com"
      ]
    },
    {
      "log_type": "DATA_WRITE",
    }
  ]
}

Isso ativa a geração de registros de DATA_READ e DATA_WRITE e isenta jose@example.com da geração de registros de DATA_READ.

Campos
log_type

LogType

O tipo de registro permitido por essa configuração.

exempted_members[]

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.

ignore_child_exemptions

bool

Especifica se os principais podem ser isentos para o mesmo LogType em políticas de recursos de nível inferior. Se verdadeiro, todas as isenções de nível inferior serão ignoradas.

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

Binding

Associa members a um role.

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. members pode 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@example.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}: domínio do G Suite (principal) que representa todos os usuários dele. Por exemplo, google.com ou example.com.

condition

Expr

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.

GetIamPolicyRequest

Solicita uma mensagem ao método GetIamPolicy.

Campos
resource

string

OBRIGATÓRIO: o recurso para o qual a política está sendo solicitada. Consulte a documentação da operação para ver o valor apropriado ao campo.

options

GetPolicyOptions

OPCIONAL: um objeto GetPolicyOptions para especificar opções para GetIamPolicy. Esse campo é usado apenas pelo Cloud IAM.

GetPolicyOptions

Encapsula as configurações fornecidas para GetIamPolicy.

Campos
requested_policy_version

int32

Opcional. A versão do formato da política a ser retornada. Os valores aceitáveis são 0 e 1. Se o valor for 0 ou o campo for omitido, será retornada a versão 1 do formato da política.

Política

Define uma política de Gerenciamento de Identidade e Acesso (IAM). É usada para especificar políticas de controle de acesso a recursos do Cloud Platform.

Um Policy consiste em uma lista de bindings. Um binding vincula uma lista de members com 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 recursos correspondentes, consulte o guia do desenvolvedor do IAM.

Campos
version

int32

Obsoleto.

bindings[]

Binding

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

audit_configs[]

AuditConfig

Especifica a configuração do Cloud Audit Logging para esta política.

etag

bytes

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.

Se nenhum etag for fornecido na chamada a setIamPolicy, a política atual será substituída.

SetIamPolicyRequest

Solicita uma mensagem ao método SetIamPolicy.

Campos
resource

string

OBRIGATÓRIO: o recurso para o qual a política está sendo especificada. Consulte a documentação da operação para ver o valor apropriado ao campo.

policy

Policy

OBRIGATÓRIO: a política completa a ser aplicada ao resource. O tamanho da política é limitado a menos de 100 KB. Uma política vazia é válida, mas alguns serviços do Cloud Platform, como projetos, podem rejeitá-la.

update_mask

FieldMask

OPCIONAL: uma FieldMask especificando os campos da política a serem modificados. Somente os campos da máscara serão modificados. Se não for fornecida nenhuma máscara, será usada a seguinte máscara padrão: paths: "bindings, etag". Este campo é usado apenas pelo Cloud IAM.

TestIamPermissionsRequest

Solicita uma mensagem ao método TestIamPermissions.

Campos
resource

string

OBRIGATÓRIO: o recurso para o qual o detalhe da política está sendo solicitado. Consulte a documentação da operação para ver o valor apropriado ao campo.

permissions[]

string

O conjunto de permissões a serem verificadas para o resource. As permissões não podem usar caracteres curinga como "*" ou "storage.*". Para mais informações, consulte a Visão geral do IAM.

TestIamPermissionsResponse

Mensagem de resposta para o método TestIamPermissions.

Campos
permissions[]

string

Um subconjunto de TestPermissionsRequest.permissions para que o autor da chamada tem permissão.