Analyses techniques pour GitLab autogéré derrière un VPN
Un modèle sécurisé pour analyser les données de livraison GitLab privées lorsqu'une application hébergée ne peut pas atteindre le réseau client.
Comprendre la contrainte du réseau
Un backend SaaS hébergé ne peut généralement pas appeler une instance GitLab disponible uniquement sur un VPN d'entreprise ou un réseau privé. L'ajout de chaque origine client à la configuration de déploiement n'évolue pas, et demander au client d'exposer GitLab publiquement affaiblit les limites de sécurité. Cependant, le navigateur de l'utilisateur peut déjà avoir autorisé l'accès au réseau lorsqu'il est connecté au VPN. Cela crée une voie pratique pour une synchronisation manuelle directe avec le navigateur, à condition que le produit traite le navigateur comme une limite non fiable et minimise ce qui en sort.
Laissez le navigateur appeler directement GitLab
En mode navigateur direct, l'utilisateur saisit l'origine GitLab, la portée du groupe et un jeton en lecture seule dans la page. JavaScript exécuté dans le navigateur appelle l'API GitLab via la connexion VPN existante. Il normalise uniquement les métadonnées de livraison requises par le produit et envoie cette charge utile normalisée à l'application hébergée. Le jeton ne doit jamais être inclus dans cette charge utile, ces journaux d'application, cette surveillance des erreurs ou ces analyses. Le stockage pratique facultatif doit être un stockage de session au niveau des onglets, et non un stockage local persistant, et la fermeture de l'onglet doit supprimer les informations d'identification.
Utilisez les autorisations pratiques les plus étroites
Créez un jeton destiné à l'accès à l'API en lecture seule et étendez la synchronisation aux groupes ou projets que l'espace de travail est autorisé à analyser. Validez l'origine GitLab en tant que HTTPS, rejetez les informations d'identification intégrées dans les URL et empêchez les appels vers des hôtes internes arbitraires lorsque cela est possible. La route d'ingestion hébergée doit vérifier indépendamment le gestionnaire d'espace de travail connecté, le type de fournisseur accepté, le schéma de charge utile, la taille maximale, la portée du référentiel et la limite de débit. Un jeton détenu par le navigateur réduit l'exposition des secrets côté serveur, mais il ne supprime pas la nécessité de valider tout ce que le navigateur soumet.
Optimiser la synchronisation autour des pages délimitées
Récupérez les projets et les demandes de fusion récentes avec la plus grande taille de page prise en charge, respectez les en-têtes de pagination GitLab et limitez l'historique par une fenêtre de temps claire ou une limite d'enregistrement. Évitez une requête par demande de fusion, sauf si une métrique nécessite réellement des événements détaillés. Chargez des données coûteuses de révision, de participant ou d'itération simultanément avec un plafond conservateur et affichez la progression par travail terminé, et non par un compteur arbitraire. Mettez en cache les résultats normalisés dans l’application afin que les rapports ne répètent pas la récupération VPN. Le mode manuel direct du navigateur ne peut pas fournir une synchronisation en arrière-plan fiable ou des webhooks après la fermeture de l'onglet, alors étiquetez honnêtement la fraîcheur.
Vérifier la promesse de sécurité
Pendant un pilote, inspectez le panneau réseau du navigateur et confirmez que le jeton est envoyé uniquement à l'origine GitLab du client. Vérifiez que les demandes d'application contiennent des métadonnées normalisées plutôt que des secrets bruts ou du code source. Fermez l'onglet et vérifiez que le jeton a disparu. Testez une origine non valide, un jeton expiré, un utilisateur sans autorisations d'espace de travail, une réponse surdimensionnée et une synchronisation partielle. Enfin, comparez un échantillon de projets, de demandes de fusion, de réviseurs, d'étiquettes, de jalons et d'itérations avec GitLab lui-même. Une architecture sécurisée n’est utile que lorsque les utilisateurs peuvent également faire confiance aux preuves qui en résultent.
Visualisez clairement votre système de livraison.
Explorez un espace de travail Troodo de type production et voyez comment les preuves de livraison deviennent un dossier de gestion ciblé.
Explorez la démo en direct