A API Service Management usa o gerenciamento de identidade e acesso (Cloud IAM) para controlar o acesso a serviços gerenciados e os respectivos recursos filhos. Nesta página, explicamos os recursos, papéis e permissões do IAM fornecidos pela API Service Management e como usá-los para controlar o acesso.
Recursos IAM
O 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ê precisará de permissões diferentes para usar e gerenciar recursos diferentes. Consulte as seções a seguir para mais detalhes.
Permissões IAM
As chamadas à API Service Management exigem que o autor da chamada tenha as permissões de IAM necessárias nos recursos de destino.
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.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 IAM
Com o gerenciamento de identidade e acesso 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 , maisservicemanagement.services.bind servicemanagement.services.check servicemanagement.services.create servicemanagement.services.delete servicemanagement.services.quota servicemanagement.services.report servicemanagement.services.update |
roles/owner |
Todas as permissõ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 |
Como gerenciar políticas
O 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. As seções a seguir descrevem como gerenciar papéis de nível de serviço usando o Google Cloud Console, a Service Management API e a Google Cloud CLI.
Como gerenciar o acesso usando o console do Google Cloud
Abra a página "Endpoints" no console do Google Cloud.
- Clique em um serviço para gerenciar o acesso dele.
- Clique no link "PERMISSÕES" na parte superior da página. Isso alterna a exibição do painel de informações.
- 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 CLI gcloud
A CLI gcloud inclui
comandos gcloud endpoints services
para gerenciar políticas do IAM de serviços gerenciados:
endpoints services get-iam-policy
- mostrar a política do IAM do serviço
endpoints services check-iam-policy
- Marcar 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"
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 e de consumidor. 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
# 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