GitLab 권한(Role) 정책¶
GitLab의 Role(권한) 정의와 실제 운영에서의 사용 기준을 설명함.
1. 개요¶
GitLab은 다음 5단계 Role을 제공함:
Guest < Reporter < Developer < Maintainer < Owner
각 Role의 기능과 실제 운영에서의 사용 기준을 정의함.
2. 권한(Role) 정의¶
2.1 Role 목록¶
| Role | 주요 권한 |
|---|---|
| Guest | 프로젝트 조회 |
| Reporter | 로그 및 상태 조회 |
| Developer | 코드 작성 |
| Maintainer | 프로젝트 운영 |
| Owner | 구조 및 권한 관리 |
3. Role별 상세 설명¶
3.1 Guest¶
가장 약한 권한임. 코드 수정은 못 하지만, 프로젝트 존재와 일부 협업 정보는 봐야 하는 사람에게 줌.
- 프로젝트 읽기 전용 접근
- 이슈 및 보드 조회
- 코드 수정 불가
사용 예¶
- 기획자
- 디자이너
- 외부 협력사 PM
- 일정 및 이슈 확인만 필요한 사용자
- 프로젝트 진행 상황만 봐야 하는 관리자
보통 하는 일¶
- 이슈 확인
- 일정/보드 확인
- 문서/대화 흐름 확인
- 코드 수정은 하지 않음
3.2 Reporter¶
조회 전용이지만 Guest보다 더 실무적임. 코드는 수정하지 않지만, 빌드/배포/로그/파이프라인을 봐야 하는 사람에게 적합함. 운영 상태 확인용 읽기 권한에 가까움.
- Guest 권한 포함
- 파이프라인 및 Job 로그 조회
- 배포 상태 확인 가능
- 코드 수정 불가
사용 예¶
- QA 담당자
- 운영 모니터링 담당자
- 고객사 기술 담당자
- 외부 유지보수 업체의 조회 전용 계정
- 기능별 서비스 계정 중 “읽기 전용 토큰”이 필요한 경우
- 읽기 전용 bot 계정
보통 하는 일¶
- 파이프라인 결과 확인
- Job 로그 확인
- 배포 성공/실패 확인
- 릴리즈 상태 확인
- 이슈/코드 조회
3.3 Developer¶
가장 일반적인 개발자 권한임.
개발은 수행할 수 있으나, 운영 브랜치 정책 및 CI 기반 MR 경로 정책에 의해 환경 승격 흐름은 제한됨.
Developer는 실무 핵심 권한이지만, 운영 브랜치 보호 정책 때문에 production 직접 수정은 불가능하도록 운영하는 것이 일반적임.
허용 권한:
- 작업 브랜치 생성
- 코드 작성 및 push
- Merge Request 생성
- 코드 리뷰 참여
- 이슈 기반 작업
제한 사항:
- protected branch 직접 push 제한
- 운영 브랜치 direct push 제한
- 잘못된 MR 경로는 CI pipeline 단계에서 차단됨
사용 예¶
- 사내 개발자
- 프론트엔드/백엔드 실무 개발자
- 외부 협력 개발자
- 단기 계약 개발자
보통 하는 일¶
- 작업 브랜치 생성
- 코드 작성 및 push
- MR 생성
- 리뷰 대응
- 이슈 기반 작업
3.4 Maintainer¶
프로젝트 운영 책임자 권한임. 개발뿐 아니라 merge, 브랜치 정책, 배포 관련 설정까지 담당하는 사람에게 줌.
Maintainer는 실질적인 프로젝트 관리자라서, 일반 개발자에게 무분별하게 주면 안 됨.
- MR merge 수행
- 브랜치 보호 정책 관리
- 프로젝트 설정 변경
- CI/CD 설정 관리 (variables, secrets 포함)
- Runner 및 실행 환경 관리
사용 예¶
- 팀 리드
- 테크 리드
- DevOps 담당자
- 배포 담당자
- 프로젝트 운영 책임자
보통 하는 일¶
- MR merge
- protected branch 관리
- CI/CD 설정 수정
- project settings 수정
- runner/tag/variable 관리
- 릴리즈 진행
3.5 Owner¶
가장 강한 권한임. 구조 자체를 관리하는 사람에게만 줌.
Owner는 “개발 권한 강화판”이 아니라 조직/권한 구조 관리자로 보는 게 맞음. Owner 권한은 일반 프로젝트 운영에서 사용하지 않음을 원칙으로 함
- 모든 권한 포함
- 멤버(Role) 관리
- 그룹/프로젝트 설정 변경
- 프로젝트 삭제 가능
사용 예¶
- 조직/서비스 GitLab 총괄 관리자
- 그룹 구조 설계자
- 권한 체계 관리 책임자
- 최상위 운영자 1~2명
보통 하는 일:¶
- 그룹 멤버 관리
- 하위 프로젝트 권한 구조 조정
- 그룹/프로젝트 소유권 관리
- 구조 변경
- 삭제/이관/정책 큰 변경
4. 권한 구조 운영 방식 (Team 기반 RBAC)¶
4.1 권한 관리 구조¶
- 사용자(조직) 관리 전용
- 해당 그룹에는 프로젝트 생성 금지
{COMPANY_NAME}
├── {SERVICE_PREFIX}
├── frontend (조직/부서)
├── backend (조직/부서)
├── db (조직/부서)
├── infra (조직/부서)
└── ...
4.2 서비스 관리 구조 및 서비스 Project Repository¶
{PROJECT_NAME}
├── {SERVICE_PREFIX}
│ └── {SERVICE_NAME}
├── backend
│ └── Service
└── db
└── Service
OtherProject
├── frontend
│ └── Service
├── backend
│ └── Service
└── db
└── Service