Control de acceso a la API de Service Management

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 de

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, además de

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

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

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

    Abrir la página de Endpoints

  2. Haz clic en el servicio para el que deseas administrar el acceso.
  3. 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.
  4. 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 comandos 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