Controlo de acesso da API Service Management

A API Service Management usa a gestão de identidade e de acesso (Cloud IAM) para controlar o acesso aos serviços geridos e aos respetivos recursos subordinados. Esta página explica os recursos, as funções e as autorizações da IAM fornecidos pela API Service Management e como usá-los para controlar o acesso.

Recursos do IAM

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

Precisa de autorizações diferentes para usar e gerir diferentes recursos. Consulte as secções seguintes para ver detalhes.

Autorizações de IAM

As chamadas à API Service Management requerem que o autor da chamada tenha as autorizações do IAM necessárias nos recursos de destino.

A tabela seguinte indica as autorizações que se aplicam aos serviços:

Autorização Descrição
servicemanagement.services.delete Eliminar serviços.
servicemanagement.services.get Serviços de leitura.
servicemanagement.services.create Criar novos serviços em projetos.
servicemanagement.services.list Apresenta serviços em projetos.
servicemanagement.services.update Atualizar serviços.
servicemanagement.services.bind Ver e ativar o serviço em projetos que o autor da chamada controla.
servicemanagement.services.setIamPolicy Definir política de acesso IAM para serviços.
servicemanagement.services.getIamPolicy Leia a política de acesso IAM para serviços.
servicemanagement.services.check Verifique o estado do consumidor do serviço. Consulte services.check
servicemanagement.services.quota Atribua quota a um consumidor de serviços. Consulte services.allocateQuota
servicemanagement.services.report Comunique a utilização do serviço. Consulte services.report

A tabela seguinte mostra as autorizações necessárias para cada método da API Service Management, quando aplicável. Estas informações também estão documentadas na referência da API:

Método Autorizações necessárias
services.delete servicemanagement.services.delete no service_name especificado.
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.

Funções de IAM

Com a gestão de identidade e acesso, as autorizações são concedidas associando utilizadores a funções. Consulte o artigo Compreender as funções para ver detalhes.

A tabela seguinte indica as funções que se aplicam aos serviços:

Função Autorizações
roles/viewer servicemanagement.services.get
servicemanagement.services.list
roles/editor Todas as autorizações de roles/viewer, além de

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

servicemanagement.services.getIamPolicy
servicemanagement.services.setIamPolicy
roles/servicemanagement.admin monitoring.timeSeries.list
resourcemanager.folders.get
resourcemanager.folders.list
resourcemanager.organizations.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceconsumermanagement.consumers.get
serviceconsumermanagement.quota.get
serviceconsumermanagement.quota.update
serviceconsumermanagement.tenancyu.addResource
serviceconsumermanagement.tenancyu.create
serviceconsumermanagement.tenancyu.delete
serviceconsumermanagement.tenancyu.list
serviceconsumermanagement.tenancyu.removeResource
servicemanagement.services.bind
servicemanagement.services.check
servicemanagement.services.create
servicemanagement.services.delete
servicemanagement.services.get
servicemanagement.services.getIamPolicy
servicemanagement.services.list
servicemanagement.services.quota
servicemanagement.services.report
servicemanagement.services.setIamPolicy
servicemanagement.services.update
serviceusage.quotas.get
serviceusage.services.get
roles/servicemanagement.configEditor servicemanagement.services.get
servicemanagement.services.update
roles/servicemanagement.reporter servicemanagement.services.report
roles/servicemanagement.serviceConsumer servicemanagement.services.bind
roles/servicemanagement.serviceController servicemanagement.services.check
servicemanagement.services.get
servicemanagement.services.quota
servicemanagement.services.report

Gerir políticas

O IAM avalia as políticas hierarquicamente: um recurso filho herda sempre a política do respetivo recurso principal. Para a API Service Management, cada serviço gerido é um recurso filho do projeto do produtor do serviço. Por conseguinte, as funções concedidas no projeto do produtor de serviços aplicam-se a todos os serviços geridos que pertencem ao projeto. Consulte o artigo Gerir políticas para ver as instruções de concessão de funções ao nível do projeto.

Também pode gerir a política IAM de um serviço individual. As secções seguintes descrevem como gerir funções ao nível do serviço através da Google Cloud consola, da API Service Management e da CLI Google Cloud.

Gerir o acesso através da Google Cloud consola

  1. Abra a página Endpoints na Google Cloud consola.

    Abra a página Pontos finais

  2. Clique no serviço para o qual quer gerir o acesso.
  3. Clique no link "PERMISSÕES" na parte superior da página. Isto ativa e desativa o painel de informações.
  4. No painel de informações, pode ver a lista de membros atuais, adicionar novos membros e remover membros para qualquer função ao nível do serviço.

Gerir o acesso através da CLI gcloud

A CLI gcloud inclui gcloud endpoints services comandos para gerir políticas de IAM para serviços geridos:

  • endpoints services get-iam-policy
    • Mostrar a Política IAM do serviço.
  • endpoints services check-iam-policy
    • Verifique a política IAM do serviço.
  • endpoints services add-iam-policy-binding
    • Adicione um membro a uma função.
  • endpoints services remove-iam-policy-binding
    • Remova um membro de uma função.

Por 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"

Gerir o acesso através da API Service Management

A Service Management API inclui a API IAM Policy para gerir políticas ao nível do serviço e do consumidor. Pode usar o comando gcurl para experimentar os métodos da API. Consulte o artigo Introdução para ver os passos de configuração inicial.

Por exemplo:

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

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