액세스 및 가시성 제어
Offering: GitLab Self-Managed, GitLab Dedicated
GitLab 인스턴스 관리자는 브랜치, 프로젝트, 스니펫, 그룹 등에 대한 특정 제어를 적용할 수 있습니다. 가시성 및 액세스 제어 옵션에 액세스하려면: 인스턴스에 프로젝트 생성 보호를 추가할 수 있습니다. 프로젝트를 생성하는 데 필요한 기본 최소 역할 설정을 구성하면 새 그룹에 대한 기본값이 설정됩니다.
GitLab 인스턴스 관리자는 브랜치, 프로젝트, 스니펫, 그룹 등에 대한 특정 제어를 적용할 수 있습니다. 예를 들어 다음을 정의할 수 있습니다:
- 프로젝트를 생성하거나 삭제할 수 있는 역할.
- 삭제된 프로젝트 및 그룹의 보존 기간.
- 그룹, 프로젝트, 스니펫의 가시성.
- SSH 키에 허용되는 유형 및 길이.
- 허용되는 프로토콜(SSH 또는 HTTPS) 및 클론 URL과 같은 Git 설정.
- 푸시 미러링 및 풀 미러링 허용 또는 방지.
사전 요구 사항:
- 관리자여야 합니다.
가시성 및 액세스 제어 옵션에 액세스하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
프로젝트를 만들 수 있는 역할 정의#
인스턴스에 프로젝트 생성 보호를 추가할 수 있습니다. 이 보호는 인스턴스에서 그룹에 프로젝트를 추가할 수 있는 역할을 정의합니다.
프로젝트를 생성하는 데 필요한 기본 최소 역할 설정을 구성하면 새 그룹에 대한 기본값이 설정됩니다. 기존 그룹은 현재 권한을 유지합니다.
사전 요구 사항:
- 관리자여야 합니다.
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 프로젝트를 생성하는 데 필요한 기본 최소 역할의 경우 원하는 역할을 선택합니다:
- 아무도.
- 관리자.
- 소유자.
- 유지 관리자.
- 개발자.
- 변경 사항 저장을 선택합니다.
관리자를 선택하고 관리자 모드가 활성화된 경우 관리자는 새 프로젝트를 만들기 위해 관리자 모드로 전환해야 합니다.
관리자만 프로젝트 삭제 가능하도록 제한#
사전 요구 사항:
- 관리자이거나 프로젝트에서 소유자 역할이 있어야 합니다.
관리자만 프로젝트 삭제를 제한하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 프로젝트를 삭제할 수 있는 권한으로 스크롤하여 관리자를 선택합니다.
- 변경 사항 저장을 선택합니다.
제한을 비활성화하려면:
- 소유자 및 관리자를 선택합니다.
- 변경 사항 저장을 선택합니다.
삭제 보호#
히스토리
삭제 보호는 인스턴스에서 그룹 및 프로젝트의 우발적인 삭제를 방지합니다.
보존 기간#
그룹과 프로젝트는 사용자가 정의한 보존 기간 동안 복원 가능한 상태를 유지합니다. 기본적으로
보존 기간은 30일이지만 1에서 90일 사이의 값으로 변경할 수 있습니다.
사전 요구 사항:
- 관리자 액세스 권한이 있어야 합니다.
그룹 및 프로젝트에 대한 삭제 보호를 구성하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 보존 기간으로 스크롤하여 보존 기간을
1에서90일 사이의 값으로 설정합니다. - 변경 사항 저장을 선택합니다.
기본값 재정의 및 영구 삭제#
지연을 재정의하고 삭제 예정으로 표시된 프로젝트를 영구적으로 삭제하려면:
- 프로젝트를 복원합니다.
- 프로젝트 관리에 설명된 대로 프로젝트를 삭제합니다.
프로젝트 가시성 기본값 구성#
새 프로젝트의 기본 가시성 수준을 설정하려면:
사전 요구 사항:
- 관리자여야 합니다.
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 원하는 기본 프로젝트 가시성을 선택합니다:
- 비공개 - 각 사용자에게 명시적으로 프로젝트 액세스 권한을 부여합니다. 이 프로젝트가 그룹의 일부인 경우 그룹 구성원에게 액세스 권한을 부여합니다.
- 내부 - 외부 사용자를 제외한 모든 인증된 사용자가 프로젝트에 액세스할 수 있습니다.
- 공개 - 모든 사용자가 인증 없이 프로젝트에 액세스할 수 있습니다.
- 변경 사항 저장을 선택합니다.
스니펫 가시성 기본값 구성#
새 스니펫의 기본 가시성 수준을 설정하려면:
사전 요구 사항:
- 관리자여야 합니다.
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 기본 스니펫 가시성의 경우 원하는 가시성 수준을 선택합니다:
- 비공개.
- 내부. 이 설정은 GitLab.com의 새 프로젝트, 그룹, 스니펫에는 비활성화됩니다.
내부가시성 설정을 사용하는 기존 스니펫은 이 설정을 유지합니다. 이 변경 사항에 대해 자세히 알아보려면 이슈 12388을 참조하세요. - 공개.
- 변경 사항 저장을 선택합니다.
그룹 가시성 기본값 구성#
새 그룹의 기본 가시성 수준을 설정하려면:
사전 요구 사항:
- 관리자여야 합니다.
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 기본 그룹 가시성의 경우 원하는 가시성 수준을 선택합니다:
- 비공개 - 멤버만 그룹과 프로젝트를 볼 수 있습니다.
- 내부 - 외부 사용자를 제외한 모든 인증된 사용자가 그룹과 모든 내부 프로젝트를 볼 수 있습니다.
- 공개 - 그룹과 모든 공개 프로젝트를 보는 데 인증이 필요하지 않습니다.
- 변경 사항 저장을 선택합니다.
그룹 가시성에 대한 자세한 내용은 그룹 가시성을 참조하세요.
가시성 수준 제한#
히스토리
가시성 수준을 제한할 때 이러한 제한이 변경 중인 항목에서 가시성을 상속하는 하위 그룹 및 프로젝트의 권한과 어떻게 상호 작용하는지 고려하세요.
이 설정은 개인 네임스페이스에서 생성된 프로젝트에는 적용되지 않습니다. 이 기능을 엔터프라이즈 사용자로 확장하려는 기능 요청이 있습니다.
그룹, 프로젝트, 스니펫, 선택한 페이지의 가시성 수준을 제한하려면:
사전 요구 사항:
- 관리자여야 합니다.
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 제한된 가시성 수준의 경우 제한할 원하는 가시성 수준을 선택합니다.
- 공개 수준을 제한하는 경우:
- 관리자만 공개 그룹, 프로젝트, 스니펫을 만들 수 있습니다.
- 사용자 프로필은 웹 인터페이스를 통해 인증된 사용자에게만 표시됩니다.
- 사용자 속성은 GraphQL API를 통해 표시되지 않습니다.
- 내부 수준을 제한하는 경우:
- 관리자만 내부 그룹, 프로젝트, 스니펫을 만들 수 있습니다.
- 비공개 수준을 제한하는 경우:
- 관리자만 비공개 그룹, 프로젝트, 스니펫을 만들 수 있습니다.
- 공개 수준을 제한하는 경우:
- 변경 사항 저장을 선택합니다.
새 프로젝트 또는 그룹의 기본값으로 설정된 가시성 수준은 제한할 수 없습니다. 반대로 제한된 가시성 수준을 새 프로젝트 또는 그룹의 기본값으로 설정할 수 없습니다.
활성화된 Git 액세스 프로토콜 구성#
GitLab 액세스 제한을 사용하면 사용자가 GitLab과 통신하는 데 사용할 수 있는 프로토콜을 선택할 수 있습니다. 액세스 프로토콜을 비활성화해도 서버 자체에 대한 포트 액세스는 차단되지 않습니다. 프로토콜에 사용되는 포트(SSH 또는 HTTP(S))는 여전히 액세스 가능합니다. GitLab 제한은 애플리케이션 수준에서 적용됩니다.
GitLab은 선택한 프로토콜에 대해서만 Git 작업을 허용합니다:
- SSH와 HTTP(S)를 모두 활성화하면 사용자는 어느 프로토콜이든 선택할 수 있습니다.
- 하나의 프로토콜만 활성화하면 프로젝트 페이지에는 허용된 프로토콜의 URL만 표시되며 변경 옵션은 없습니다.
인스턴스의 모든 프로젝트에 대해 활성화된 Git 액세스 프로토콜을 지정하려면:
사전 요구 사항:
- 관리자여야 합니다.
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 활성화된 Git 액세스 프로토콜의 경우 원하는 프로토콜을 선택합니다:
- SSH와 HTTP(S) 모두.
- SSH만.
- HTTP(S)만.
- 변경 사항 저장을 선택합니다.
GitLab은 GitLab CI/CD 잡 토큰으로 수행된 Git 클론 또는 페치 요청에 대해 HTTP(S) 프로토콜을 허용합니다. GitLab Runner와 CI/CD 잡이 이 설정을 필요로 하기 때문에 SSH만을 선택하더라도 이 작동은 발생합니다.
HTTP(S)용 Git 클론 URL 사용자 정의#
HTTP(S)용 프로젝트 Git 클론 URL을 사용자 정의할 수 있으며, 이는 프로젝트 페이지에서 사용자에게 표시되는 클론 패널에 영향을 줍니다. 예를 들어:
- GitLab 인스턴스가
https://example.com에 있으면 프로젝트 클론 URL은https://example.com/foo/bar.git와 같습니다. - 대신
https://git.example.com/gitlab/foo/bar.git와 같은 클론 URL을 원하면 이 설정을https://git.example.com/gitlab/로 설정할 수 있습니다.
gitlab.rb에서 HTTP(S)용 사용자 정의 Git 클론 URL을 지정하려면 gitlab_rails['gitlab_ssh_host']에 새 값을 설정합니다. GitLab UI에서 새 값을 지정하려면:
사전 요구 사항:
- 관리자여야 합니다.
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- HTTP(S)용 사용자 정의 Git 클론 URL에 루트 URL을 입력합니다.
- 변경 사항 저장을 선택합니다.
RSA, DSA, ECDSA, ED25519, ECDSA_SK, ED25519_SK SSH 키에 대한 기본값 구성#
이 옵션은 SSH 키에 대해 허용되는 유형 및 길이를 지정합니다.
각 키 유형에 대한 제한을 지정하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- RSA SSH 키로 이동합니다.
- 각 키 유형에 대해 전혀 사용을 허용하거나 방지하거나, 다음 길이만 허용할 수 있습니다:
- 최소 1024비트.
- 최소 2048비트.
- 최소 3072비트.
- 최소 4096비트.
- 최소 1024비트.
- 변경 사항 저장을 선택합니다.
프로젝트 미러링 활성화#
GitLab은 기본적으로 프로젝트 미러링을 활성화합니다. 비활성화하면 풀 미러링과 푸시 미러링 모두 모든 저장소에서 더 이상 작동하지 않습니다. 관리자 사용자가 프로젝트별로만 다시 활성화할 수 있습니다.
인스턴스의 프로젝트 유지 관리자가 프로젝트별로 미러링을 구성할 수 있도록 허용하려면:
사전 요구 사항:
- 관리자여야 합니다.
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 저장소를 선택합니다.
- 저장소 미러링을 확장합니다.
- 프로젝트 유지 관리자가 저장소 미러링을 구성하도록 허용을 선택합니다.
- 변경 사항 저장을 선택합니다.
전역 허용 IP 주소 범위 구성#
관리자는 IP 주소 범위를 그룹당 IP 제한과 결합할 수 있습니다. 전역으로 허용된 IP 주소는 그룹이 자체 IP 주소 제한을 설정하더라도 GitLab 설치의 일부 기능이 올바르게 작동할 수 있도록 합니다.
예를 들어 GitLab Pages 데몬이 10.0.0.0/24 범위에서 실행되는 경우 전역으로 해당 범위를 허용합니다.
그룹의 IP 주소 제한에 10.0.0.0/24 범위가 포함되지 않더라도 GitLab Pages는 파이프라인에서 아티팩트를 가져올 수 있습니다.
그룹의 허용 목록에 IP 주소 범위를 추가하려면:
사전 요구 사항:
- 관리자여야 합니다.
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 전역 허용 IP 범위에서 IP 주소 범위 목록을 제공합니다. 이 목록은:
- IP 주소 범위 수에 제한이 없습니다.
- SSH 또는 HTTP 승인된 IP 주소 범위 모두에 적용됩니다. 이 목록을 승인 유형별로 분리할 수 없습니다.
- 변경 사항 저장을 선택합니다.
그룹 및 프로젝트 초대 방지#
히스토리
- GitLab 18.0에서 도입되었습니다. 기본적으로 비활성화됩니다.
관리자는 비관리자가 인스턴스의 모든 그룹 또는 프로젝트에 사용자를 초대하는 것을 방지할 수 있습니다. 이 설정을 구성하면 관리자만 인스턴스의 그룹 또는 프로젝트에 사용자를 초대할 수 있습니다.
사전 요구 사항:
- 관리자여야 합니다.
초대를 방지하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- 그룹 멤버 초대 방지 확인란을 선택합니다.
- 변경 사항 저장을 선택합니다.
GitLab 크레딧 사용자 데이터 표시#
히스토리
- GitLab 18.7에서 사용자 데이터 표시를 허용하는 인스턴스 설정이
usage_billing_dev라는 플래그와 함께 도입되었습니다. 기본적으로 활성화됨. - 기능 플래그
usage_billing_dev가 GitLab 18.10에서 제거되었습니다.
사전 요구 사항:
- 관리자여야 합니다.
GitLab 크레딧 대시보드에서 사용자 데이터 표시를 켜려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
- GitLab 크레딧 대시보드에서 사용자 데이터 표시 확인란을 선택합니다.
- 변경 사항 저장을 선택합니다.
