사용자 역할의 사전 정의된 시스템

인스턴스

사용자 유형

각 사용자는 다음 중 하나일 수 있습니다:

  • 일반.
  • 외부 - 직접 구성원인 경우만 그룹 및 프로젝트에 액세스합니다.
  • 내부 사용자 - 시스템에서 생성됨.
  • 감사자:
    • 프로젝트 또는 그룹 설정 메뉴에 액세스하지 못함.
    • 관리자 영역에 액세스하지 못함.
    • 기타 모든 것에 대해 읽기 전용 액세스 권한 보유.
  • 관리자 - 읽기-쓰기 권한 보유.

각 사용자 유형의 사용 방법에 대한 자세한 내용은 권한 페이지를 참조하세요.

그룹 및 프로젝트

일반 권한

그룹 및 프로젝트는 다음 가시성 수준을 가질 수 있습니다:

  • 공개 (20) - 모든 사람이 엔티티를 볼 수 있음
  • 내부 (10) - 인증된 사용자만 엔티티를 볼 수 있음
  • 비공개 (0) - 엔티티에 대한 액세스가 해당 엔티티의 승인된 구성원에게만 허용됨

기본적으로 하위 그룹은 더 높은 가시성 수준을 가질 수 없습니다. 예를 들어, 새로운 비공개 그룹을 만든다면 공개 하위 그룹을 포함할 수 없습니다.

그룹의 가시성 수준은 모든 하위 그룹 및 하위 프로젝트가 동일하거나 더 낮은 가시성 수준을 가질 경우에만 변경할 수 있습니다. 예를 들어, 그룹은 내부로만 설정될 수 있습니다만, 모든 하위 그룹과 프로젝트가 내부 또는 비공개인 경우에만 그렇습니다.

경고: 기존 그룹을 더 낮은 가시성 수준으로 이관하더라도 해당 조치는 하위 그룹을 동일하게 이관시키지 않습니다. 이는 알려진 문제입니다.

가시성 수준은 Gitlab::VisibilityLevel 모듈에서 찾을 수 있습니다.

특정 기능 권한

추가로, 다음 프로젝트 기능은 다른 가시성 수준을 가질 수 있습니다:

  • 이슈
  • 저장소
    • 머지 요청
    • 포크
    • 파이프라인
  • 분석
  • 요구 사항
  • 보안 및 규정 준수
  • 위키
  • 코드 스니펫
  • 페이지
  • 작업
  • 메트릭 대시보드

이러한 기능은 “모든 사용자에게 액세스 가능” 또는 “프로젝트 구성원만 액세스 가능”으로 설정할 수 있습니다. 비공개 프로젝트의 경우 기본적으로 프로젝트 구성원만 액세스할 수 있습니다.

구성원

사용자는 여러 그룹 및 프로젝트의 구성원일 수 있습니다. 다음 액세스 수준이 가능합니다(Gitlab::Access 모듈에 정의됨):

  • 액세스 없음 (0)
  • 최소한의 액세스 (5)
  • 게스트 (10)
  • 기술 지원단 (20)
  • 개발자 (30)
  • 유지 관리자 (40)
  • 소유자 (50)

사용자가 프로젝트 및 프로젝트 상위 그룹의 구성원인 경우, 프로젝트의 적용된 액세스 수준이 가장 높음.

사용자가 프로젝트의 구성원이지만 상위 그룹의 구성원이 아닌 경우에도, 그룹 및 엔티티(에픽과 같은)를 볼 수 있습니다.

프로젝트 멤버십(그룹 멤버십이 이미 고려된 경우) 은 project_authorizations 테이블에 저장됩니다.

참고: 개인 네임스페이스의 프로젝트는 소유자 역할의 최대 권한을 가지고 있습니다.

게스트 역할

GitLab의 게스트 역할을 가진 사용자는 프로젝트 계획, 차단 요소 및 기타 진행 표시자를 볼 수 있습니다. 그들이 만들지 않은 데이터를 수정할 수 없지만, 게스트들은 프로젝트에 기여하여 프로젝트 작업 항목을 만들고 연결함으로써 프로젝트에 기여할 수 있습니다. 게스트들은 또한 다음과 같은 프로젝트의 고수준 정보를 볼 수 있습니다:

  • 분석
  • 사건 정보
  • 이슈 및 에픽
  • 라이센스

더 많은 정보는 프로젝트 멤버 권한을 참조하세요.

비밀 이슈

비밀 이슈는 최소한 기술 지원단 (게스트는 액세스할 수 없음)의 프로젝트 구성원만 액세스할 수 있습니다. 추가로, 그들의 작성자와 담당자만 액세스할 수 있습니다.

라이센스 기능

일부 기능은 사용자가 올바른 라이센스 계획을 가지고 있을 때에만 액세스할 수 있습니다.

권한 종속성

기능 정책은 상당히 복잡할 수 있으며 여러 규칙으로 이뤄질 수 있습니다. 권한을 잘 설계하는 것은 가능한 한 기존 권한을 재사용하고 기능 액세스를 더 세분화하는 것을 의미합니다.

복잡한 리소스의 경우, 정보를 더 작은 조각으로 나누고 각 조각에 서로 다른 권한을 부여해야 합니다.

이 경우의 좋은 예는 병합 요청 위젯보안 보고서_입니다. _파이프라인_의 가시성 수준에 따라 _보안 보고서_는 위젯에 표시되거나 그렇지 않을 수 있습니다. 따라서 _병합 요청 위젯, 파이프라인, 및 _보안 보고서_는 별도의 권한을 가지고 있습니다. 게다가, _병합 요청 위젯_과 _파이프라인_의 권한이 _보안 보고서_의 종속성입니다.

보안 기능의 권한 종속성

보안 기능은 병합 요청 및 CI 플로우와 통합되어 있기 때문에 복잡한 권한을 가지고 있습니다.

다음은 일부 권한 종속성의 목록입니다.

활동 수준 리소스 위치 권한 종속성
보기 라이센스 정보 종속성 목록, 라이센스 준수 저장소를 볼 수 있음
보기 종속성 정보 종속성 목록, 라이센스 준수 저장소를 볼 수 있음
보기 취약점 정보 종속성 목록 보안 결과를 볼 수 있음
보기 프로젝트에 대한 블랙/화이트리스트 라이센스 라이센스 준수, 병합 요청 저장소를 볼 수 있음
보기 보안 결과 병합 요청, CI 작업 페이지, 파이프라인 보안 탭 프로젝트 및 CI 작업을 읽을 수 있음
보기 취약점 피드백 병합 요청 보안 결과를 읽을 수 있음
보기 종속성 목록 페이지 프로젝트 종속성 정보에 액세스할 수 있음
보기 라이센스 준수 페이지 프로젝트 라이센스 정보에 액세스할 수 있음