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 Google Cloud proporciona sus propios roles predefinidos. 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 un rol predefinido de Cloud Storage específico para crear o ver objetos en Cloud Storage.
Funciones personalizadas, que proporcionan acceso detallado en función de 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.
Rol | Permisos de la consola de Google Cloud | Permisos de las herramientas |
---|---|---|
Owner |
Obligatorio para crear aplicaciones de App Engine. Todos los privilegios de lector y de editor, además de la capacidad de ver el código fuente implementado, invitar a usuarios, cambiar funciones del usuario y borrar una aplicación. Tiene privilegios de administrador para todos los recursos en el proyecto. | Obligatorio 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 |
Visualiza la información de la aplicación y edita su configuración. Tiene privilegios de administrador para todos los recursos en el proyecto. | Implementa el código de la aplicación y actualiza índices, colas y trabajos cron. |
Viewer |
Examina la información de la aplicación. Tiene privilegios de administrador para todos los recursos en el proyecto. | Solicita registros. |
Funciones predefinidas de App Engine
Role | Permissions |
---|---|
App Engine Admin( Read/Write/Modify access to all application configuration and settings. To deploy new versions, a principal must have the
Service Account User
( Lowest-level resources where you can grant this role:
|
|
App Engine Creator( Ability to create the App Engine resource for the project. Lowest-level resources where you can grant this role:
|
|
App Engine Viewer( Read-only access to all application configuration and settings. Lowest-level resources where you can grant this role:
|
|
App Engine Code Viewer( Read-only access to all application configuration, settings, and deployed source code. Lowest-level resources where you can grant this role:
|
|
App Engine Managed VM Debug Access( Ability to read or manage v2 instances. |
|
App Engine Deployer( Read-only access to all application configuration and settings. To deploy new versions, you must also have the
Service Account User
( Cannot modify existing versions other than deleting versions that are not receiving traffic. Lowest-level resources where you can grant this role:
|
|
App Engine Memcache Data Admin( Can get, set, delete, and flush App Engine Memcache items. |
|
App Engine Service Admin( Read-only access to all application configuration and settings. Write access to module-level and version-level settings. Cannot deploy a new version. Lowest-level resources where you can grant this role:
|
|
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.
Función | 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 | Sí | Sí | Sí | Sí | Sí |
Examinar todos los ajustes de aplicaciones, servicios, instancias y versiones | Sí | Sí | Sí | Sí | Sí |
Examinar métricas de ejecución, como el uso de recursos, la información de carga y la información de errores | Sí | Sí | Sí | Sí | Sí |
Examinar el código fuente de la aplicación | No | No | No | No | Sí |
Implementar una versión nueva de una app | Sí, si también otorgas la función de usuario de cuenta de servicio | No | Sí, si también otorgas la función de usuario de cuenta de servicio | No | No |
Dividir o migrar el tráfico | Sí | Sí | No*** | No | No |
Iniciar y detener una versión | Sí | Sí | No | No | No |
Borrar una versión | Sí | Sí | Sí | No | No |
Borrar un servicio completo | Sí | Sí | No | No | No |
Usar SSH para conectarse a una instancia de VM en el entorno flexible | Sí | No | No | No | No |
Cerrar una instancia | Sí | No | No | No | No |
Inhabilitar y volver a habilitar la aplicación de App Engine | Sí | No | No | No | No |
Acceder a controladores que tienen una restricción de login:admin (solo entornos de ejecución de primera generación) | Sí | No | No | No | No |
Actualizar reglas de despacho | Sí | No | No | No | No |
Actualizar la configuración de DoS | Sí | No | No | No | No |
Actualizar programas cron | No | No | No | No | No |
Actualizar el vencimiento predeterminado de cookies | Sí | No | No | No | No |
Actualizar referentes | Sí | No | No | No | No |
Actualizar remitentes de correo electrónico autorizados de la API | Sí | 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.
Función recomendada para la implementación de la aplicación
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 en nombre de la cuenta de servicio predeterminada de App Engine durante el proceso de implementación.
Si la cuenta usa comandos de
gcloud
para realizar las implementaciones, también debes agregar estas funciones:- Administrador de objetos de almacenamiento (
roles/storage.objectAdmin
) - Editor de Cloud Build (
roles/cloudbuild.builds.editor
)
- Administrador de objetos de almacenamiento (
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:
- Ver y descargar registros de aplicaciones
- Ver gráficos de Monitoring en la consola de Google Cloud.
- 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 en cualquier otro producto de almacenamiento de Cloud Platform