Apache Guacamole ofrece una forma totalmente basada en navegador de acceder a escritorios remotos a través de los protocolos de escritorio remoto (RDP), Virtual Network Computing (VNC) y Secure Shell (SSH) en máquinas virtuales (VMs) de Compute Engine. Identity-Aware Proxy (IAP) proporciona acceso a Guacamole con una seguridad mejorada.
Este documento de arquitectura de referencia está dirigido a administradores e ingenieros de servidores que quieran alojar Apache Guacamole en Google Kubernetes Engine (GKE) y Cloud SQL. En este documento se da por hecho que sabes cómo implementar cargas de trabajo en Kubernetes y Cloud SQL para MySQL. En este documento también se presupone que tienes conocimientos sobre Gestión de Identidades y Accesos y Google Compute Engine.
Arquitectura
En el siguiente diagrama se muestra cómo se configura un balanceador de carga con IAP para proteger una instancia del cliente de Guacamole que se ejecuta en GKE: Google Cloud
Esta arquitectura incluye los siguientes componentes:
- Google Cloud Balanceador de carga: distribuye el tráfico entre varias instancias, lo que reduce el riesgo de que se produzcan 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 backend guacd.
- Servicio backend de guacd: intermedia las conexiones de escritorio remoto a una o varias VMs de Compute Engine.
- Base de datos de Guacamole en Cloud SQL: gestiona los datos de configuración de Guacamole.
- Instancias de Compute Engine: máquinas virtuales alojadas en la infraestructura de Google.
Factores del diseño
Las siguientes directrices pueden ayudarte a desarrollar una arquitectura que cumpla los requisitos de seguridad, coste y rendimiento de tu organización.
Seguridad y cumplimiento
Esta arquitectura usa IAP para proteger el acceso al servicio Guacamole. Los usuarios autorizados inician sesión en la instancia de Guacamole a través de una extensión de autenticación de IAP personalizada. Para obtener más información, consulta la extensión personalizada en GitHub.
Cuando añadas usuarios adicionales (a través de la interfaz de usuario de Guacamole), estos usuarios deben tener permisos a través de gestión de identidades y accesos, con el rol IAP-secured Web App User
.
La configuración de OAuth que crea este despliegue se establece como interna.
Debido a este ajuste, debes usar una cuenta de Google de la misma organización que la que usas para implementar Guacamole. Si usas una cuenta de Google que no pertenece a la organización, recibirás un error HTTP/403 org_internal
.
Rendimiento
Google Cloud balanceador de carga y GKE distribuye el tráfico entre varias instancias, lo que ayuda a reducir el riesgo de que se produzcan problemas de rendimiento.
Implementación
Para desplegar esta arquitectura, consulta Desplegar Apache Guacamole en GKE y Cloud SQL.
¿Qué debo hacer ahora?
- Consulta la guía de GKE sobre cómo endurecer la seguridad del clúster.
- Consulta el artículo Encriptar secretos en la capa de aplicación para aumentar la seguridad de los secretos, como las credenciales de bases de datos y las credenciales de OAuth.
- Consulta las condiciones de gestión de identidades y accesos para saber 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, consulta el proveedor de autenticación personalizado en el repositorio de GitHub.
- Para ver más arquitecturas de referencia, diagramas y prácticas recomendadas, consulta el centro de arquitectura de Cloud.
Colaboradores
Autor: Richard Grime | Arquitecto principal de la administración pública del Reino Unido
Otros colaboradores:
- Aaron Lind | Ingeniero de soluciones, innovación de aplicaciones
- Eyal Ben Ivri | Arquitecto de soluciones en la nube
- Ido Flatow | Arquitecto de soluciones en la nube