- 프로젝트를 만들 수 있는 역할 정의하기
- 프로젝트 삭제를 관리자로 제한하기
- 삭제 보호
- 프로젝트 가시성 기본값 구성
- 스니펫 가시성 기본값 구성
- 그룹 가시성 기본값 구성
- 가시성 수준 제한
- 활성화된 Git 액세스 프로토콜 구성
- HTTP(S)를 위한 사용자 정의 Git 클론 URL
- RSA, DSA, ECDSA, ED25519, ECDSA_SK, ED25519_SK SSH 키의 기본값 구성
- 프로젝트 미러링 활성화
- 전역으로 허용된 IP 주소 범위 구성
액세스 및 가시성 제어
GitLab은 관리자 액세스를 가진 사용자가 브랜치, 프로젝트, 스니펫, 그룹 등에 대해 특정 제어를 시행할 수 있도록 합니다.
사전 요구 사항:
- 귀하는 관리자여야 합니다.
가시성 및 액세스 제어 옵션에 액세스하려면:
- 왼쪽 사이드바에서 하단에 있는 Admin 를 선택합니다.
- Settings > General 를 선택합니다.
- 가시성 및 액세스 제어를 펼칩니다.
프로젝트를 만들 수 있는 역할 정의하기
여러분의 인스턴스에 프로젝트 생성 보호 기능을 추가할 수 있습니다. 이러한 보호 기능은 해당 인스턴스에서 그룹에 프로젝트를 추가할 수 있는 역할을 정의합니다. 프로젝트 생성 권한이 있는 역할을 변경하려면:
사전 요구 사항:
- 귀하는 관리자여야 합니다.
- 왼쪽 사이드바에서 하단에 있는 Admin 를 선택합니다.
- Settings > General 를 선택합니다.
- 가시성 및 액세스 제어를 펼칩니다.
-
기본 프로젝트 생성 보호에서 원하는 역할을 선택합니다:
- 아무도 아님.
- Maintainer.
- Developer 및 Maintainer.
- 변경 사항 저장을 선택합니다.
프로젝트 삭제를 관리자로 제한하기
- GitLab 15.1에서 사용자 인터페이스가 변경되었습니다.
사전 요구 사항:
- 귀하는 관리자이거나 프로젝트에서 소유자 역할을 가져야 합니다.
프로젝트 삭제를 관리자만 할 수 있도록 제한하려면:
- 왼쪽 사이드바에서 하단에 있는 Admin 를 선택합니다.
- Settings > General 를 선택합니다.
- 가시성 및 액세스 제어를 펼칩니다.
- 다음으로 스크롤합니다:
- (GitLab 15.1 이후) 프로젝트 삭제 허용을 선택하고 Administrators를 선택합니다.
- (GitLab 15.0 및 이전) 기본 프로젝트 삭제 보호을 선택하고 Only admins can delete project를 선택합니다.
- 변경 사항 저장을 선택합니다.
제한을 해제하려면:
- 소유자 및 관리자를 선택합니다.
- 변경 사항 저장을 선택합니다.
삭제 보호
- GitLab 15.1에서 기본 지연 프로젝트 삭제에서 이름이 변경되었습니다.
- GitLab 15.1에서 개인 네임스페이스의 프로젝트에 대해 활성화되었습니다.
- GitLab 15.3에서 개인 네임스페이스의 프로젝트에 대해 비활성화되었습니다.
- GitLab 15.11에서 즉시 삭제 옵션을 제거하고 플래그
always_perform_delayed_deletion
이 있는 채로 비활성화되었습니다. 기본적으로 비활성화됨.- GitLab 16.0에서 지연된 삭제가 기본적으로 활성화되었으며 GitLab.com 및 셀프 관리에서 즉시 삭제 옵션을 제거했습니다.
이러한 보호 기능은 인스턴스에서 그룹 및 프로젝트를 실수로 삭제하는 것을 방지하는 데 도움이 됩니다.
보존 기간
- GitLab 15.1에서 변경되었습니다.
그룹과 프로젝트는 여러분이 정의한 보존 기간 동안 복구할 수 있습니다. 기본적으로 이 기간은 7일이지만 수정할 수 있습니다. 보존 기간을 0
으로 설정하면 GitLab이 삭제된 그룹과 프로젝트를 즉시 제거합니다. 이를 복구할 수 없습니다.
GitLab 15.1 이후, 보존 기간은 1
에서 90
일 사이여야 합니다.
15.1 이전에 보존 기간을 0
으로 설정한 경우, 다음 응용 프로그램 설정 변경 시 GitLab은:
- 보존 기간을
1
일로 변경합니다. - 삭제 보호를 비활성화합니다.
지연 프로젝트 삭제
- GitLab 15.1에서 사용자 인터페이스가 변경되었습니다.
- GitLab 16.0에서 지연된 삭제가 기본적으로 활성화되었으며 GitLab.com 및 셀프 관리에서 즉시 삭제 옵션을 제거했습니다.
사전 요구 사항:
- 귀하는 관리자여야 합니다.
- 프로젝트에 대한 지연된 프로젝트 삭제를 활성화해야 그룹의 지연된 삭제를 활성화할 수 있습니다. 삭제 보호는 프로젝트만으로 사용할 수 없습니다.
- 비활성화된 경우, GitLab 15.1 이후에서는 지연 삭제 설정이 강제되어 이를 무시할 수 없습니다.
지연된 프로젝트 삭제를 구성하려면:
- 왼쪽 사이드바에서 하단에 있는 Admin 를 선택합니다.
- Settings > General 를 선택합니다.
- 가시성 및 액세스 제어를 펼칩니다.
-
프로젝트 삭제 보호로 스크롤하고 보존 기간을
1
에서90
일 사이의 값으로 설정합니다. - 변경 사항 저장을 선택합니다.
- 왼쪽 사이드바에서 하단에 있는 Admin 를 선택합니다.
- Settings > General 를 선택합니다.
- 가시성 및 액세스 제어를 펼칩니다.
- 다음으로 스크롤합니다:
- 15.11 버전의 GitLab에서
always_perform_delayed_deletion
기능 플래그가 활성화된 상태: 프로젝트 삭제 보호로 스크롤하고 보존 기간을1
에서90
일 사이의 값으로 설정합니다. - 15.1에서 15.10까지: 프로젝트 삭제 보호로 스크롤하고 삭제된 그룹 및 프로젝트 유지을 선택한 후 보존 기간을 설정합니다.
- 15.0 및 그 이전: 기본 지연 프로젝트 보호로 스크롤하고 새로 생성된 그룹에 대해 기본적으로 지연된 프로젝트 삭제 활성화를 선택한 후 보존 기간을 설정합니다.
- 15.11 버전의 GitLab에서
- 변경 사항 저장을 선택합니다.
지연된 그룹 삭제
- GitLab 15.1에 도입된 사용자 인터페이스를 참조하십시오. (링크)[https://gitlab.com/gitlab-org/gitlab/-/issues/352960]
- GitLab 16.0에서 Premium 및 Ultimate 티어의 기본 동작으로 변경되었습니다. (링크)[https://gitlab.com/gitlab-org/gitlab/-/issues/389557]
그룹은 보존 기간이 1
일 이상인 경우 복원할 수 있습니다.
GitLab 16.0 이후에는 삭제된 항목 유지 옵션이 제거되었으며 지연된 그룹 삭제가 기본값입니다.
GitLab 15에서 지연된 그룹 삭제를 활성화하려면:
- GitLab 15.11에서만:
always_perform_delayed_deletion
기능 플래그를 활성화합니다. - 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 컨트롤을 확장합니다.
- 삭제 예정에서 삭제된 항목 유지를 선택합니다.
- 변경 사항 저장을 선택합니다.
기본값 재정의 및 즉시 삭제
지연을 무시하고 즉시 제거할 프로젝트를 삭제하려면:
- 프로젝트 복원을 실행합니다.
- 프로젝트 관리 페이지에 설명된대로 프로젝트를 삭제합니다.
프로젝트 가시성 기본값 구성
새로운 프로젝트에 대한 가시성 수준 기본값을 설정하려면:
전제 조건:
- 관리자여야 합니다.
- 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 컨트롤을 확장합니다.
- 원하는 기본 프로젝트 가시성을 선택합니다:
- 비공개 - 각 사용자에게 명시적으로 프로젝트 액세스 권한을 부여합니다. 그룹의 구성원에게 액세스 권한을 부여합니다.
- 내부 - 외부 사용자를 제외한 모든 인증된 사용자가 프로젝트에 액세스할 수 있습니다.
- 공개 - 인증 없이 누구나 프로젝트에 액세스할 수 있습니다.
- 변경 사항 저장을 선택합니다.
스니펫 가시성 기본값 구성
새로운 스니펫에 대한 기본 가시성 수준을 설정하려면:
전제 조건:
- 관리자여야 합니다.
- 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 컨트롤을 확장합니다.
-
기본 스니펫 가시성에서 원하는 가시성 수준을 선택합니다:
- 비공개.
-
내부. GitLab.com의 새 프로젝트, 그룹, 및 스니펫에 대해 이 설정은 비활성화됩니다. 기존 스니펫은
내부
가시성 설정을 유지합니다. 이 변경에 대해 자세히 알아보려면 이슈 12388을 참조하십시오. - 공개.
- 변경 사항 저장을 선택합니다.
그룹 가시성 기본값 구성
새 그룹에 대한 기본 가시성 수준을 설정하려면:
전제 조건:
- 관리자여야 합니다.
- 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 컨트롤을 확장합니다.
-
기본 그룹 가시성에서 원하는 가시성 수준을 선택합니다:
- 비공개 - 구성원만 그룹 및 내부 프로젝트를 볼 수 있습니다.
- 내부 - 외부 사용자를 제외한 모든 인증된 사용자가 그룹 및 내부 프로젝트를 볼 수 있습니다.
- 공개 - 인증이 필요하지 않으며 누구나 그룹 및 공개 프로젝트를 볼 수 있습니다.
- 변경 사항 저장을 선택합니다.
그룹 가시성에 대한 자세한 내용은 그룹 가시성을 참조하십시오.
가시성 수준 제한
- GitLab 16.3에서 기본 프로젝트 및 그룹 가시성 제한 방지를 위해 변경되었으며, 기본적으로
prevent_visibility_restriction
이라는 플래그가 사용되지 않았습니다. 기본적으로 비활성화되어 있습니다.- GitLab 16.4에서 기본적으로
prevent_visibility_restriction
이 활성화되었습니다. (링크)[https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131203]- GitLab 16.7에서
prevent_visibility_restriction
이 제거되었습니다. (링크)[https://gitlab.com/gitlab-org/gitlab/-/issues/433280]
가시성 수준을 제한할 때, 이러한 제한이 가시성을 상속하는 서브그룹 및 프로젝트에 어떻게 영향을 미치는지 고려하십시오.
그룹, 프로젝트, 스니펫 및 선택한 페이지에 대한 가시성 수준을 제한하려면:
전제 조건:
- 관리자여야 합니다.
- 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 컨트롤을 확장합니다.
-
제한된 가시성 수준에서 원하는 제한할 가시성 수준을 선택합니다:
-
공개 수준을 제한하는 경우:
- 관리자만 공개 그룹, 프로젝트 및 스니펫을 만들 수 있습니다.
- 사용자 프로필은 웹 인터페이스를 통해 인증된 사용자만 볼 수 있습니다.
- GitLab 15.1 이후에는 GraphQL API를 통해 사용자 속성이 표시되지 않습니다.
- GitLab 15.0에서는 인증된 사용자만 볼 수 있습니다.
-
내부 수준을 제한하는 경우:
- 관리자만 내부 그룹, 프로젝트 및 스니펫을 만들 수 있습니다.
-
비공개 수준을 제한하는 경우:
- 관리자만 비공개 그룹, 프로젝트 및 스니펫을 만들 수 있습니다.
-
공개 수준을 제한하는 경우:
- 변경 사항 저장을 선택합니다.
참고: 새 프로젝트 및 그룹에 대한 제한된 기본 가시성 수준을 선택할 수 없습니다.
활성화된 Git 액세스 프로토콜 구성
GitLab 액세스 제한을 통해 사용자가 GitLab과 통신할 수 있는 프로토콜을 선택할 수 있습니다. 액세스 프로토콜을 비활성화해도 서버 자체의 포트 액세스가 차단되지는 않습니다. 프로토콜에 사용된 포트는 여전히 접근 가능합니다. GitLab 제한 사항은 응용프로그램 수준에서 적용됩니다.
GitLab은 선택한 프로토콜에 대해서만 Git 작업을 허용합니다.
- SSH 및 HTTP(S)를 모두 활성화하는 경우 사용자는 두 프로토콜 중 하나를 선택할 수 있습니다.
- 하나의 프로토콜만 활성화하는 경우 프로젝트 페이지에는 허용된 프로토콜의 URL만 표시되며 변경 옵션이 없습니다.
인스턴스 상의 모든 프로젝트에 대해 활성화된 Git 액세스 프로토콜을 지정하려면:
전제 조건:
- 관리자여야 합니다.
- 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 컨트롤을 확장합니다.
-
활성화된 Git 액세스 프로토콜에서 원하는 프로토콜을 선택합니다:
- SSH 및 HTTP(S) 둘 다.
- SSH만.
- HTTP(S)만.
- 변경 사항 저장을 선택합니다.
경고: GitLab은 GitLab CI/CD 작업 토큰을 사용하여 수행되는 Git 클론 또는 가져오기 요청에서 HTTP(S) 프로토콜을 허용합니다. 이 설정을 통하여 Only SSH를 선택하더라도 GitLab Runner 및 CI/CD 작업에서 이 설정이 필요합니다.
HTTP(S)를 위한 사용자 정의 Git 클론 URL
프로젝트 Git 클론 URL을 HTTP(S)에 맞게 사용자 정의할 수 있으며, 이는 프로젝트 페이지에서 사용자에게 표시되는 클론 패널에 영향을 미칩니다. 예를 들어, 다음과 같은 경우:
- 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 주소 범위 구성
- 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 주소 범위를 허용 목록에 추가하려면:
사전 조건:
- 관리자여야 합니다.
- 왼쪽 사이드 바에서 가장 아래쪽에서 관리를 선택합니다.
- 설정 > 일반을 선택합니다.
- 가시성 및 액세스 제어를 확장합니다.
-
전역으로 허용된 IP 범위에서 IP 주소 범위 목록을 제공합니다. 이 목록:
- IP 주소 범위의 수에 제한이 없습니다.
- SSH 또는 HTTP로 인증된 IP 주소 범위에 모두 적용됩니다. 이 목록을 인증 유형으로 분리할 수는 없습니다.
- 변경 사항 저장을 선택합니다.