La API de Administración de servicios usa la administración de identidades y accesos (Cloud IAM) para controlar el acceso a los servicios administrados y sus recursos secundarios. En esta página, se explican los recursos, las funciones y los permisos de IAM que proporciona la API de Administración de servicios, y cómo usarlos para controlar el acceso.
Recursos de IAM
IAM aplica políticas de IAM en los recursos para controlar quién puede realizar cada acción en los recursos. La API de Service Management utiliza los siguientes recursos para proporcionar su funcionalidad:
Necesitarás permisos diferentes para usar y administrar recursos diferentes. Consulta las siguientes secciones para obtener más información.
Permisos de IAM
Las llamadas a la API de Administración de servicios requieren que el emisor tenga los permisos de IAM necesarios en los recursos de destino.
En la siguiente tabla se enumeran los permisos que se aplican a los servicios:
Permiso | Descripción |
---|---|
servicemanagement.services.delete |
Borrar servicios |
servicemanagement.services.get |
Leer servicios |
servicemanagement.services.create |
Crear servicios nuevos en proyectos |
servicemanagement.services.list |
Crear una lista de servicios en proyectos |
servicemanagement.services.update |
Actualizar servicios |
servicemanagement.services.bind |
Ver y habilitar el servicio en proyectos que controla el emisor |
servicemanagement.services.setIamPolicy |
Establecer la política de acceso de IAM para los servicios |
servicemanagement.services.getIamPolicy |
Leer la política de acceso de IAM para los servicios |
servicemanagement.services.check |
Verificar el estado del consumidor de servicios. Consulta services.check. |
servicemanagement.services.quota |
Asignar una cuota a un consumidor de servicios. Consulta services.allocateQuota |
servicemanagement.services.report |
Informar el uso del servicio. Consulta services.report |
En la siguiente tabla se muestran los permisos necesarios para cada método de API de Service Management, según corresponda. Esta información también está documentada en la Referencia de API:
Método | Permisos necesarios |
---|---|
services.delete |
servicemanagement.services.delete en el service_name especificado. |
services.get |
servicemanagement.services.get en el service_name especificado. |
services.getConfig |
servicemanagement.services.get en el service_name especificado. |
services.undelete |
servicemanagement.services.delete en el service_name especificado. |
services.configs.create |
servicemanagement.services.update en el service_name especificado. |
services.configs.get |
servicemanagement.services.get en el service_name especificado. |
services.configs.list |
servicemanagement.services.get en el service_name especificado. |
services.configs.submit |
servicemanagement.services.update en el service_name especificado. |
services.rollouts.create |
servicemanagement.services.update en el service_name especificado. |
services.rollouts.get |
servicemanagement.services.get en el service_name especificado. |
services.rollouts.list |
servicemanagement.services.get en el service_name especificado. |
Funciones de IAM
Con la administración de identidades y accesos, los permisos se otorgan mediante la vinculación de los usuarios a las funciones. Consulta cómo comprender las funciones para obtener más información.
En la siguiente tabla se enumeran las funciones que se aplican a los servicios:
Función | Permisos |
---|---|
roles/viewer |
servicemanagement.services.get servicemanagement.services.list |
roles/editor |
Todos los permisos de roles/viewer , además deservicemanagement.services.bind servicemanagement.services.check servicemanagement.services.create servicemanagement.services.delete servicemanagement.services.quota servicemanagement.services.report servicemanagement.services.update |
roles/owner |
Todos los permisos de roles/editor , además deservicemanagement.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 |
Administra políticas
IAM evalúa las políticas de manera jerárquica: un recursos secundario siempre hereda la política del nivel superior. Para la API de Service Management, cada servicio administrado es un recurso secundario del proyecto del productor de servicios. Por lo tanto, las funciones otorgadas en el proyecto del productor de servicios se aplican a todos los servicios administrados que pertenecen al proyecto. Consulta Administra políticas para obtener instrucciones sobre cómo otorgar funciones en el nivel de proyecto.
También puedes administrar la política de IAM para un servicio individual. En las siguientes secciones, se describe cómo administrar roles a nivel del servicio con la consola de Google Cloud, la API de Service Management y Google Cloud CLI.
Administra el acceso con la consola de Google Cloud
Abre la página de Endpoints en la consola de Google Cloud.
- Haz clic en el servicio para el que deseas administrar el acceso.
- Haz clic en el vínculo "PERMISOS" que se encuentra en la página superior de la página. Esto activa o desactiva el panel de información.
- En el panel de información, puedes ver la lista de los miembros actuales, agregar miembros nuevos y quitar miembros para cualquier función de nivel de servicio.
Administra el acceso con gcloud CLI
gcloud CLI incluye
gcloud endpoints services
para administrar las políticas de IAM de los servicios administrados:
endpoints services get-iam-policy
- Mostrar la política de IAM del servicio.
endpoints services check-iam-policy
- Verifica la política de IAM del servicio.
endpoints services add-iam-policy-binding
- Agregar un miembro a la función.
endpoints services remove-iam-policy-binding
- Quitar un miembro de una función.
Por ejemplo:
# 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"
Administra el acceso con la API de Service Management
La API de Administración de servicios incluye la API de Política de IAM para administrar políticas de nivel de servicio y de consumidor. Puedes usar el comando de gcurl
para experimentar con los métodos de la API.
Consulta Comienza para ver los pasos iniciales de configuración.
Por ejemplo:
# 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