Controla el acceso en la API de Administrador

La API de Administrador de Google App Engine utiliza Google Cloud Identity and Access Management (IAM) para el control de acceso.

El control de acceso en la API de Administrador de Google App Engine se puede configurar a nivel del proyecto. El acceso a los proyectos de GCP y los recursos dentro de ellos se pueden otorgar a cuentas de usuario, dominios, grupos o cuentas de servicio. Por ejemplo:

  • Otorga acceso a todos los recursos dentro de un proyecto a un miembro individual o a todos los miembros de una cuenta de servicio.
  • Otorga acceso por función, en lugar de para todo el proyecto, de modo que los miembros del proyecto tengan capacidades limitadas. Por ejemplo, acceso de solo lectura a los recursos, o la capacidad de implementar nuevas versiones, pero no de configurar el tráfico para esas versiones.

Para obtener una descripción detallada de IAM y sus funciones, consulta la documentación de Google Cloud Identity and Access Management.

Cada método de la API de Administrador requiere que la persona que llama tenga los permisos necesarios. Consulta la siguiente sección para obtener una lista de todos los permisos y las funciones que admite IAM de la API de Administrador.

Permisos y funciones

En esta sección, se resumen los permisos y las funciones que admite IAM de la API de Administrador.

Para obtener detalles sobre las funciones de App Engine, consulta Control de acceso de App Engine.

Permisos necesarios

En las siguientes tablas se enumeran los permisos que debe tener el emisor para llamar a cada método:

Método Permisos necesarios
apps.create appengine.applications.create en el recurso Application solicitado. Requiere permisos de función de Propietario en el proyecto de GCP.
apps.get appengine.applications.get en el recurso Application solicitado.
apps.patch appengine.applications.update en el recurso Application solicitado.
apps.repair appengine.applications.update en el recurso Application solicitado.
apps.authorizedCertificates.create appengine.applications.update en el recurso Application solicitado.
apps.authorizedCertificates.delete appengine.applications.update en el recurso Application solicitado.
apps.authorizedCertificates.get appengine.applications.get en el recurso Application solicitado.
apps.authorizedCertificates.list appengine.applications.get en el recurso Application solicitado.
apps.authorizedCertificates.patch appengine.applications.update en el recurso Application solicitado.
apps.authorizedDomains.list appengine.applications.get en el recurso Application solicitado.
apps.domainMappings.create appengine.applications.update en el recurso Application solicitado.
apps.domainMappings.delete appengine.applications.update en el recurso Application solicitado.
apps.domainMappings.get appengine.applications.get en el recurso Application solicitado.
apps.domainMappings.list appengine.applications.get en el recurso Application solicitado.
apps.domainMappings.patch appengine.applications.update en el recurso Application solicitado.
apps.locations.get appengine.applications.get en el recurso Application solicitado.
apps.locations.list appengine.applications.get en el recurso Application solicitado.
apps.operations.get appengine.applications.get en el recurso Application solicitado.
apps.operations.list appengine.applications.get en el recurso Application solicitado.
apps.services.delete appengine.services.delete en el recurso Service solicitado.
apps.services.get appengine.services.get en el recurso Service solicitado.
apps.services.list appengine.services.list en el recurso Application solicitado.
apps.services.patch appengine.services.update en el recurso Service solicitado.
apps.services.versions.create appengine.versions.create en el recurso Service solicitado.
apps.services.versions.delete appengine.versions.delete en el recurso Version solicitado.
apps.services.versions.get appengine.versions.get en el recurso Version solicitado.
apps.services.versions.list appengine.versions.list en el recurso Service solicitado.
apps.services.versions.patch appengine.versions.update en el recurso Version solicitado.
apps.services.versions.instances.debug appengine.instances.enableDebug en el recurso Instance solicitado.
apps.services.versions.instances.delete appengine.instances.delete en el recurso Instance solicitado.
apps.services.versions.instances.get appengine.instances.get en el recurso Instance solicitado.
apps.services.versions.instances.list appengine.instances.list en el recurso Version solicitado.

Funciones

En la siguiente tabla, se enumeran las funciones de IAM de la API de Administrador de Google App Engine junto con la lista correspondiente de todos los permisos que se incluyen en cada función. Ten en cuenta que cada permiso es aplicable a un tipo de recurso específico.

Función Permisos incluidos:

Administrador de App Engine

/roles/appengine.appAdmin

Acceso de lectura, escritura y modificación a todos los ajustes y la configuración de la aplicación.

appengine.applications.disable

appengine.applications.get
appengine.applications.update
appengine.instances.delete
appengine.instances.enableDebug
appengine.instances.get
appengine.instances.list
appengine.instances.update

appengine.operations.cancel

appengine.operations.delete

appengine.operations.get
appengine.operations.list
appengine.runtimes.actAsAdmin
appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

Implementador de App Engine

/roles/appengine.deployer

Acceso de solo lectura a todos los ajustes y configuración de la aplicación.

Acceso de escritura solo para crear una versión nueva. No puede modificar las versiones existentes, salvo que sea a fin de borrar versiones que no reciban tráfico. No se puede configurar el tráfico a una versión.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.create

appengine.services.get
appengine.services.list
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

Administrador de servicios de App Engine

/roles/appengine.serviceAdmin

Acceso de solo lectura a todos los ajustes y configuración de la aplicación.

Acceso de escritura a los ajustes de nivel de servicio y de versión, incluida la configuración del tráfico. No se pueden implementar versiones de aplicaciones.

appengine.applications.get
appengine.instances.delete
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

Visualizador de App Engine

/roles/appengine.appViewer

Acceso de solo lectura a todos los ajustes y configuración de la aplicación.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

Visualizador de código de App Engine

/roles/appengine.codeViewer

Acceso de solo lectura a todas las opciones de configuración de la aplicación y al código fuente implementado.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.getFileContents
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

Ten en cuenta que las funciones roles/owner, roles/editor y roles/viewer también incluyen permisos para otros servicios de Google Cloud Platform. Para obtener más información sobre estas funciones básicas, consulta Control de acceso.

Permisos no disponibles para funciones personalizadas

Si deseas configurar el acceso más allá de las funciones de IAM predefinidas, puedes crear una función personalizada. Sin embargo, los siguientes permisos no están disponibles para funciones personalizadas:

  • appengine.applications.disable
  • appengine.applications.list
  • appengine.instances.update
  • appengine.operations.cancel
  • appengine.operations.delete
  • appengine.services.create

Estos permisos no se necesitan para ninguna operación.

Control de acceso a través de GCP Console

Puede usar GCP Console a fin de administrar el control de acceso para tus proyectos de GCP.

Establece controles de acceso para todo el proyecto

Para otorgar a los miembros acceso a un proyecto de GCP y sus recursos, consulta Otorga, cambia y revoca el acceso a los miembros del proyecto.

Establece controles de acceso a la cuenta de servicio

Puedes crear una cuenta de servicio en un proyecto de GCP para otorgar a tu aplicación acceso programático a los servicios de GCP. Por ejemplo, usa una cuenta de servicio para permitir que un proyecto de GCP envíe una solicitud HTTP con la API de Administrador de Google App Engine a otro proyecto de GCP.

Para crear cuentas de servicio y otorgar acceso, consulta los siguientes temas de IAM:

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

API de Administrador de App Engine