GitLab Dedicated for Government 보안 구성 가이드
GitLab v19.5Offering: GitLab Dedicated for Government
요약
FedRAMP는 클라우드 서비스 제공업체(Cloud Service Provider)가 보안 구성 가이드를 작성하고 유지 관리하며 게시하도록 요구합니다. GitLab은 미국 연방 기관 및 공공 부문을 지원하는 조직을 위해 폭넓은 구성 지침을 제공합니다.
FedRAMP는 클라우드 서비스 제공업체(Cloud Service Provider)가 보안 구성 가이드를 작성하고 유지 관리하며 게시하도록 요구합니다. 이 의무 사항에는 필수 기준과 권장 기준이 모두 포함됩니다. 이 페이지를 사용해 Dedicated for Government 인스턴스를 강화하고 최신 FedRAMP 지침에 맞춥니다.
필수 기준:
- 전체 클라우드 서비스 제공(offering)에 대한 엔터프라이즈 액세스를 제어하는 최상위 관리자 계정을 안전하게 액세스, 구성, 운영, 폐기하는 방법에 대한 안내.
- 최상위 관리자 계정만 운영할 수 있는 보안 관련 설정과 그 보안적 영향에 대한 설명.
권장 기준:
- 권한이 있는(privileged) 계정만 운영할 수 있는 보안 관련 설정과 그 보안적 영향에 대한 설명.
- 최상위 관리자 계정과 권한이 있는 계정을 처음 프로비저닝할 때 적용되는 보안 기본값.
GitLab은 미국 연방 기관 및 공공 부문을 지원하는 조직을 위해 폭넓은 구성 지침을 제공합니다. 투명성을 핵심 가치로 삼아, GitLab 문서는 이미 보안 구성 가이드의 필수 요소를 상세히 다루고 있습니다.
아키텍처#
GitLab Dedicated for Government는 정부 기관을 위해 특별히 설계된 싱글 테넌트(single-tenant) SaaS 솔루션입니다. FedRAMP Moderate 운영 승인(Authority to Operate, ATO)을 보유하고 있으며, AWS GovCloud에서 실행되고, 완전한 인프라 수준 격리를 제공합니다. 각 고객 환경은 다른 테넌트와 분리된 전용 AWS 계정에 존재합니다.
이 아키텍처에는 서로 다른 두 가지 관리 계층이 있습니다.
인프라 관리 계층 : GitLab이 관리합니다.
애플리케이션 관리 계층 : 고객 관리자가 제어합니다.
이 가이드의 구성 설정을 검토하기 전에 GitLab Dedicated for Government의 공동 책임 모델을 먼저 검토합니다. 공동 책임 모델은 연방 기관 관리자가 적용해야 하는 강화 조치를 이해하는 기반이 됩니다.
요구 사항 1: 최상위 관리자 계정 라이프사이클#
이 섹션에서는 안전한 설정과 일상적인 운영부터 안전한 폐기까지 최상위 관리자 계정의 전체 라이프사이클을 다룹니다.
FedRAMP 요구 사항: 전체 클라우드 서비스 제공에 대한 엔터프라이즈 액세스를 제어하는 최상위 관리자 계정을 안전하게 액세스, 구성, 운영, 폐기하는 방법을 설명합니다.
액세스 라이프사이클#
GitLab Dedicated for Government 인스턴스를 구매하면 GitLab Dedicated 팀이 초기 최상위 관리자 계정을 프로비저닝합니다. 이후 Dedicated 엔지니어가 ID 관리 솔루션과의 통합 구성을 지원합니다. 구성이 완료되면 인스턴스에 대한 액세스 관리를 완전히 제어할 수 있습니다.
GitLab Dedicated for Government는 싱글 사인온(single sign-on)을 위해 SAML 및 OpenID Connect(OIDC)를 지원하므로, 기존 정부 ID 인프라를 통해 관리자 인증을 라우팅할 수 있습니다. FedRAMP와 관련된 모든 PIV/CAC 요구 사항을 충족하도록 ID 공급자(IdP)를 통합하는 것은 사용자의 책임입니다.
전체 액세스 라이프사이클은 다음을 참고합니다.
관리자는 필요에 따라 다른 관리자를 추가하거나 제거할 수 있습니다. GitLab은 전용 관리자 계정을 별도로 만들거나, 관리자가 Admin 영역에 액세스하기 전 세션을 명시적으로 상승시키도록 요구하는 내장 보안 제어 기능인 Admin 모드를 켤 것을 권장합니다. 두 방식 모두 권한이 있는 계정이 해당 권한 기능에만 사용되도록 보장합니다.
ID 플랫폼 통합이 완료되면 최상위 관리자가 사용자를 프로비저닝해 초기 사용자 기반을 구축할 수 있습니다. 모든 사용자 계정에 최소 권한 원칙을 적용합니다. 프로젝트가 만들어지면 프로젝트 수준에서 다음 역할을 통해 특정 사용자에게 액세스 권한을 할당할 수 있습니다.
- Minimal Access
- Guest
- Planner
- Reporter
- Developer
- Maintainer
- Owner
GitLab은 또한 특수한 사용 사례를 위해 다음 사용자 유형도 지원합니다.
- 감사자(Auditor) 사용자: Admin 영역과 프로젝트 또는 그룹 설정을 제외한 모든 그룹, 프로젝트, 기타 리소스에 대한 읽기 전용 액세스를 제공합니다. 프로세스 검증을 위해 특정 프로젝트에 대한 액세스가 필요한 제3자 감사자와 협업할 때 감사자 역할을 사용합니다.
- 외부 사용자: 계약업체 등 조직 외부 사용자에게 제한된 액세스 권한을 제공합니다. IA-4(4)와 같은 통제 항목은 비조직 사용자를 회사 정책에 따라 식별하고 관리하도록 요구합니다. 외부 사용자로 설정하면 기본적으로 프로젝트 액세스가 제한되어 위험이 줄어들고, 관리자가 조직에 소속되지 않은 사용자를 식별하는 데 도움이 됩니다.
- 서비스 계정: 자동화된 작업을 수용합니다. 서비스 계정은 라이선스 좌석(seat)을 사용하지 않습니다.
GitLab은 고유한 권한 요구 사항을 위해 커스텀 역할을 지원합니다. 자세한 내용은 프로젝트 권한 및 그룹 권한을 참고합니다.
ID 플랫폼에 관리자가 프로비저닝되어 충분한 사용자 구조가 마련되면, 최상위 관리자 계정은 비상용(break-glass) 계정으로 취급하고 다른 모든 관리 활동은 표준 ID 공급자를 통해 수행합니다.
요구 사항 2#
FedRAMP 요구 사항: 최상위 관리자 계정만 운영할 수 있는 보안 관련 설정과 그 보안적 영향에 대한 설명을 제공합니다.
이 섹션에서는 Dedicated for Government에서만 제공되는 구성 설정을 나열하고, 이미 제공되고 있는 GitLab 관리 관련 광범위한 문서로 고객을 안내합니다.
최상위 관리자의 인프라 구성#
GitLab Dedicated for Government에서는 최상위 고객 관리자가 GitLab 지원 팀에 요청하는 방식으로 특정 인프라 수준의 보안 및 아키텍처 구성을 요청할 수 있습니다.
이러한 구성에는 다음이 포함됩니다.
- PrivateLink 등을 통한 테넌트 외부 리소스와의 네트워크 연결 설정.
- 고객 제공 키 사용(Bring-Your-Own-Key) - 고객은 GitLab 테넌트가 고객이 제공한 키를 사용하도록 요청할 수 있습니다.
- 커스텀 도메인 설정 - 고객은 표준 Dedicated for Government 도메인 대신 고객이 제공한 도메인을 GitLab 테넌트가 사용하도록 요청할 수 있습니다. 제공한 도메인이 DNSSEC 관련 요구 사항을 모두 충족하는지 확인하는 것은 고객의 책임입니다.
- 참조 아키텍처 선택
- 전체 리포지터리 용량 선택
- 테넌트 이름 선택
- 가용 영역 선택
- 라이선스 키 수령
- 루트 사용자 비밀번호 설정
- 릴리스 롤아웃/유지 관리 일정 선택
- 인바운드 및 아웃바운드 IP/도메인 허용 목록 설정
권장 사항 1#
FedRAMP 권장 사항: 권한이 있는 계정만 운영할 수 있는 보안 관련 설정과 그 보안적 영향에 대한 설명을 제공합니다.
요구 사항 2: 최상위 관리자 계정 보안 설정#
최상위 관리자만 사용할 수 있는 보안 설정은 전체 인스턴스의 보안 태세에 직접적인 영향을 미칩니다.
FedRAMP 요구 사항: 최상위 관리자 계정만 운영할 수 있는 보안 관련 설정과 그 보안적 영향에 대한 설명을 제공합니다.
최상위 관리자를 위한 인프라 구성#
GitLab Dedicated for Government는 GitLab 지원 팀을 통해 요청할 수 있는 특정 인프라 수준의 보안 및 아키텍처 구성을 지원합니다.
이러한 구성에는 다음이 포함됩니다.
- PrivateLink 등을 통한 테넌트 외부 리소스와의 네트워크 연결
- 고객 관리 암호화: GitLab 테넌트가 고객이 제공한 암호화 키를 사용하도록 요청합니다. KMS 키와 키 정책을 생성하고 관리하는 것은 사용자의 책임입니다.
- 커스텀 도메인: 표준 Dedicated for Government 도메인 대신 고객이 제공한 도메인을 요청합니다. 도메인이 DNSSEC 관련 요구 사항을 모두 충족하도록 하는 것은 사용자의 책임입니다.
- 참조 아키텍처 선택
- 전체 리포지터리 용량
- 테넌트 이름
- 가용 영역
- 라이선스 키
- 루트 사용자 비밀번호
- 릴리스 롤아웃 및 유지 관리 일정
- 인바운드 및 아웃바운드 IP 및 도메인 허용 목록
퍼블릭 가시성#
기본적으로 GitLab은 인스턴스의 퍼블릭 가시성 수준을 제한합니다. 최상위 관리자는 Admin 영역에서 인스턴스의 퍼블릭 가시성을 켠 다음 특정 그룹이나 프로젝트의 가시성을 구성할 수 있습니다. 퍼블릭 가시성을 켜면 사용자의 책임 범위가 확장됩니다. 자세한 내용은 공동 책임 모델의 퍼블릭 가시성과 오픈 소스 코드 공유를 참고합니다.
권장 사항 1: 권한이 있는 계정의 보안 설정#
최상위 관리자 아래의 권한이 있는 계정은 인스턴스와 데이터의 보안에 상당한 영향을 미칠 수 있는 설정에 액세스할 수 있습니다.
FedRAMP 권장 사항: 권한이 있는 계정만 운영할 수 있는 보안 관련 설정과 그 보안적 영향에 대한 설명을 제공합니다.
최상위 관리자 계정과 ID 공급자를 통해 프로비저닝한 관리자 계정은 기능적으로 동일합니다. 최상위 계정은 초기 설정에만 사용합니다. 이후의 모든 보안 설정과 구성에는 ID 공급자를 통해 프로비저닝한 관리자 계정을 사용합니다. 사용 가능한 모든 구성은 GitLab 관리를 참고합니다.
시스템 개발 라이프사이클과 변경 관리#
관리자는 소프트웨어 개발 라이프사이클(SDLC)을 보호하고 변경 관리 방식을 수립하기 위한 다양한 도구를 사용할 수 있습니다. 자세한 내용은 CI/CD로 코드 빌드 및 관리를 참고합니다.
보안을 고려한 CI/CD 파이프라인을 설계하는 방법은 파이프라인 보안 문서를 참고합니다. 변경 통제와 브랜치 보호를 수립하는 방법에 대한 세부 사항은 NIST 800-53 준수 가이드에서 확인할 수 있습니다. 승인된 변경 사항만 코드베이스에 적용되도록 사용 가능한 변경 관리 구성을 검토합니다.
위험 평가와 시스템 및 정보 무결성#
코드를 보호하기 위한 도구를 마련하는 것은 사용자의 책임입니다. GitLab은 애플리케이션 개발 과정에 통합할 수 있는 다양한 탐지 도구를 제공합니다. 여기에는 다음이 포함됩니다.
- 보안 구성
- 컨테이너 스캐닝
- 의존성 스캐닝
- 정적 애플리케이션 보안 테스트(Static Application Security Testing, SAST)
- Infrastructure as Code(IaC) 스캐닝
- 시크릿 탐지
- 동적 애플리케이션 보안 테스트(Dynamic Application Security Testing, DAST)
- API 퍼징
- 커버리지 기반 퍼즈 테스트
머지되기 전에 모든 코드가 취약점 평가를 거치도록 특정 CI job을 강제할 수 있습니다.
액세스 관리#
다음 역할은 표준 사용자 액세스를 넘어서는 권한 기능을 가지고 있습니다.
- Maintainer
- Owner
이 역할들에는 상세한 권한 문서가 마련되어 있으며, 프로젝트와 그룹에 사용자를 프로비저닝할 때 신중히 검토해야 합니다.
Admin 영역에서의 액세스 관리#
Admin 영역에서 관리자는 권한 내보내기, 사용자 ID 검토, 그룹 관리 등을 수행할 수 있습니다. FedRAMP 및 NIST 800-53 요구 사항을 충족하는 데 유용한 기능은 다음과 같습니다.
- 침해가 의심될 때 사용자 비밀번호 재설정
- 사용자 잠금 해제. GitLab은 기본적으로 로그인 시도가 10회 실패하면 사용자를 잠급니다. 사용자는 10분 동안 또는 관리자가 잠금을 해제할 때까지 잠긴 상태로 유지됩니다. AC-7 지침에 따라 FedRAMP는 계정 잠금 매개변수 정의를 NIST 800-63B에 위임하며, 기본 설정이 이를 충족합니다.
- 남용 보고서 또는 스팸 로그 검토. FedRAMP는 조직이 비정상적인 사용에 대해 계정을 모니터링하도록 요구합니다(AC-2(12)). 사용자는 남용 보고서에 남용 행위를 신고할 수 있으며, 관리자는 조사가 진행되는 동안 액세스를 제거할 수 있습니다. 스팸 로그는 Admin 영역의 Spam logs 섹션에 모여 있습니다. 관리자는 해당 영역에서 신고된 사용자를 제거, 차단, 신뢰 처리할 수 있습니다.
- 자격 증명 인벤토리: GitLab 인스턴스에서 사용되는 모든 시크릿을 한곳에서 검토합니다. 자격 증명, 토큰, 키를 통합된 화면으로 볼 수 있어 비밀번호 검토나 자격 증명 교체 같은 요구 사항을 충족하는 데 도움이 됩니다.
- 기본 세션 지속 시간: FedRAMP는 비활성 사용자를 일정 시간이 지나면 로그아웃하도록 요구합니다. FedRAMP는 구체적인 시간을 지정하지 않지만, 권한이 있는 사용자는 표준 근무 시간이 끝나면 로그아웃되어야 한다고 명시합니다.
- 신규 사용자 프로비저닝: Admin 영역 UI를 통해 사용자를 생성합니다. IA-5를 준수하기 위해 GitLab은 신규 사용자가 첫 로그인 시 비밀번호를 변경하도록 요구합니다.
- 사용자 프로비저닝 해제: Admin 영역 UI를 통해 사용자 제거. 또는 사용자 차단으로 리포지터리의 데이터는 유지하면서 모든 액세스를 제거할 수 있습니다. 차단된 사용자는 좌석 수에 영향을 주지 않습니다.
- 사용자 비활성화: 계정 검토 중 확인된 비활성 사용자는
일시적으로 비활성화할 수
있습니다. 차단과 달리 사용자를 비활성화해도 GitLab UI 로그인은 막지 않습니다.
비활성화된 사용자는 로그인하면 다시 활성 상태가 됩니다. 비활성화된 사용자는 다음과
같습니다.
- 리포지터리나 API에 액세스할 수 없습니다.
- 슬래시 명령을 사용할 수 없습니다.
- 좌석을 차지하지 않습니다.
SSH 키#
GitLab은 Git과 인증하고 통신하기 위한 SSH 키 구성 방법을 안내합니다. 커밋에 서명할 수 있어 공개 키를 가진 사람이라면 누구나 추가 검증을 할 수 있습니다. 관리자는 최소 키 기술 및 키 길이를 설정할 수 있습니다.
SSH 키가 FIPS 검증 암호화 모듈로 생성되도록 하는 것은 사용자의 책임입니다.
토큰 관리#
GitLab은 개인용 액세스 토큰을 구성하고 관리하는 방법을 안내합니다. GitLab은 세분화된 권한을 지원하므로 해당 사용 사례에 필요한 권한만으로 토큰 범위를 제한할 수 있습니다. 토큰이 침해되었을 때의 영향을 제한하려면 사용자 및 서비스 토큰에 필요한 최소한의 권한만 프로비저닝합니다.
감사 로깅과 인시던트 관리#
애플리케이션 로그를 활용하는 것은 사용자의 책임입니다. 테넌트의 S3 버킷에 있는 특정 로그에 액세스하려면 GitLab 지원 팀에 문의합니다. 기반 인프라 로그는 Dedicated for Government 엔지니어가 관리하며 GitLab 보안팀이 모니터링합니다.
이메일#
GitLab은 인스턴스에 대해 이메일 알림 전송과 애플리케이션 알림 이메일 구성을 지원합니다. DHS Binding Operational Directive 18-01은 스팸 방지를 위해 발신 메시지에 DMARC (Domain-based Message Authentication, Reporting and Conformance)를 구성하도록 요구합니다. GitLab Dedicated for Government는 이 구성을 기본으로 제공합니다. 해당 기능이 필요하지 않다면 이메일 알림을 끌 수 있습니다.
GitLab 러너#
Dedicated for Government 고객은 테넌트 외부에 자체 셀프 매니지드 러너를 빌드하고 관리해야 합니다. 구성 방법은 러너 구성을 참고합니다. FedRAMP 요구 사항을 준수하려면 제공된 FIPS 버전을 사용해 러너를 빌드합니다.
러너는 FedRAMP 경계에 연결된 핵심 인프라의 확장입니다. 잘못 구성되었거나 침해된 러너는 CI/CD 파이프라인과 다운스트림 아티팩트에 공급망 위험을 초래할 수 있습니다. Dedicated 경계 외부의 격리되고 강화된 환경에 러너를 배포합니다. 제로 트러스트 원칙에 따라 러너 인증 토큰 액세스를 안전하게 관리하고 정기적으로 교체합니다. 러너 활동에 대한 감사 로깅을 구성하고 모니터링합니다.
권장 사항 2: 관리자 계정의 보안 기본값#
계정을 처음 프로비저닝할 때 보안 기본값을 구성하면 잘못된 구성의 위험이 줄어들고 처음부터 탄탄한 보안 기준선을 마련할 수 있습니다.
FedRAMP 권장 사항: 최상위 관리자 계정과 권한이 있는 계정을 처음 프로비저닝할 때 모든 설정을 권장 보안 기본값으로 지정합니다.
최상위 관리자 계정은 첫 로그인 시 강력한 비밀번호를 구성할 수 있도록 프로비저닝됩니다. FedRAMP 요구 사항에 따라 루트 사용자에 대해 2단계 인증(2FA)을 등록해야 합니다. GitLab은 FIPS를 준수하고 피싱에 강한 WebAuthn 장치를 포함해 다양한 인증 요소를 지원합니다.
제로 트러스트 보안 원칙에 맞추려면 다음을 수행해야 합니다.
- 루트 사용자뿐 아니라 권한이 있는 모든 계정에 2FA를 요구합니다.
- 관리 액세스를 부여하기 전에 기기 상태와 사용자 컨텍스트를 확인하는 조건부 액세스 정책을 구현합니다.
- 세션 타임아웃을 강제하고 민감한 작업에는 재인증을 요구합니다.
- 모든 인증 메커니즘에 FIPS 검증 암호화 모듈을 사용합니다.
- 필요한 관리 권한만 부여되었는지 정기적으로 감사하고 검증합니다.
통합된 ID 공급자를 통해 프로비저닝한 추가 관리자는 다음과 같은 조직 통제를 충족해야 합니다.
- 비밀번호 길이 및 복잡성 강제
- 로그인 실패 잠금
- PIV/CAC 인증
- 조직에서 관리하는 2단계 인증
- 비활성 사용자 잠금
추가 리소스#
GitLab은 관리자의 강화 결정을 안내하는 CIS Benchmark를 발행했습니다. 이를 시작점으로 삼아 인스턴스 내에서 안전한 프로젝트와 애플리케이션 리소스를 구축합니다.