Control de acceso de la API Service Management

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ás

servicemanagement.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ás

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

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

  1. Abre la página Endpoints en la Google Cloud consola.

    Abrir la página Puntos finales

  2. Haz clic en el servicio cuyo acceso quieras gestionar.
  3. 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.
  4. 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