Análisis de ingeniería para GitLab Self-Manged detrás de una VPN
Un patrón seguro para analizar datos de entrega privados de GitLab cuando una aplicación alojada no puede llegar a la red del cliente.
Comprender la restricción de la red
Un backend SaaS alojado generalmente no puede llamar a una instancia de GitLab que esté disponible solo en una red privada o VPN de la empresa. Agregar el origen de cada cliente a la configuración de implementación no escala y pedirle al cliente que exponga GitLab públicamente debilita los límites de seguridad. Sin embargo, es posible que el navegador del usuario ya tenga acceso autorizado a la red mientras está conectado a la VPN. Eso crea una ruta práctica para una sincronización manual directa del navegador, siempre que el producto trate al navegador como un límite no confiable y minimice lo que sale de él.
Deje que el navegador llame a GitLab directamente
En el modo directo al navegador, el usuario ingresa el origen de GitLab, el alcance del grupo y un token de solo lectura en la página. JavaScript que se ejecuta en el navegador llama a la API de GitLab a través de la conexión VPN existente. Normaliza solo los metadatos de entrega requeridos por el producto y envía esa carga útil normalizada a la aplicación alojada. El token nunca debe incluirse en esa carga útil, registros de aplicaciones, monitoreo de errores o análisis. El almacenamiento de conveniencia opcional debe ser un almacenamiento de sesión con alcance de pestañas, no un almacenamiento local persistente, y al cerrar la pestaña se debe eliminar la credencial.
Utilice los permisos prácticos más limitados
Cree un token destinado al acceso API de solo lectura y limite la sincronización a los grupos o proyectos que el espacio de trabajo está autorizado a analizar. Valide el origen de GitLab como HTTPS, rechace las credenciales incrustadas en las URL y evite llamadas a hosts internos arbitrarios siempre que sea posible. La ruta de ingesta alojada debe verificar de forma independiente el administrador del espacio de trabajo que ha iniciado sesión, el tipo de proveedor aceptado, el esquema de carga útil, el tamaño máximo, el alcance del repositorio y el límite de velocidad. Un token retenido por el navegador reduce la exposición a secretos del lado del servidor, pero no elimina la necesidad de validar todo lo que envía el navegador.
Optimice la sincronización en torno a páginas delimitadas
Obtenga proyectos y solicitudes de fusión recientes con el tamaño de página más grande admitido, respete los encabezados de paginación de GitLab y limite el historial por una ventana de tiempo clara o un límite de registros. Evite una solicitud por solicitud de combinación a menos que una métrica realmente necesite eventos detallados. Cargue datos costosos de revisión, participantes o iteraciones simultáneamente con un límite conservador y muestre el progreso por trabajo completado, no por un control numérico arbitrario. Caché de resultados normalizados en la aplicación para que los informes no repitan la búsqueda de VPN. El modo manual directo al navegador no puede proporcionar sincronización en segundo plano confiable o webhooks después de que se cierra la pestaña, así que etiquete la frescura con honestidad.
Verificar la promesa de seguridad
Durante una prueba piloto, inspeccione el panel de red del navegador y confirme que el token se envía solo al origen GitLab del cliente. Compruebe que las solicitudes de aplicaciones contengan metadatos normalizados en lugar de secretos sin formato o código fuente. Cierre la pestaña y verifique que el token haya desaparecido. Pruebe un origen no válido, un token caducado, un usuario sin permisos de espacio de trabajo, una respuesta de gran tamaño y una sincronización parcial. Finalmente, compare una muestra de proyectos, solicitudes de fusión, revisores, etiquetas, hitos e iteraciones con el propio GitLab. Una arquitectura segura sólo es útil cuando los usuarios también pueden confiar en la evidencia resultante.
Vea su sistema de entrega claramente.
Explore un espacio de trabajo de Troodo similar a una producción y vea cómo la evidencia de entrega se convierte en un informe de gestión enfocado.
Explora la demostración en vivo