VPN 뒤에 있는 GitLab 자체 관리형 엔지니어링 분석
호스팅된 애플리케이션이 고객 네트워크에 연결할 수 없는 경우 비공개 GitLab 전달 데이터를 분석하기 위한 보안 패턴입니다.
네트워크 제약 이해
호스팅된 SaaS 백엔드는 일반적으로 회사 VPN 또는 개인 네트워크에서만 사용할 수 있는 GitLab 인스턴스를 호출할 수 없습니다. 모든 고객 원본을 배포 구성에 추가하면 확장되지 않으며 고객에게 GitLab을 공개적으로 노출하도록 요청하면 보안 경계가 약화됩니다. 그러나 VPN에 연결되어 있는 동안 사용자의 브라우저에는 이미 네트워크 액세스가 승인되어 있을 수 있습니다. 이는 제품이 브라우저를 신뢰할 수 없는 경계로 처리하고 브라우저를 벗어나는 것을 최소화하는 경우 수동, 브라우저 직접 동기화를 위한 실용적인 경로를 생성합니다.
브라우저가 GitLab을 직접 호출하도록 허용
브라우저 직접 모드에서 사용자는 페이지에 GitLab 원본, 그룹 범위 및 읽기 전용 토큰을 입력합니다. 브라우저에서 실행되는 JavaScript는 기존 VPN 연결을 통해 GitLab API를 호출합니다. 제품에 필요한 전달 메타데이터만 정규화하고 정규화된 페이로드를 호스팅된 애플리케이션으로 보냅니다. 토큰은 해당 페이로드, 애플리케이션 로그, 오류 모니터링 또는 분석에 포함되어서는 안 됩니다. 선택적 편의 저장소는 영구 로컬 저장소가 아닌 탭 범위 세션 저장소여야 하며, 탭을 닫으면 자격 증명이 제거됩니다.
가장 좁은 실제 권한을 사용하십시오.
읽기 전용 API 액세스용 토큰을 생성하고 작업 영역에서 분석할 권한이 있는 그룹 또는 프로젝트로 동기화 범위를 지정합니다. GitLab 원본을 HTTPS로 검증하고, URL에 포함된 자격 증명을 거부하고, 가능한 경우 임의의 내부 호스트에 대한 호출을 방지합니다. 호스팅된 수집 경로는 로그인된 작업 영역 관리자, 허용되는 공급자 유형, 페이로드 스키마, 최대 크기, 저장소 범위 및 속도 제한을 독립적으로 확인해야 합니다. 브라우저에 보관된 토큰은 서버 측 비밀 노출을 줄이지만 브라우저가 제출하는 모든 것을 검증할 필요성을 없애지는 않습니다.
제한된 페이지 주변의 동기화 최적화
지원되는 가장 큰 페이지 크기로 프로젝트 및 최근 병합 요청을 가져오고, GitLab 페이지 매김 헤더를 존중하고, 명확한 시간 창 또는 기록 제한으로 기록을 묶습니다. 메트릭에 실제로 세부 이벤트가 필요한 경우가 아니면 병합 요청당 하나의 요청을 피하세요. 비용이 많이 드는 리뷰, 참가자 또는 반복 데이터를 보수적인 한도와 동시에 로드하고 임의의 스피너가 아닌 완료된 작업별로 진행 상황을 표시합니다. 캐시 정규화 결과가 애플리케이션에 표시되므로 보고서에서 VPN 가져오기를 반복하지 않습니다. 수동 브라우저 직접 모드는 탭이 닫힌 후 안정적인 백그라운드 동기화나 웹후크를 제공할 수 없으므로 정직하게 최신 상태를 표시하세요.
보안 약속 확인
파일럿 중에 브라우저 네트워크 패널을 검사하고 토큰이 고객의 GitLab 원본으로만 전송되는지 확인합니다. 애플리케이션 요청에 원시 비밀이나 소스 코드가 아닌 정규화된 메타데이터가 포함되어 있는지 확인하세요. 탭을 닫고 토큰이 사라졌는지 확인하세요. 잘못된 원본, 만료된 토큰, 작업 영역 권한이 없는 사용자, 과도한 응답 및 부분 동기화를 테스트합니다. 마지막으로 프로젝트 샘플, 병합 요청, 검토자, 레이블, 마일스톤 및 반복을 GitLab 자체와 비교하십시오. 보안 아키텍처는 사용자가 결과 증거를 신뢰할 수 있는 경우에만 유용합니다.