Analityka inżynieryjna dla GitLab Self-Managed za VPN
Bezpieczny wzorzec do analizowania prywatnych danych dostarczanych w GitLabie, gdy hostowana aplikacja nie może dotrzeć do sieci klienta.
Zrozumienie ograniczeń sieciowych
Hostowany backend SaaS zwykle nie może wywołać instancji GitLab, która jest dostępna tylko w firmowej sieci VPN lub sieci prywatnej. Dodawanie każdego źródła klienta do konfiguracji wdrożenia nie powoduje skalowania, a proszenie klienta o publiczne udostępnienie GitLab osłabia granicę bezpieczeństwa. Jednak przeglądarka użytkownika mogła już autoryzować dostęp do sieci podczas połączenia z VPN. Tworzy to praktyczną drogę do ręcznej synchronizacji bezpośrednio z przeglądarką, pod warunkiem, że produkt traktuje przeglądarkę jako niezaufaną granicę i minimalizuje to, co ją opuszcza.
Pozwól przeglądarce wywołać bezpośrednio GitLab
W trybie bezpośrednim przeglądarki użytkownik wprowadza na stronie pochodzenie GitLab, zakres grupy i token tylko do odczytu. JavaScript działający w przeglądarce wywołuje API GitLab poprzez istniejące połączenie VPN. Normalizuje tylko metadane dostawy wymagane przez produkt i wysyła ten znormalizowany ładunek do hostowanej aplikacji. Tokena nie wolno nigdy uwzględniać w tym ładunku, dziennikach aplikacji, monitorowaniu błędów ani analizach. Opcjonalny magazyn wygodny powinien być magazynem sesyjnym o zakresie kart, a nie trwałym magazynem lokalnym, a zamknięcie karty powinno spowodować usunięcie poświadczeń.
Użyj najwęższych praktycznych uprawnień
Utwórz token przeznaczony do dostępu do interfejsu API tylko do odczytu i zakresu synchronizacji do grup lub projektów, do analizowania których obszar roboczy jest autoryzowany. Zweryfikuj pochodzenie GitLab jako HTTPS, odrzuć poświadczenia osadzone w adresach URL i, jeśli to możliwe, zapobiegaj wywołaniom do dowolnych hostów wewnętrznych. Hostowana trasa pozyskiwania powinna niezależnie weryfikować zalogowanego menedżera obszaru roboczego, zaakceptowany typ dostawcy, schemat ładunku, maksymalny rozmiar, zakres repozytorium i limit szybkości. Token przechowywany w przeglądarce zmniejsza ujawnienie sekretów po stronie serwera, ale nie eliminuje konieczności sprawdzania wszystkiego, co przesyła przeglądarka.
Zoptymalizuj synchronizację wokół ograniczonych stron
Pobieraj projekty i najnowsze żądania scalania z największym obsługiwanym rozmiarem strony, honoruj nagłówki stronicowania GitLab i ograniczaj historię wyraźnym oknem czasowym lub limitem rekordów. Unikaj jednego żądania na żądanie scalania, chyba że metryka naprawdę wymaga szczegółowych zdarzeń. Ładuj jednocześnie drogie dane z recenzji, uczestników lub iteracji przy zachowaniu konserwatywnego limitu i pokazuj postęp na podstawie ukończonej pracy, a nie dowolnego efektu. Buforuj znormalizowane wyniki w aplikacji, aby raporty nie powtarzały pobierania VPN. Ręczny tryb bezpośredni w przeglądarce nie zapewnia niezawodnej synchronizacji w tle ani elementów webhook po zamknięciu karty, więc uczciwie oznaczaj świeżość.
Sprawdź obietnicę bezpieczeństwa
Podczas pilotażu sprawdź panel sieciowy przeglądarki i potwierdź, że token jest wysyłany tylko do źródła GitLab klienta. Sprawdź, czy żądania aplikacji zawierają znormalizowane metadane, a nie nieprzetworzone sekrety lub kod źródłowy. Zamknij kartę i sprawdź, czy token zniknął. Przetestuj nieprawidłowe źródło, wygasły token, użytkownika bez uprawnień do obszaru roboczego, zbyt dużą odpowiedź i częściową synchronizację. Na koniec porównaj próbkę projektów, prośby o połączenie, recenzentów, etykiety, kamienie milowe i iteracje z samym GitLabem. Bezpieczna architektura jest użyteczna tylko wtedy, gdy użytkownicy mogą również ufać uzyskanym dowodom.
Zobacz wyraźnie swój system dostawy.
Poznaj przypominającą produkcję przestrzeń roboczą Troodo i zobacz, jak dowody dostawy stają się szczegółowymi wytycznymi kierownictwa.
Zapoznaj się z demonstracją na żywo