Funciones que otorgan acceso a App Engine

Las funciones determinan qué servicios y acciones están disponibles para una cuenta de usuario o de servicio. Los siguientes tipos de funciones otorgan acceso a App Engine:

  • Funciones básicas, que se aplican a todos los servicios y los recursos de un proyecto, incluido App Engine, entre otros. Por ejemplo, una cuenta con la función de editor puede cambiar la configuración de App Engine y de Cloud Storage.

  • Funciones predefinidas de App Engine, que proporcionan acceso detallado a App Engine. Cada servicio en el proyecto de Cloud proporciona sus propias funciones predefinidas. Por ejemplo, una cuenta que solo tiene la función de implementador de App Engine puede implementar apps de App Engine, pero no puede ver ni crear objetos en Cloud Storage. Esa cuenta también necesitaría una función predefinida de Cloud Storage específica para crear o ver objetos en Cloud Storage.

  • Funciones personalizadas, que proporcionan acceso detallado según una lista de permisos que especifiques.

Puedes usar funciones básicas cuando trabajas en proyectos más pequeños que tienen necesidades menos complejas. Para obtener controles de acceso más precisos, usa funciones predefinidas.

Funciones básicas

Las funciones básicas se aplican a todos los servicios y recursos de un proyecto. Por ejemplo, una cuenta con la función de editor puede cambiar la configuración de App Engine y de Cloud Storage.

Función Permisos de Cloud Console Permisos de las herramientas
Owner Obligatorio para crear aplicaciones de App Engine. Tiene todos los privilegios de visualizador y de editor, además de la capacidad de ver el código fuente implementado, invitar a usuarios, cambiar funciones de usuarios y borrar una aplicación. Se requiere para crear aplicaciones de App Engine. También puede implementar código de la aplicación y actualizar todas las opciones de configuración.
Editor Examina la información de la aplicación y edita su configuración. Implementa el código de la aplicación y actualiza índices, colas y trabajos cron.
Viewer Examina la información de la aplicación. Solicita registros.

Funciones predefinidas de App Engine

Función Título Descripción Permisos Recurso más bajo
roles/appengine.appAdmin Administrador de App Engine

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

Para implementar versiones nuevas, también debes otorgar la función de usuario de la cuenta de servicio (roles/iam.serviceAccountUser).

Si deseas usar la herramienta de gcloud para realizar implementaciones, debes agregar las funciones de administrador de almacenamiento (roles/compute.storageAdmin) y editor de Cloud Build (roles/cloudbuild.builds.editor).

  • appengine.applications.get
  • appengine.applications.update
  • appengine.instances.*
  • appengine.operations.*
  • appengine.runtimes.*
  • appengine.services.*
  • appengine.versions.create
  • appengine.versions.delete
  • appengine.versions.get
  • appengine.versions.list
  • appengine.versions.update
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/appengine.appCreator Creador de App Engine Puede crear el recurso de App Engine para el proyecto.
  • appengine.applications.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/appengine.appViewer Lector de App Engine Acceso de solo lectura a toda la configuración y a los ajustes de la aplicación.
  • appengine.applications.get
  • appengine.instances.get
  • appengine.instances.list
  • appengine.operations.*
  • appengine.services.get
  • appengine.services.list
  • appengine.versions.get
  • appengine.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/appengine.codeViewer Lector de código de App Engine Acceso de solo lectura a toda la configuración de la aplicación, a los ajustes y al código fuente implementado.
  • appengine.applications.get
  • appengine.instances.get
  • appengine.instances.list
  • appengine.operations.*
  • appengine.services.get
  • appengine.services.list
  • appengine.versions.get
  • appengine.versions.getFileContents
  • appengine.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/appengine.deployer Implementador de App Engine

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

Para implementar versiones nuevas, también debes otorgar la función de usuario de la cuenta de servicio (roles/iam.serviceAccountUser).

Si deseas usar la herramienta de gcloud para realizar implementaciones, debes agregar las funciones de administrador de almacenamiento (roles/compute.storageAdmin) y editor de Cloud Build (roles/cloudbuild.builds.editor).

No se pueden modificar las versiones existentes, salvo borrar versiones que no reciben tráfico.

  • appengine.applications.get
  • appengine.instances.get
  • appengine.instances.list
  • appengine.operations.*
  • appengine.services.get
  • appengine.services.list
  • appengine.versions.create
  • appengine.versions.delete
  • appengine.versions.get
  • appengine.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/appengine.serviceAdmin Administrador de servicios de App Engine

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

Acceso de escritura a la configuración de nivel de módulo y nivel de versión. No puede implementar una versión nueva.

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

Las funciones predefinidas de App Engine te ofrecen opciones más específicas para el control de acceso.

Estas funciones solo proporcionan acceso a App Engine. Si el proyecto incluye otros servicios, como Cloud Storage o Cloud SQL, deberás asignar funciones adicionales para habilitar el acceso a los demás servicios.

Comparación de las funciones predefinidas de App Engine

En la siguiente tabla, se muestra una comparación completa de las capacidades de cada función predefinida de App Engine.

Capacidad Administrador de App Engine Administrador de servicios de App Engine Implementador de App Engine Visualizador de App Engine Visualizador de código de App Engine
Enumerar todos los servicios, las versiones y las instancias
Examinar todos los ajustes de aplicaciones, servicios, instancias y versiones
Examinar métricas de ejecución, como el uso de recursos, la información de carga y la información de errores
Examinar el código fuente de la aplicación No No No No
Implementar una versión nueva de una aplicación No Sí, si también otorgas la función de usuario de cuenta de servicio No No
Dividir o migrar el tráfico No No No
Iniciar y detener una versión No No No
Borrar una versión No No
Borrar un servicio completo No No No
Usar SSH para conectarse a una instancia de VM en el entorno flexible No No No No
Cerrar una instancia No No No No
Inhabilitar y volver a habilitar la aplicación de App Engine No No No No
Acceder a controladores que tienen una restricción de login:admin (solo entornos de ejecución de primera generación) No No No No
Actualizar reglas de despacho No No No No
Actualizar la configuración de DoS No No No No
Actualizar programas cron No No No No No
Actualizar el vencimiento predeterminado de cookies No No No No
Actualizar referentes No No No No
Actualizar remitentes de correo electrónico autorizados de la API No No No No

Para obtener más información sobre los permisos de IAM específicos que otorga cada función, consulta la sección Funciones de la API de Administrador.

Para una cuenta que solo es responsable de la implementación de versiones nuevas de una app, te recomendamos que otorgues las siguientes funciones:

  • Función de implementador de App Engine (roles/appengine.deployer)
  • Función de usuario de cuenta de servicio (roles/iam.serviceAccountUser)
    La función de usuario de cuenta de servicio permite que la cuenta actúe como la cuenta de servicio predeterminada de App Engine durante el proceso de implementación.
  • Si la cuenta usa comandos de gcloud o alguna otra herramienta de App Engine para la implementación, agrega estas funciones también:

    • Administrador de almacenamiento (roles/compute.storageAdmin)
    • Editor de Cloud Build (roles/cloudbuild.builds.editor)

La función de administrador de App Engine también puede implementar versiones, pero incluye privilegios administrativos adicionales. A fin de implementar versiones, también necesitas la función de usuario de cuenta de servicio y, para realizar implementaciones mediante los comandos de gcloud, necesitas la función de administrador de Storage y de editor de Cloud Build.

Para obtener detalles sobre cómo otorgar los permisos necesarios, consulta Crea una cuenta de usuario.

Separación de tareas de implementación y enrutamiento de tráfico

Muchas organizaciones separan la tarea de implementar una versión de la aplicación, de la tarea de incrementar el tráfico a la versión creada recientemente, ya que prefieren que distintas funciones de trabajo realicen estas tareas. Las funciones de implementador y administrador de servicios de App Engine proporcionan esta separación:

  • Funciones de implementador de App Engine y de usuario de cuenta de servicio: las cuentas están limitadas a implementar versiones nuevas y a borrar versiones anteriores que no entregan tráfico. La cuenta que tenga estas funciones no podrá configurar el tráfico a ninguna versión ni cambiar la configuración a nivel de la aplicación, como las reglas de envío o el dominio de autenticación.

  • Función de administrador de servicios de App Engine: las cuentas no pueden implementar una versión nueva de una app ni cambiar la configuración a nivel de la aplicación. Sin embargo, esas cuentas tienen privilegios para cambiar las propiedades de los servicios y las versiones existentes, incluido el cambio de las versiones que pueden entregar tráfico. La función de administrador de servicios de App Engine es ideal para un departamento de operaciones o TI que incrementa el tráfico hacia las versiones recién implementadas.

Limitaciones de las funciones predefinidas

Ninguna de las funciones predefinidas de App Engine otorga acceso a las siguientes tareas:

  • Crear aplicaciones de App Engine
  • Ver y descargar registros de aplicaciones
  • Ver gráficos de Monitoring en Cloud Console
  • Inhabilitar y habilitar la facturación
  • Ejecutar análisis de seguridad en Cloud Security Scanner
  • Acceder a la configuración o a los datos almacenados en Datastore, las listas de tareas en cola, Memcache, Cloud Search o cualquier otro producto de almacenamiento de Cloud Platform