Control de acceso

Puedes establecer el control de acceso con funciones en el nivel de proyecto de GCP. Asigna una función a un miembro de proyecto de GCP o a una cuenta de servicio para determinar el nivel de acceso a tu proyecto en Google Cloud Platform y a sus recursos.

Puedes usar funciones básicas cuando trabajas en proyectos menores que tienen necesidades menos complejas. Para obtener controles de acceso más precisos, usa las funciones de administración de identidades y accesos (IAM), que incluyen las funciones predefinidas de App Engine. Para obtener más información sobre IAM, consulta la Documentación de IAM.

Para obtener información sobre cómo asignar funciones, consulta Otorga acceso a los proyectos.

Para obtener detalles precisos sobre los permisos que se otorgan a las funciones predefinidas de IAM, hasta el nivel de llamada al método, consulta Funciones en los documentos de API de Administrador.

Funciones básicas

En las aplicaciones de App Engine, la función de un miembro del proyecto de GCP también controla las acciones permitidas de las herramientas de línea de comandos que se utilizan para implementar y administrar aplicaciones.

Función Permisos de GCP Console Permisos de las herramientas
Owner Se requiere 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 de usuarios y borrar una aplicación. Se requiere para crear aplicaciones de App Engine. Implementa el código de la aplicación y actualiza todas las configuraciones.
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

Las funciones predefinidas de App Engine te ofrecen opciones más específicas para el control de acceso. Cada función aparece junto con su usuario objetivo en la tabla. Usa la tabla comparativa para ver todas las capacidades de las funciones.

Función Capacidades Usuarios objetivo
Administrador de App Engine Acceso de lectura, escritura y modificación a todos los ajustes y configuración de la aplicación.
  • Propietario o administrador de la aplicación
  • Ingeniero de guardia
  • Administrador de sistemas
Administrador de servicios de App Engine
  • 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 tiene permiso para implementar versiones de apps. Consulta la sección Separación de obligaciones de este documento si necesitas información detallada.
  • Ingeniero de la actualización
  • DevOps
  • Ingeniero de guardia
  • Administrador de sistemas
Implementador de App Engine
  • Acceso de solo lectura a todos los ajustes y configuración de la aplicación.
  • Acceso de escritura solo para implementar y crear una versión nueva.
  • Puede borrar las versiones antiguas que no entregan tráfico.
  • No puede modificar una versión existente ni cambiar la configuración del tráfico.

Consulta la sección sobre implementaciones a continuación para obtener más información sobre las funciones requeridas.

  • Cuenta de implementación
  • Ingeniero de la actualización
Lector de App Engine Acceso de solo lectura a todos los ajustes y configuración de la aplicación.
  • Usuario que necesita visualizar la aplicación, sin realizar modificaciones.
  • Trabajo de auditoría que verifica la configuración de App Engine para el cumplimiento de políticas.
Lector de código de App Engine Acceso de solo lectura a toda la configuración de la aplicación, de los ajustes y del código fuente implementado.
  • Usuario que necesita visualizar la aplicación y su código fuente, sin realizar modificaciones.
  • Usuario de DevOps que necesita diagnosticar problemas de producción.

Matriz de comparación de funciones predefinidas

En la tabla siguiente 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 Lector de App Engine Lector 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 entorno 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 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 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 detalles sobre los permisos de IAM específicos que otorga cada función, consulta la sección Funciones de la API de Administrador.

Implementaciones con funciones predefinidas

La función Implementador de App Engine es la recomendada para una cuenta de usuario que solo es responsable de implementar una versión nueva de una aplicación. La función Administrador de App Engine es una alternativa que incluye privilegios administrativos adicionales, entre ellos, la capacidad de implementar versiones.

Con cualquiera de las dos funciones, una cuenta de usuario recibe el permiso adecuado para usar la API de Administrador con el fin de implementar aplicaciones. Si deseas otorgar permisos para usar los comandos de gcloud o alguna otra herramienta de App Engine, también debes concederle la función de administrador de almacenamiento a la cuenta de usuario.

Consulta Implementación con funciones de IAM para obtener detalles sobre cómo otorgar los permisos obligatorios.

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

Muchas organizaciones prefieren separar el trabajo de implementar una versión de la aplicación y de incrementar el tráfico a la versión recientemente creada, y hacer que las distintas funciones de trabajo realicen estos trabajos. Las funciones implementador de App Engine y administrador de servicios de App Engine proporcionan esta separación:

  • Función implementador de App Engine: Las cuentas de usuario están limitadas a implementar versiones nuevas y a borrar versiones antiguas que no entregan tráfico. La cuenta de usuario con la función de implementador de App Engine no podrá configurar el tráfico hacia ninguna versión ni cambiar la configuración en el nivel de aplicación, como las reglas de despacho o el dominio de autenticación.

  • Función administrador de servicio de App Engine: Las cuentas de usuario no pueden implementar una versión nueva de una aplicación ni cambiar la configuración en el nivel de 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 controla el tráfico hacia las versiones recientemente implementadas.

Permisos que las funciones predefinidas NO otorgan

Ninguna de las funciones predefinidas enumeradas anteriormente otorga acceso para las acciones siguientes:

  • Crear aplicaciones de App Engine.
  • Ver y descargar registros de aplicaciones
  • Ver gráficos de Monitoring en GCP Console
  • Inhabilitar y habilitar la facturación
  • Establecer un Límite de inversión diario (anteriormente conocido como Presupuesto) para App Engine y ver la cantidad de dólares que se gastó
  • 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.

Cuenta de servicio para App Engine

Después de crear una aplicación de App Engine, se crea la cuenta de servicio predeterminada de App Engine que se utiliza como la identidad del servicio de App Engine. La cuenta de servicio predeterminada de App Engine se asocia a tu proyecto de GCP y ejecuta tareas en nombre de tus aplicaciones que se ejecutan en App Engine.

De forma predeterminada, la cuenta de servicio predeterminada de App Engine tiene la función editor en el proyecto. Esto significa que cualquier cuenta de usuario con los permisos adecuados para implementar cambios en el proyecto de GCP también puede ejecutar el código con acceso de lectura o escritura para todos los recursos de ese proyecto.

Cambiar los permisos de la cuenta de servicio

Puedes cambiar los permisos de tus cuentas de servicio en GCP Console. Por ejemplo, puedes reducir el nivel de acceso de los permisos que usa la cuenta de servicio predeterminada de App Engine si cambias su función de editor a la función que mejor represente las necesidades de acceso de tu aplicación de App Engine.

Para cambiar los permisos de tus cuentas de servicio, haz lo siguiente:

  1. Abre GCP Console:

    Ir a la página Permisos

  2. En la lista Miembros, localiza el ID de la cuenta de servicio predeterminada de App Engine.

    La cuenta de servicio predeterminada de App Engine usa el ID de miembro:
    YOUR_PROJECT_ID@appspot.gserviceaccount.com

  3. Luego, puedes usar el menú desplegable para modificar las funciones asignadas a la cuenta de servicio.

Usar tu cuenta de servicio

  • Si deseas cambiar el nombre o crear claves en tus cuentas de servicio, incluida la cuenta de servicio predeterminada de la aplicación de App Engine, abre la página de Cuentas de servicio en GCP Console para ver y editar tus cuentas de servicio:

    Ir a la página Cuentas de servicio

  • Si deseas ejecutar los comandos de SDK de Cloud con una cuenta de servicio, incluida cualquier herramienta para desarrolladores de SDK de Cloud, primero debes habilitar la API de Administrador de Google App Engine en tu proyecto de Google Cloud Platform. Usa la Biblioteca de API en GCP Console para administrar todas las API y los servicios en tu proyecto de GCP:

    Ir a la página Biblioteca de API

Restablece una cuenta de servicio predeterminada borrada

Si borras tu cuenta de servicio predeterminada de App Engine, tu aplicación de App Engine podría fallar y perder el acceso a otros servicios de GCP, como Cloud Datastore.

Con el comando gcloud beta app repair, puedes restablecer una cuenta de servicio predeterminada de App Engine que se borró:

# Set your gcloud project
gcloud config set project <project-id>

# Restore your default service account
gcloud beta app repair
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Java