La API Service Management usa Gestión de Identidades y Accesos (Cloud IAM) para controlar el acceso a los servicios gestionados y sus recursos secundarios. En esta página se explican los recursos, los roles y los permisos de gestión de identidades y accesos que proporciona la API Service Management, así como la forma de usarlos para controlar el acceso.
Recursos de gestión de identidades y accesos
IAM aplica políticas de gestión de identidades y accesos a los recursos para controlar quién puede realizar qué acciones en ellos. La API Service Management usa los siguientes recursos para proporcionar sus funciones:
Necesitarás diferentes permisos para usar y gestionar distintos recursos. Consulta las siguientes secciones para obtener más información.
Permisos de gestión de identidades y accesos
Para llamar a la API Service Management, el llamador debe tener los permisos de gestión de identidades y accesos necesarios en los recursos de destino.
En la siguiente tabla se indican los permisos que se aplican a los servicios:
Permiso | Descripción |
---|---|
servicemanagement.services.delete |
Eliminar servicios. |
servicemanagement.services.get |
Leer servicios. |
servicemanagement.services.create |
Crear servicios en proyectos. |
servicemanagement.services.list |
Permiso para mostrar los servicios de los proyectos. |
servicemanagement.services.update |
Actualizar servicios. |
servicemanagement.services.bind |
Ver y habilitar el servicio en los proyectos que controla la persona que llama. |
servicemanagement.services.setIamPolicy |
Defina la política de acceso de gestión de identidades y accesos para los servicios. |
servicemanagement.services.getIamPolicy |
Leer la política de acceso de gestión de identidades y accesos de los servicios. |
servicemanagement.services.check |
Comprueba el estado del consumidor del servicio. Consulta services.check. |
servicemanagement.services.quota |
Asigna cuota a un consumidor de un servicio. Consulta services.allocateQuota. |
servicemanagement.services.report |
Informar del uso del servicio. Consulta services.report. |
En la siguiente tabla se muestran los permisos necesarios para cada método de la API Service Management, cuando proceda. Esta información también se documenta en la referencia de la API:
Método | Permisos obligatorios |
---|---|
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. |
Roles de gestión de identidades y accesos
Con Gestión de Identidades y Accesos, los permisos se conceden vinculando usuarios a roles. Consulta Descripción de los roles para obtener más información.
En la siguiente tabla se enumeran los roles que se aplican a los servicios:
Rol | Permisos |
---|---|
roles/viewer |
servicemanagement.services.get servicemanagement.services.list |
roles/editor |
Todos los permisos de roles/viewer , másservicemanagement.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 , másservicemanagement.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 |
Gestionar políticas
Gestión de identidades y accesos evalúa las políticas de forma jerárquica: un recurso secundario siempre hereda la política de su elemento superior. En la API Service Management, cada servicio gestionado es un recurso secundario de su proyecto de productor de servicios. Por lo tanto, los roles concedidos en el proyecto de productor de servicios se aplican a todos los servicios gestionados que pertenecen al proyecto. Consulta las instrucciones para asignar roles a nivel de proyecto en el artículo Gestionar políticas.
También puedes gestionar la política de gestión de identidades y accesos de un servicio concreto. En las siguientes secciones se describe cómo gestionar roles a nivel de servicio mediante la Google Cloud consola, la API Service Management y la CLI de Google Cloud.
Gestionar el acceso mediante la consola de Google Cloud
Abre la página Endpoints en la Google Cloud consola.
- Haz clic en el servicio cuyo acceso quieras gestionar.
- En la parte superior de la página, haz clic en el enlace "PERMISOS". De esta forma, se activa y desactiva el panel de información.
- En el panel de información, puedes ver la lista de miembros actuales, añadir miembros y quitar miembros de cualquier rol a nivel de servicio.
Gestionar el acceso con la CLI de gcloud
gcloud CLI incluye comandos de gcloud endpoints services
para gestionar las políticas de gestión de identidades y accesos de los servicios gestionados:
endpoints services get-iam-policy
- Muestra la política de gestión de identidades y accesos del servicio.
endpoints services check-iam-policy
- Comprueba la política de gestión de identidades y accesos del servicio.
endpoints services add-iam-policy-binding
- Añade un miembro a un rol.
endpoints services remove-iam-policy-binding
- Quita un miembro de un rol.
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"
Gestionar el acceso mediante la API Service Management
La API Service Management incluye la API IAM Policy para gestionar las políticas a nivel de servicio y de consumidor. Puedes usar el comando gcurl
para experimentar con los métodos de la API.
Consulta la sección Empezar para ver los pasos de configuración inicial.
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