Apache Guacamole ofrece una forma completamente basada en navegador para acceder a escritorios remotos a través del protocolo de escritorio remoto (RDP), la computación de red virtual (VNC) y el protocolo de shell seguro (SSH) en máquinas virtuales (VMs) de Compute Engine. Identity-Aware Proxy (IAP) proporciona acceso a Guacamole con mayor seguridad.
Este documento de arquitectura de referencia está dirigido a ingenieros y administradores de servidores que desean alojar Apache Gacamole en Google Kubernetes Engine (GKE) y Cloud SQL. En este documento, se supone que estás familiarizado con la implementación de cargas de trabajo en Kubernetes y Cloud SQL para MySQL. En este documento, también se supone que estás familiarizado con Identity and Access Management y Google Compute Engine.
Arquitectura
En el siguiente diagrama, se muestra cómo se configura un balanceador de cargas Google Cloud con IAP para proteger una instancia del cliente de Guacamole que se ejecuta en GKE:
Esta arquitectura incluye los siguientes componentes:
- Google Cloud Balanceador de cargas: Distribuye el tráfico entre varias instancias, lo que reduce el riesgo de problemas de rendimiento.
- IAP: Proporciona una seguridad mejorada a través de una extensión de autenticación personalizada.
- Cliente de Guacamole: Se ejecuta en GKE y se conecta al servicio de backend de guacd.
- Servicio de backend de Gitac: Agentes de conexiones remotas de escritorio a una o más VMs de Compute Engine.
- Base de datos Guacamole en Cloud SQL: Administra los datos de configuración de Guacamole.
- Instancias de Compute Engine: VMs alojadas en la infraestructura de Google.
Consideraciones del diseño
Los siguientes lineamientos pueden ayudarte a desarrollar una arquitectura que satisfaga los requisitos de tu organización respecto a la seguridad, el costo y el rendimiento.
Seguridad y cumplimiento
Esta arquitectura usa IAP para ayudar a proteger el acceso al servicio Guacamole. Los usuarios autorizados acceden a la instancia de Guacamole a través de una extensión de autenticación de IAP personalizada. Para obtener más detalles, consulta la extensión personalizada en GitHub.
Cuando agregas usuarios adicionales (a través de la interfaz de usuario de Guacamole), estos deben tener permisos a través de IAM, con la función IAP-secured Web App User
.
La configuración de OAuth que crea esta implementación se establece como interna.
Debido a este parámetro de configuración, debes usar una Cuenta de Google en la misma organización que usas para implementar Guacamole. Si usas una Cuenta de Google fuera de la organización, recibirás un error HTTP/403 org_internal
.
Rendimiento
El balanceador de cargas deGoogle Cloud y GKE distribuyen el tráfico entre varias instancias, lo que ayuda a reducir el riesgo de problemas de rendimiento.
Implementación
Para implementar esta arquitectura, consulta Implementa Apache Guamole en GKE y Cloud SQL.
Próximos pasos
- Revisa la guía de GKE sobre Endurecer la seguridad de tu clúster.
- Revisa Encripta secretos en la capa de la aplicación para aumentar la seguridad de los secretos, como las credenciales de la base de datos y las credenciales de OAuth.
- Revisa las condiciones de IAM para obtener información sobre cómo proporcionar un control más detallado del acceso de los usuarios a Guacamole.
- Para obtener más información sobre cómo funciona la integración de IAP, revisa el proveedor de autenticación personalizado en el repositorio de GitHub.
- Para obtener más información sobre las arquitecturas de referencia, los diagramas y las prácticas recomendadas, explora Cloud Architecture Center.
Colaboradores
Autor: Richard Grime | Arquitecto principal, sector público del Reino Unido
Otros colaboradores:
- Aaron Lind | Ingeniero de soluciones, Innovación de aplicaciones
- Eyal Ben Ivri | Arquitecto de Soluciones de Cloud
- Ido Flatow | Arquitecto de Soluciones de Cloud