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 deservicemanagement.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 , maisservicemanagement.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
Abra a página Endpoints na Google Cloud consola.
- Clique no serviço para o qual quer gerir o acesso.
- Clique no link "PERMISSÕES" na parte superior da página. Isto ativa e desativa o painel de informações.
- 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