Controle de acesso à API Service Management

A API Service Management usa o Cloud Identity and Access Management para controlar o acesso a serviços e respectivos recursos filhos. Nesta página, explicamos os papéis e permissões de IAM usados com a API Service Management e como usá-los para controlar o acesso.

Modelo de recurso

O Cloud IAM aplica políticas de IAM a recursos para controlar quem pode realizar quais ações nos recursos. A API Service Management usa os seguintes recursos para fornecer a funcionalidade correspondente:

Você normalmente precisa de todas as permissões para serviços gerenciados e respectivos recursos filhos para poder criar serviços, configurações de serviço e distribuições.

Os usuários precisam da permissão servicemanagement.services.bind no seu serviço para visualizá-lo e ativá-lo.

Permissões de IAM

As chamadas à API Service Management exigem que o autor da chamada tenha as permissões de IAM necessárias nos recursos que a chamada está acessando.

Na tabela a seguir, veja as permissões que se aplicam aos serviços.

Permissão Descrição
servicemanagement.services.delete Excluir serviços.
servicemanagement.services.get Ler serviços.
servicemanagement.services.create Criar novos serviços em projetos.
servicemanagement.services.list Listar serviços em projetos.
servicemanagement.services.update Atualizar serviços.
servicemanagement.services.bind Visualizar e ativar o serviço nos projetos controlados pelo chamador.
servicemanagement.services.setIamPolicy Definir políticas de acesso de IAM para serviços.
servicemanagement.services.getIamPolicy Ler políticas de acesso IAM para serviços.
servicemanagement.services.check Verificar o status de consumidores de serviços. Consulte services.check.
servicemanagement.services.quota Alocar cota para um consumidor de serviço. Consulte services.allocateQuota.
servicemanagement.services.report Relatar uso do serviço. Consulte services.report.

Na tabela a seguir, veja as permissões necessárias para cada método da API Service Management, conforme aplicável. Estas informações também estão documentadas na Referência da API.

Método Permissões necessárias
services.delete servicemanagement.services.delete no service_name especificado.
services.disable No projeto: serviceusage.services.disable.
services.enable No projeto: serviceusage.services.enable.
No serviço: servicemanagement.services.bind.
services.get servicemanagement.services.get no service_name especificado.
services.getConfig servicemanagement.services.get no service_name especificado.
services.undelete servicemanagement.services.delete no service_name especificado.
services.configs.create servicemanagement.services.update no service_name especificado.
services.configs.get servicemanagement.services.get no service_name especificado.
services.configs.list servicemanagement.services.get no service_name especificado.
services.configs.submit servicemanagement.services.update no service_name especificado.
services.rollouts.create servicemanagement.services.update no service_name especificado.
services.rollouts.get servicemanagement.services.get no service_name especificado.
services.rollouts.list servicemanagement.services.get no service_name especificado.

Papéis de IAM

Com o Cloud Identity and Access Management, as permissões são concedidas vinculando usuários a papéis. Consulte detalhes em Noções básicas sobre papéis.

Na tabela a seguir, veja os papéis que se aplicam aos serviços.

Papel Permissões
roles/viewer servicemanagement.services.get
servicemanagement.services.list
roles/editor Todas as permissões de roles/viewer, mais

servicemanagement.services.delete
servicemanagement.services.create
servicemanagement.services.update
servicemanagement.services.bind
servicemanagement.services.check
servicemanagement.services.quota
servicemanagement.services.report
roles/owner Todas as permissões de roles/editor, mais

servicemanagement.services.setIamPolicy
servicemanagement.services.getIamPolicy
roles/servicemanagement.serviceConsumer servicemanagement.services.bind
roles/servicemanagement.serviceController servicemanagement.services.get
servicemanagement.services.check
servicemanagement.services.quota
servicemanagement.services.report

Gerenciamento de políticas

O Cloud IAM avalia as políticas hierarquicamente: um recurso filho sempre herda a política do recurso pai. Para a API Service Management, cada serviço gerenciado é um recurso filho do próprio projeto de produtor de serviço. Portanto, os papéis concedidos no projeto de produtor aplicam-se a todos os serviços gerenciados pertencentes a ele. Consulte Como gerenciar políticas para ver instruções sobre como conceder papéis no nível do projeto.

Você também pode gerenciar a política de IAM de um serviço individual. Nas seções a seguir, descrevemos como gerenciar papéis de nível de serviço usando o console do Google Cloud Platform, a API Service Management e o Google Cloud SDK.

Como gerenciar o acesso usando o console do Google Cloud Platform

  1. Abra a página Endpoints no console do Google Cloud Platform.

    Abrir a página Endpoints

  2. Clique em um serviço para gerenciar o acesso dele.
  3. Clique no link "PERMISSÕES" na parte superior da página. Isso alterna a exibição do painel de informações.
  4. No painel de informações, veja a lista de membros atuais, adicionar e remover membros de qualquer papel de nível de serviço.

Como gerenciar o acesso usando a API Service Management

A API Service Management inclui a API IAM Policy para o gerenciamento de políticas de nível de serviço. Use o comando gcurl para testar os métodos da API. Consulte as etapas iniciais de configuração em Primeiros passos.

Exemplo:

# View the current IAM policy on service "endpointsapis.appspot.com".
gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com:getIamPolicy

Gerenciamento de acesso com o Cloud SDK

O Cloud SDK inclui os seguintes comandos para gerenciar políticas IAM de serviços gerenciados:

  • endpoints services get-iam-policy
    • mostrar a política do IAM do serviço
  • endpoints services add-iam-policy-binding
    • adicionar um membro a um papel
  • endpoints services remove-iam-policy-binding
    • remover um membro de um papel

Exemplo:

# Show the IAM policy of service "endpointsapis.appspot.com".
gcloud endpoints services get-iam-policy endpointsapis.appspot.com

# The above command may produce an output similar to this:
bindings:
- members:
  - user:email1@gmail.com
  - group:group1@googlegroups.com
  role: roles/servicemanagement.serviceConsumer

# Add a user to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"

# Add a group to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"

# Remove a user from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"

# Remove a group from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Service Infrastructure