Control de acceso a la API de Service Management

La API de Service Management utiliza Cloud Identity and Access Management para controlar el acceso a los servicios y los recursos secundarios. En esta página, se explican los permisos y las funciones de IAM que se utilizan con la API de Service Management, y cómo utilizarlos para controlar el acceso.

Modelo de recursos

Cloud 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:

Por lo general, necesitas todos los permisos para los servicios administrados y los recursos secundarios, de manera que puedas crear servicios, configuraciones de servicios y, además, implementaciones.

Los usuarios necesitan el permiso servicemanagement.services.bind en el servicio para poder verlo y habilitarlo.

Permisos de IAM

Las llamadas a la API de Service Management requieren que el emisor tenga los permisos de IAM necesarios en los recursos a los que accede la llamada.

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.disable En el proyecto: serviceusage.services.disable
services.enable En el proyecto: serviceusage.services.enable
En el servicio: servicemanagement.services.bind
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 Cloud Identity and Access Management, los permisos se otorgan mediante la vinculación de los usuarios a las funciones. Consulta Comprende 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, más

servicemanagement.services.delete
servicemanagement.services.create
servicemanagement.services.update
servicemanagement.services.bind
servicemanagement.services.check
servicemanagement.services.quota
servicemanagement.services.report
roles/owner Todos los permisos de roles/editor, más

servicemanagement.services.setIamPolicy
servicemanagement.services.getIamPolicy
roles/servicemanagement.serviceConsumer servicemanagement.services.bind
roles/servicemanagement.serviceController servicemanagement.services.get
servicemanagement.services.check
servicemanagement.services.quota
servicemanagement.services.report

Administra políticas

Cloud 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 funciones a nivel de servicio con el uso de Google Cloud Platform Console, la API de Service Management y el SDK de Google Cloud.

Administra el acceso con Google Cloud Platform Console

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

    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 la API de Service Management

La API de Service Management incluye la API de IAM Policy para administrar políticas de nivel de servicio. Puedes utilizar el comando gcurl para experimentar con los métodos de 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

Administra el acceso con el SDK de Cloud

El SDK de Cloud incluye los siguientes comandos que sirve para administrar las políticas de IAM para los servicios administrados:

  • endpoints services get-iam-policy
    • Mostrar 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"
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Service Infrastructure