Controla el acceso en la API de Administrador

La API de App Engine Admin usa la administración de identidades y accesos (IAM) para el control de acceso.

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

  • Otorga acceso a todos los recursos dentro de un proyecto a un usuario individual o una cuenta de servicio.
  • Otorga acceso parcial a los recursos dentro del proyecto. 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 características, consulta la documentación de IAM.

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 la API de Administrador.

Permisos y funciones

En esta sección, se resumen los permisos y las funciones que admite 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.
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.

Roles

En la siguiente tabla, se enumeran los roles de IAM de la API de App Engine Admin 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. 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 con la consola de Google Cloud

Puedes usar la consola de Google Cloud para administrar el control de acceso de tus proyectos de la consola de Google Cloud.

Establece controles de acceso para todo el proyecto

Para otorgar a los principales acceso a un proyecto de Google Cloud y a sus recursos, consulta Otorga, cambia y revoca el acceso.

Establece controles de acceso a la cuenta de servicio

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

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