- 프로젝트를 생성할 수 있는 역할 정의
- 프로젝트 삭제를 관리자로 제한
- 삭제 보호
- 프로젝트 가시성 기본값 구성
- 스니펫 가시성 기본값 구성
- 그룹 가시성 기본값 구성
- 가시성 수준 제한
- 활성화된 Git 액세스 프로토콜 구성
- HTTP(S)를 위한 Git 클론 URL 사용자 정의
- RSA, DSA, ECDSA, ED25519, ECDSA_SK, ED25519_SK SSH 키의 기본값 구성
- 프로젝트 미러링 활성화
- 전역으로 허용된 IP 주소 범위 구성
액세스 및 가시성 제어
GitLab은 관리자 액세스 권한을 가진 사용자가 브랜치, 프로젝트, 스니펫, 그룹 등에 대한 특정 제어를 집행할 수 있도록 합니다.
가시성 및 액세스 제어 옵션에 액세스하려면:
- GitLab에 관리자 액세스 수준의 사용자로서 로그인합니다.
- 왼쪽 사이드바에서 하단에 있는 관리 영역(Admin Area)을 선택합니다.
- 설정(Setting) > 일반(General)을 선택합니다.
- 가시성 및 액세스 제어(Visibility and access controls) 섹션을 확장합니다.
프로젝트를 생성할 수 있는 역할 정의
프로젝트 생성에 대한 인스턴스 수준의 보호는 인스턴스에서 그룹에 프로젝트를 추가할 수 있는 권한을 정의합니다. 프로젝트를 생성할 수 있는 역할을 변경하려면:
- GitLab에 관리자 액세스 수준의 사용자로서 로그인합니다.
- 왼쪽 사이드바에서 하단에 있는 관리 영역(Admin Area)을 선택합니다.
- 설정(Setting) > 일반(General)을 선택합니다.
- 가시성 및 액세스 제어(Visibility and access controls) 섹션을 확장합니다.
-
기본 프로젝트 생성 보호(Default project creation protection)에서 원하는 역할을 선택합니다:
- 아무도 아님(No one).
- Maintainers.
- Developers and Maintainers.
- 변경 사항 저장(Save changes)을 선택합니다.
프로젝트 삭제를 관리자로 제한
- GitLab 15.1에서 사용자 인터페이스가 변경됨.
기본적으로 관리자 및 소유자(Owner) 역할을 가진 사용자는 프로젝트를 삭제할 수 있습니다. 프로젝트 삭제를 관리자만으로 제한하려면:
- GitLab에 관리자 액세스로 로그인합니다.
- 왼쪽 사이드바에서 하단에 있는 관리 영역(Admin Area)을 선택합니다.
- 설정(Setting) > 일반(General)을 선택합니다.
- 가시성 및 액세스 제어(Visibility and access controls) 섹션을 확장합니다.
- 아래로 스크롤하여:
- (GitLab 15.1 및 이후) 프로젝트 삭제 허용(Allowed to delete projects)을 해서 관리자(Administrators)를 선택합니다.
- (GitLab 15.0 및 이전) 기본 프로젝트 삭제 보호(Default project deletion protection)을 선택하고 관리자만이 프로젝트를 삭제할 수 있음(Only admins can delete project)을 선택합니다.
- 변경 사항 저장(Save changes)을 선택합니다.
삭제 보호
- GitLab 14.2에서 도입됨 (2021년 8월 12일 이후 생성된 그룹용).
- GitLab 15.1에서 기본 지연 프로젝트 삭제로 이름 변경됨.
- GitLab 15.1에서 개인 네임스페이스 내 프로젝트에 대해 활성화됨.
- GitLab 15.3에서 개인 네임스페이스 내 프로젝트에 대해 비활성화됨.
- GitLab 15.11에서 즉시 삭제하는 옵션 제거 및
always_perform_delayed_deletion
이라는 플래그로 함께 제공, 기본적으로 비활성화됨.- GitLab 16.0에서 기본적으로 지연 삭제가 활성화되고 즉시 삭제하는 옵션은 GitLab.com 및 Self-managed도에서 제거됨.
그룹 및 프로젝트의 우발적인 삭제로부터의 인스턴스 수준 보호.
보존 기간
- GitLab 15.1에서 변경됨.
그룹 및 프로젝트는 정의된 보존 기간 내에서 복구될 수 있습니다. 기본값은 7일이지만 변경할 수 있습니다.
보존 기간을 0
으로 설정하면 그룹 및 프로젝트가 즉시 삭제되어 복구할 수 없게 됩니다.
GitLab 15.1 이상에서 보존 기간은 1
에서 90
사이여야 합니다. 보존 기간이 15.1 업데이트 이전에 0
이었다면 애플리케이션 설정을 다음으로 변경할 때 다음 번 삭제 보호가 설정되면 자동으로 1
로 변경됩니다.
지연 프로젝트 삭제
- GitLab 15.1에서 사용자 인터페이스가 변경됨.
- GitLab 16.0에서 기본적으로 지연 삭제가 활성화되고 즉시 삭제하는 옵션은 GitLab.com 및 Self-managed도에서 제거됨.
지연 프로젝트 삭제를 구성하려면:
- GitLab에 관리자 액세스 수준의 사용자로서 로그인합니다.
- 왼쪽 사이드바에서 하단에 있는 관리 영역(Admin Area)을 선택합니다.
- 설정(Setting) > 일반(General)을 선택합니다.
- 가시성 및 액세스 제어(Visibility and access controls) 섹션을 확장합니다.
- 아래로 스크롤하여:
- GitLab 16.0 이상: 프로젝트 삭제 보호(Deletion protection)를 선택하고 보존 기간을
1
에서90
사이의 값으로 설정합니다. -
always_perform_delayed_deletion
피처 플래그가 활성화된 GitLab 15.11에서: 프로젝트 삭제 보호(Deletion protection)를 선택하고 보존 기간을1
에서90
사이의 값으로 설정합니다. - GitLab 15.1에서 15.10에서: 프로젝트 삭제 보호(Deletion protection)를 선택하고 삭제된 그룹 및 프로젝트 유지(Keep deleted groups and projects)를 선택한 후 보존 기간을 설정합니다.
- GitLab 15.0 이전: 기본 지연 프로젝트 보호(Default delayed project protection)를 선택하고 기본적으로 새로 생성된 그룹에 대해 지연 프로젝트 삭제 활성화(Enable delayed project deletion by default for newly-created groups)를 선택한 후 보존 기간을 설정합니다.
- GitLab 16.0 이상: 프로젝트 삭제 보호(Deletion protection)를 선택하고 보존 기간을
- 변경 사항 저장(Save changes)을 선택합니다.
프로젝트만(그룹이 아닌 경우)에는 삭제 보호가 사용할 수 없습니다.
GitLab 15.1 이상에서는 이 설정이 그룹에 대해 비활성화되고 재정의할 수 없게 됩니다.
지연 그룹 삭제
그룹은 보존 기간이 1
일 이상인 경우 복구할 수 있습니다.
GitLab 15.1 이상에서는 프로젝트 삭제 보호(Deletion projection)을 삭제된 그룹 유지(Keep deleted)로 설정하여 지연 그룹 삭제를 활성화할 수 있습니다.
GitLab 15.11 이상에서 always_perform_delayed_deletion
피처 플래그가 활성화되거나 GitLab 16.0 이후:
- 삭제된 그룹 유지(Keep deleted) 옵션이 제거됩니다.
- 지연 그룹 삭제가 기본 동작이 됩니다.
기본값 재정의 및 즉시 삭제
대안으로, 제거 대상으로 표시된 프로젝트는 즉시 삭제할 수 있습니다. 다음과 같이 진행하세요:
- 프로젝트를 복원.
- 관리 프로젝트 페이지에서 설명한 대로 프로젝트를 삭제합니다.
프로젝트 가시성 기본값 구성
새 프로젝트의 기본 가시성 수준을 설정하려면:
- 관리자 액세스 수준을 가진 사용자로 GitLab에 로그인합니다.
- 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어 섹션을 확장합니다.
- 원하는 기본 프로젝트 가시성을 선택합니다:
- 비공개 - 프로젝트 액세스는 각 사용자에게 명시적으로 승인되어야 합니다. 이 프로젝트가 그룹의 일부인 경우, 해당 그룹의 멤버에게 액세스가 승인됩니다.
- 내부 - 외부 사용자를 제외한 모든 인증된 사용자가 프로젝트에 액세스할 수 있습니다.
- 공개 - 인증이 필요하지 않고 프로젝트에 액세스할 수 있습니다.
- 변경 사항 저장을 선택합니다.
프로젝트 가시성에 대한 자세한 내용은 프로젝트 가시성을 참조하십시오.
스니펫 가시성 기본값 구성
새 스니펫의 기본 가시성 수준을 설정하려면:
- 관리자 액세스 수준을 가진 사용자로 GitLab에 로그인합니다.
- 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어 섹션을 확장합니다.
- 원하는 기본 스니펫 가시성을 선택합니다.
- 변경 사항 저장을 선택합니다.
스니펫 가시성에 대한 자세한 내용은 스니펫 가시성을 참조하십시오.
그룹 가시성 기본값 구성
새 그룹의 기본 가시성 수준을 설정하려면:
- 관리자 액세스 수준을 가진 사용자로 GitLab에 로그인합니다.
- 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어 섹션을 확장합니다.
- 원하는 기본 그룹 가시성을 선택합니다:
- 비공개 - 그룹 및 해당 프로젝트는 멤버만 볼 수 있습니다.
- 내부 - 그룹 및 내부 프로젝트는 외부 사용자를 제외한 모든 인증된 사용자가 볼 수 있습니다.
- 공개 - 그룹과 공개 프로젝트는 인증이 필요하지 않고 볼 수 있습니다.
- 변경 사항 저장을 선택합니다.
그룹 가시성에 대한 자세한 내용은 그룹 가시성을 참조하십시오.
가시성 수준 제한
- GitLab 16.3에서 변경됨으로 기본 프로젝트 및 그룹 가시성 제한 방지를 위한
prevent_visibility_restriction
이라는 플래그가 추가되었습니다. 기본적으로 비활성화됩니다.- 기본적으로 GitLab 16.4에서
prevent_visibility_restriction
이 활성화되었습니다.- 플래그
prevent_visibility_restriction
이 GitLab 16.7에서 제거되었습니다.
가시성 수준을 제한할 때, 이러한 제한이 가시성을 변경하는 항목으로부터 상속하는 하위 그룹 및 프로젝트의 권한과 상호작용하는 방식을 고려해야 합니다.
그룹, 프로젝트, 스니펫 및 선택한 페이지의 가시성 수준을 제한하려면:
- 관리자 액세스 수준을 가진 사용자로 GitLab에 로그인합니다.
- 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어 섹션을 확장합니다.
-
제한된 가시성 수준 섹션에서 제한할 원하는 가시성 수준을 선택합니다.
-
공개 수준을 제한하는 경우:
- 관리자만 공개 그룹, 프로젝트 및 스니펫을 만들 수 있습니다.
- 사용자 프로필은 웹 인터페이스를 통해 인증된 사용자에게만 표시됩니다.
- GitLab 15.1 및 이후에서는 GraphQL API를 통해 보이지 않습니다.
- GitLab 13.1부터 15.0까지는 인증된 사용자에게만 표시됩니다.
-
내부 수준을 제한하는 경우:
- 관리자만 내부 그룹, 프로젝트 및 스니펫을 만들 수 있습니다.
-
비공개 수준을 제한하는 경우:
- 관리자만 비공개 그룹, 프로젝트 및 스니펫을 만들 수 있습니다.
-
공개 수준을 제한하는 경우:
- 변경 사항 저장을 선택합니다.
활성화된 Git 액세스 프로토콜 구성
GitLab 액세스 제한을 통해 사용자가 GitLab과 통신할 수 있는 프로토콜을 선택할 수 있습니다. 액세스 프로토콜을 비활성화해도 서버 자체의 포트 액세스는 차단되지 않습니다. 프로토콜에 사용되는 포트는 여전히 접근 가능합니다. GitLab 제한은 응용 프로그램 수준에서 적용됩니다.
활성화된 Git 액세스 프로토콜을 지정하려면:
- 관리자 액세스 수준을 가진 사용자로 GitLab에 로그인합니다.
- 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어 섹션을 확장합니다.
- 원하는 Git 액세스 프로토콜을 선택합니다:
- SSH 및 HTTP(S) 모두
- SSH만
- HTTP(S)만
- 변경 사항 저장을 선택합니다.
SSH 및 HTTP(S) 둘 다 활성화되어 있는 경우 사용자는 둘 중 하나의 프로토콜을 선택할 수 있습니다. 한 가지 프로토콜만 활성화된 경우:
- 프로젝트 페이지에는 허용된 프로토콜의 URL만 표시되며 변경 옵션이 없습니다.
-
사용자 동작(예: SSH 키 추가 또는 암호 설정)이 필요한 경우 GitLab에서 URL에 대한 툴팁이 표시됩니다:
GitLab은 지정한 프로토콜에 대한 Git 작업만 허용합니다.
HTTP(S)를 위한 Git 클론 URL 사용자 정의
- 소개됨 GitLab 12.4에서.
당신은 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/
으로 지정할 수 있습니다.
HTTP(S)를 위한 사용자 정의 Git 클론 URL을 지정하려면:
- HTTP(S)를 위한 사용자 정의 Git 클론 URL에 루트 URL을 입력하세요.
- 변경 사항 저장을 선택하세요.
gitlab.rb
에서 gitlab_rails['gitlab_ssh_host']
및 관련 설정을 설정함으로써 사용자 정의할 수 있습니다.RSA, DSA, ECDSA, ED25519, ECDSA_SK, ED25519_SK SSH 키의 기본값 구성
이 옵션들은 SSH 키의 허용된 유형과 길이를 지정합니다.
각 키 유형에 대한 제한을 지정하려면:
- 드롭다운 디렉터리에서 원하는 옵션을 선택하세요.
- 변경 사항 저장을 선택하세요.
자세한 내용은 SSH 키 제한을 참조하세요.
프로젝트 미러링 활성화
이 옵션은 기본적으로 활성화되어 있습니다. 이를 비활성화하면 모든 리포지터리에서 풀 미러링 및 푸시 미러링이 더 이상 작동하지 않습니다. 이를 프로젝트별로 관리자 사용자에 의해 다시 활성화할 수 있습니다.
전역으로 허용된 IP 주소 범위 구성
- GitLab 15.1에 도입됨 그림자 기능인
group_ip_restrictions_allow_global
로. 기본적으로 비활성화됨.- GitLab 15.4에서 일반적으로 사용 가능. 피처 플래그
group_ip_restrictions_allow_global
제거됨.
관리자는 그룹 수준 IP 제한과 결합할 IP 주소 범위를 설정할 수 있습니다. 전역으로 허용된 IP 주소를 사용하여 그룹 수준 IP 주소 제한이 설정되어 있을 때에도 GitLab 설치의 측면을 계속해서 작동할 수 있도록 할 수 있습니다.
예를 들어, GitLab Pages 데몬이 10.0.0.0/24
범위에서 실행된다면, 해당 범위를 전역으로 허용된 범위로 지정할 수 있습니다. 이는 그룹 수준 IP 주소 제한이 10.0.0.0/24
범위를 포함하지 않더라도 GitLab Pages가 파이프라인에서 아티팩트를 여전히 가져올 수 있음을 의미합니다.
그룹 수준 허용 디렉터리에 IP 주소 범위를 추가하려면:
- 관리자 액세스 수준을 갖춘 사용자로 GitLab에 서명하세요.
- 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택하세요.
- 설정 > 일반을 선택하세요.
- 가시성 및 액세스 제어 섹션을 확장하세요.
-
전역으로 허용된 IP 범위에서 IP 주소 범위 디렉터리을 제공하세요. 이 디렉터리은:
- IP 주소 범위의 수에 제한이 없습니다.
- 1GB의 크기 제한이 있습니다.
- SSH 또는 HTTP 인증 IP 주소 범위 둘 다에 적용됩니다. 이 디렉터리을 인증 유형에 따라 분할할 수 없습니다.
- 변경 사항 저장을 선택하세요.