Інженерна аналітика для GitLab Self-Managed за VPN
Захищений шаблон для аналізу приватних даних доставки GitLab, коли розміщена програма не може отримати доступ до мережі клієнта.
Зрозумійте обмеження мережі
Розміщений бекенд SaaS зазвичай не може викликати екземпляр GitLab, який доступний лише в корпоративній VPN або приватній мережі. Додавання джерела кожного клієнта до конфігурації розгортання не масштабується, а прохання клієнта відкрити доступ до GitLab послаблює кордон безпеки. Однак браузер користувача може вже мати авторизований доступ до мережі під час підключення до VPN. Це створює практичний маршрут для ручної синхронізації безпосередньо з веб-переглядачем, за умови, що продукт розглядає веб-переглядач як ненадійну межу та мінімізує те, що залишає його.
Дозвольте браузеру безпосередньо викликати GitLab
У прямому режимі браузера користувач вводить джерело GitLab, область групи та маркер лише для читання на сторінці. JavaScript, запущений у браузері, викликає API GitLab через наявне VPN-з’єднання. Він нормалізує лише метадані доставки, необхідні для продукту, і надсилає це нормалізоване корисне навантаження до розміщеної програми. Маркер ніколи не можна включати в це корисне навантаження, журнали програми, моніторинг помилок або аналітику. Додаткове зручне сховище має бути сховищем сеансу з областю вкладки, а не постійним локальним сховищем, і закриття вкладки має видалити облікові дані.
Використовуйте найвужчі практичні дозволи
Створіть маркер, призначений для доступу до API лише для читання, і встановіть область синхронізації для груп або проектів, які робоча область має право аналізувати. Перевіряйте походження GitLab як HTTPS, відхиляйте облікові дані, вбудовані в URL-адреси, і запобігайте викликам довільних внутрішніх хостів, де це можливо. Розміщений маршрут прийому даних має незалежно перевіряти менеджер робочої області, у якому виконано вхід, прийнятний тип постачальника, схему корисного навантаження, максимальний розмір, область сховища та обмеження швидкості. Маркер, який утримується в браузері, зменшує доступ до секретних даних на стороні сервера, але не усуває необхідності перевіряти все, що надсилає браузер.
Оптимізуйте синхронізацію навколо обмежених сторінок
Отримайте проекти та нещодавні запити на злиття з найбільшим підтримуваним розміром сторінки, дотримуйтеся заголовків сторінки GitLab і зв’яжіть історію за чітким часовим вікном або обмеженням запису. Уникайте одного запиту на запит на злиття, якщо метрика справді не потребує детальних подій. Завантажуйте дорогі дані огляду, учасників або ітерації одночасно з консервативним обмеженням і показуйте прогрес за виконаною роботою, а не довільним обертом. Кешуйте нормалізовані результати в програмі, щоб звіти не повторювали вибірку VPN. Режим прямого перегляду вручну не може забезпечити надійну фонову синхронізацію чи веб-перехоплення після закриття вкладки, тому чесно позначайте свіжість.
Перевірте обіцянку безпеки
Під час пілотного тестування перевірте мережеву панель браузера та переконайтеся, що маркер надсилається лише до джерела GitLab клієнта. Переконайтеся, що запити програми містять нормалізовані метадані, а не необроблені секрети чи вихідний код. Закрийте вкладку та переконайтеся, що маркер зник. Перевірте недійсне походження, прострочений маркер, користувача без дозволів робочої області, завелику відповідь і часткову синхронізацію. Нарешті, порівняйте вибірку проектів, запитів на злиття, рецензентів, міток, етапів і ітерацій із самим GitLab. Захищена архітектура корисна лише тоді, коли користувачі також можуть довіряти отриманим доказам.
Чітко дивіться на свою систему доставки.
Дослідіть робочий простір Troodo, схожий на виробництво, і подивіться, як докази доставки перетворюються на цілеспрямоване керівництво.
Ознайомтеся з живою демонстрацією