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.

GetIamPolicy

rpc GetIamPolicy(GetIamPolicyRequest) retorna (Policy)

Busca a política de controle de acesso de um recurso. Retornará uma política vazia se o recurso estiver presente e não tiver um conjunto de políticas.

Escopos da autorização

Requer o seguinte escopo OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Para mais informações, consulte a Visão geral da autenticação.

SetIamPolicy

rpc SetIamPolicy(SetIamPolicyRequest) retorna (Policy)

Define a política de controle de acesso no recurso especificado. Substitui qualquer política existente.

Escopos da autorização

Requer o seguinte escopo OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Para mais informações, consulte a Visão geral da autenticação.

TestIamPermissions

rpc TestIamPermissions(TestIamPermissionsRequest) retorna (TestIamPermissionsResponse)

Retorna permissões do autor da chamada no recurso especificado. Se o recurso não estiver presente, isso retornará um conjunto vazio de permissões, não um erro NOT_FOUND.

Observação: essa operação foi projetada para ser usada na criação de IUs e ferramentas de linha de comando e não para verificação de autorização. Essa operação pode "falhar em abrir" sem aviso prévio.

Escopos da autorização

Requer o seguinte escopo OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Para saber mais, consulte a Visão geral da autenticação.

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 serão ativados, e os membros isentos em cada AuditLogConfig estarão isentos.

Exemplo de política com vários AuditConfigs:

{
  "audit_configs": [
    {
      "service": "allServices"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
          "exempted_members": [
            "user:foo@gmail.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "fooservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "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.

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.

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:foo@gmail.com"
      ]
    },
    {
      "log_type": "DATA_WRITE",
    }
  ]
}

Isso permite a geração de registros 'DATA_READ' e 'DATA_WRITE', enquanto isenta foo@gmail.com da geração de registros 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.

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

Vinculação

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. 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

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.

GetIamPolicyRequest

Mensagem de solicitação para o 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 para este campo.

Policy

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.

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 recursos correspondentes, consulte o guia do desenvolvedor do IAM.

Campos
version
(deprecated)

int32

Obsoleto.

bindings[]

Binding

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

audit_configs[]

AuditConfig

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

etag

bytes

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 nenhuma etag é fornecida na chamada para setIamPolicy, a política existente é substituída às cegas.

SetIamPolicyRequest

Mensagem de solicitação para o 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 para este campo.

policy

Policy

OBRIGATÓRIO: a política completa a ser aplicada ao resource. O tamanho da política é limitado a algumas dezenas de KB. Uma política vazia é uma política válida, mas certos serviços do Cloud Platform (como Projetos) podem rejeitá-la.

update_mask

FieldMask

OPCIONAL: um FieldMask que especifica quais campos da política precisam ser 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

Mensagem de solicitação para o 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 para este campo.

permissions[]

string

O conjunto de permissões a serem verificadas do resource. As permissões não podem usar caracteres curinga como "*" ou "storage.*". Para mais informações, consulte 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.