액세스 및 가시성 제어

Tier: Free, Premium, Ultimate Offering: Self-Managed

GitLab은 관리자 액세스 권한을 가진 사용자가 브랜치, 프로젝트, 스니펫, 그룹 등에 특정 제어를 강제할 수 있도록 합니다.

가시성 및 액세스 제어 옵션에 액세스하려면:

  1. 관리자 액세스 수준을 가진 사용자로 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 맨 아래에서 관리 영역(Admin Area)을 선택합니다.
  3. 설정(Setting) > 일반(General)을 선택합니다.
  4. 가시성 및 액세스 제어(Visibility and access controls) 섹션을 확장합니다.

프로젝트를 만들 수 있는 역할 정의

프로젝트 생성을 위한 인스턴스 수준 보호는 해당 인스턴스에서 어떤 역할이 그룹에 프로젝트를 추가할 수 있는지 정의합니다. 허가된 역할을 변경하려면:

  1. 관리자 액세스 수준을 가진 사용자로 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 맨 아래에서 관리 영역(Admin Area)을 선택합니다.
  3. 설정(Setting) > 일반(General)을 선택합니다.
  4. 가시성 및 액세스 제어(Visibility and access controls) 섹션을 확장합니다.
  5. 기본 프로젝트 생성 보호(Default project creation protection)에서 원하는 역할을 선택합니다:
    • 아무도 아님.
    • Maintainers.
    • Developers and Maintainers.
  6. 변경 사항 저장(Select Save changes)을 선택합니다.

프로젝트 삭제를 관리자로 제한

Tier: Premium, Ultimate Offering: Self-Managed

기본적으로 관리자 및 소유자(Owner) 역할을 가진 사용자는 모두 프로젝트를 삭제할 수 있습니다. 프로젝트 삭제를 관리자만으로 제한하려면:

  1. 관리자 액세스 권한을 가진 사용자로 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 맨 아래에서 관리 영역(Admin Area)을 선택합니다.
  3. 설정(Setting) > 일반(General)을 선택합니다.
  4. 가시성 및 액세스 제어(Visibility and access controls) 섹션을 확장합니다.
  5. 다음으로 스크롤합니다:
    • (GitLab 15.1 이후) 프로젝트 삭제 허용(Allowed to delete projects)을 선택하고 관리자(Administrators)를 선택합니다.
    • (GitLab 15.0 이전) 기본 프로젝트 삭제 보호(Default project deletion protection)을 선택하고 관리자만이 프로젝트를 삭제할 수 있음(Only admins can delete project)을 선택합니다.
  6. 변경 사항 저장(Select Save changes)을 선택합니다.

삭제 보호

Tier: Premium, Ultimate Offering: Self-Managed

그룹 및 프로젝트의 실수로 삭제를 방지하기 위한 인스턴스 수준 보호.

보존 기간

그룹 및 프로젝트는 정의된 보존 기간 내에서 복원할 수 있습니다. 기본적으로 이 기간은 7일이지만 변경할 수 있습니다. 보존 기간을 0으로 설정하면 그룹 및 프로젝트가 즉시 삭제되어 복원할 수 없게 됩니다.

GitLab 15.1 이상에서는 보존 기간을 1에서 90 사이로 설정해야 합니다. 이전에 보존 기간이 0이었다면, 다음으로 응용 프로그램 설정이 변경될 때 자동으로 1로 변경되고 동시에 삭제 보호가 해제됩니다.

지연된 프로젝트 삭제

  • GitLab 15.1에서 사용자 인터페이스가 변경.
  • GitLab 16.0에서 기본적으로 지연된 삭제가 활성화되고 즉시 삭제 옵션이 제거됨 GitLab.com자체 관리형.

지연된 프로젝트 삭제 구성:

  1. 관리자 액세스 권한을 가진 사용자로 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 맨 아래에서 관리 영역(Admin Area)을 선택합니다.
  3. 설정(Setting) > 일반(General)을 선택합니다.
  4. 가시성 및 액세스 제어(Visibility and access controls) 섹션을 확장합니다.
  5. 다음으로 스크롤합니다:
    • 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)으로 이동하고 삭제된 그룹 및 프로젝트 유지를 선택한 후 보존 기간을 설정합니다.
    • GitLab 15.0 이전: 기본 지연 프로젝트 보호(Default delayed project protection)으로 이동하고 새롭게 생성된 그룹에 대해 기본적으로 지연된 프로젝트 삭제 활성화를 선택한 후 보존 기간을 설정합니다.
  6. 변경 사항 저장(Select Save changes)을 선택합니다.

프로젝트만을 위해 사용할 수 있는 삭제 보호는 활성화되지 않습니다.

GitLab 15.1 이후에는 이 설정이 그룹에서 비활성화되고 재정의할 수 없게 됩니다.

지연된 그룹 삭제

  • GitLab 15.1에 도입된 사용자 인터페이스입니다.
  • GitLab 16.0에서 프리미엄 및 얼티밋 티어의 기본 동작으로 변경되었습니다.

보관 기간이 1일 이상인 경우 그룹은 복원 가능합니다.

GitLab 15.1부터 지연된 그룹 삭제를 활성화할 수 있습니다. 이 기능은 삭제 예정삭제 유지로 설정하여 활성화할 수 있습니다. GitLab 15.11부터는 always_perform_delayed_deletion 피처 플래그가 활성화되어 있거나 GitLab 16.0 이상인 경우:

  • 삭제 유지 옵션이 제거됩니다.
  • 지연된 그룹 삭제가 기본값으로 설정됩니다.

기본값 재정의 및 즉시 삭제

대신 삭제 대상으로 표시된 프로젝트는 즉시 삭제할 수 있습니다. 다음과 같이 수행할 수 있습니다:

  1. 프로젝트를 복원합니다.
  2. 프로젝트를 삭제합니다.

프로젝트 가시성 기본값 구성

새 프로젝트의 가시성 수준을 설정하려면:

  1. 관리자 액세스 수준을 가진 사용자로서 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 아래쪽에있는 관리 영역을 선택합니다.
  3. 설정 > 일반을 선택합니다.
  4. 가시성 및 액세스 제어 섹션을 확장합니다.
  5. 원하는 기본 프로젝트 가시성을 선택합니다.
    • 개인 - 프로젝트 액세스는 각 사용자에게 명시적으로 부여되어야 합니다. 이 프로젝트가 그룹의 일부인 경우 해당 그룹의 멤버에게 액세스가 부여됩니다.
    • 내부 - 프로젝트는 외부 사용자를 제외한 모든 인증 된 사용자가 액세스 할 수 있습니다.
    • 공개 - 인증 없이 프로젝트에 액세스 할 수 있습니다.
  6. 변경 사항 저장을 선택합니다.

프로젝트 가시성에 대한 자세한 내용은 프로젝트 가시성을 참조하십시오.

스니펫 가시성 기본값 구성

새로운 스니펫에 대한 기본 가시성 수준을 설정하려면:

  1. 관리자 액세스 수준을 가진 사용자로서 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 아래쪽에있는 관리 영역을 선택합니다.
  3. 설정 > 일반을 선택합니다.
  4. 가시성 및 액세스 제어 섹션을 확장합니다.
  5. 원하는 기본 스니펫 가시성을 선택합니다.
  6. 변경 사항 저장을 선택합니다.

스니펫 가시성에 대한 자세한 내용은 스니펫 가시성을 읽어보세요.

그룹 가시성 기본값 구성

새로운 그룹에 대한 기본 가시성 수준을 설정하려면:

  1. 관리자 액세스 수준을 가진 사용자로서 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 아래쪽에있는 관리 영역을 선택합니다.
  3. 설정 > 일반을 선택합니다.
  4. 가시성 및 액세스 제어 섹션을 확장합니다.
  5. 원하는 기본 그룹 가시성을 선택합니다.
    • 개인 - 그룹 및 해당 프로젝트는 멤버만 볼 수 있습니다.
    • 내부 - 그룹 및 내부 프로젝트는 인증 된 사용자를 제외한 모든 사용자에게 볼 수 있습니다.
    • 공개 - 그룹 및 공개 프로젝트는 인증없이 볼 수 있습니다.
  6. 변경 사항 저장을 선택합니다.

그룹 가시성에 대한 자세한 내용은 그룹 가시성을 살펴보세요.

가시성 수준 제한

  • GitLab 16.3에서 기본 프로젝트 및 그룹 가시성 제한을 방지하도록 변경, 기본적으로 prevent_visibility_restriction이라는 플래그로 비활성화되었습니다.
  • prevent_visibility_restriction이 GitLab 16.4에서 기본적으로 활성화되었습니다.
  • prevent_visibility_restriction 플래그가 GitLab 16.7에서 제거되었습니다.

가시성 수준을 제한할 때 이러한 제약이 상속되는 하위 그룹 및 프로젝트에 대한 권한과 상호 작용하는지 고려하세요.

그룹, 프로젝트, 스니펫 및 선택한 페이지의 가시성 수준을 제한하려면:

  1. 관리자 액세스 수준을 가진 사용자로서 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 아래쪽에있는 관리 영역을 선택합니다.
  3. 설정 > 일반을 선택합니다.
  4. 가시성 및 액세스 제어 섹션을 확장합니다.
  5. 제한된 가시성 수준 섹션에서 원하는 가시성 수준을 제한합니다.
    • 공개 수준을 제한하면:
      • 관리자만 공개 그룹, 프로젝트 및 스니펫을 생성할 수 있습니다.
      • 사용자 프로필은 인증 된 사용자를 통해 웹 인터페이스에서만 볼 수 있습니다.
      • GitLab 15.1 이후에는 GraphQL API에서 사용자 속성이 보이지 않습니다.
      • GitLab 13.1부터 15.0까지 인증 된 사용자에게만 보입니다.
    • 내부 수준을 제한하면:
      • 관리자만 내부 그룹, 프로젝트 및 스니펫을 생성할 수 있습니다.
    • 개인 수준을 제한하면:
      • 관리자만 개인 그룹, 프로젝트 및 스니펫을 생성할 수 있습니다.
  6. 변경 사항 저장을 선택합니다.

참고: 새 프로젝트 및 그룹에 대한 제한된 기본 가시성 수준을 선택할 수 없습니다.

활성화된 Git 액세스 프로토콜 구성

GitLab 액세스 제한을 통해 사용자가 GitLab과 통신하는 데 사용할 수 있는 프로토콜을 선택할 수 있습니다. 액세스 프로토콜을 비활성화하면 서버 자체의 포트 액세스가 차단되지 않습니다. 프로토콜에 사용되는 포트(SSH 또는 HTTP(S))는 여전히 접근 가능합니다. GitLab 제한은 응용 프로그램 수준에서 적용됩니다.

활성화된 Git 액세스 프로토콜을 지정하려면 다음 단계를 수행하십시오:

  1. 관리자 액세스 수준을 가진 사용자로서 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
  3. 설정 > 일반을 선택합니다.
  4. 가시성 및 액세스 제어 섹션을 확장합니다.
  5. 원하는 Git 액세스 프로토콜을 선택합니다:
    • SSH 및 HTTP(S) 둘 다
    • SSH만
    • HTTP(S)만
  6. 변경 사항 저장을 선택합니다.

SSH 및 HTTP(S) 모두 활성화되어 있는 경우 사용자는 둘 중에 하나의 프로토콜을 선택할 수 있습니다. 하나의 프로토콜만 활성화된 경우:

  • 프로젝트 페이지에 허용된 프로토콜의 URL만 표시되며 변경할 수 있는 옵션이 없습니다.
  • 사용자 조작(예: SSH 키 추가 또는 비밀번호 설정)이 필요한 경우, GitLab은 URL을 위한 프로토콜 위에 마우스를 올리면 툴팁을 표시합니다:

    SSH만 액세스가 허용된 프로젝트 URL

GitLab은 선택한 프로토콜에 대해서만 Git 작업을 허용합니다.

경고: GitLab 10.7 및 이후에서는 SSH만을 선택해도 GitLab CI/CD 작업 토큰을 사용하여 수행되는 Git 클론 또는 페치 요청에 대해 HTTP(S) 프로토콜을 허용합니다. 이는 GitLab Runner 및 CI/CD 작업을 위해 필요합니다.

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/로 지정할 수 있습니다.

HTTP(S)용 사용자 정의 Git 클론 URL

HTTP(S)용 사용자 정의 Git 클론 URL을 지정하려면 다음 단계를 수행하십시오:

  1. HTTP(S)용 사용자 정의 Git 클론 URL의 루트 URL을 입력합니다.
  2. 변경 저장을 선택합니다.

참고: SSH 클론 URL은 gitlab.rb에서 gitlab_rails['gitlab_ssh_host'] 및 관련 설정을 설정하여 사용자 정의할 수 있습니다.

RSA, DSA, ECDSA, ED25519, ECDSA_SK, ED25519_SK SSH 키의 기본 설정 구성

이러한 옵션은 SSH 키의 허용된 유형과 길이를 지정합니다.

각 키 유형에 대한 제한을 지정하려면:

  1. 드롭다운 목록에서 원하는 옵션을 선택합니다.
  2. 변경 사항 저장을 선택합니다.

자세한 내용은 SSH 키 제한을 참조하십시오.

프로젝트 미러링 활성화

이 옵션은 기본적으로 활성화됩니다. 이를 비활성화하면 모든 리포지토리에서 풀 미러링푸시 미러링이 더 이상 작동하지 않습니다. 이를 프로젝트별로 다시 활성화할 수 있는 관리자 사용자만 다시 사용할 수 있습니다.

미러 설정

전역으로 허용된 IP 주소 범위 구성

관리자는 IP 주소 범위를 설정하여 그룹 수준 IP 제한과 함께 결합할 수 있습니다. 전역으로 허용된 IP 주소를 사용하여 GitLab 설치의 일부가 작동하도록 허용할 수 있습니다. 이는 그룹 수준 IP 주소 제한에 추가되지 않은 상태에서도 GitLab Pages 데몬이 10.0.0.0/24 범위에서 실행되도록 하는 예입니다.

그룹 수준 허용 목록에 IP 주소 범위를 추가하려면:

  1. 관리자 액세스 수준을 가진 사용자로서 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
  3. 설정 > 일반을 선택합니다.
  4. 가시성 및 액세스 제어 섹션을 확장합니다.
  5. 전역으로 허용된 IP 주소 범위에 IP 주소 범위 목록을 제공합니다. 이 목록:
    • IP 주소 범위의 수에 대한 제한이 없습니다.
    • 1GB의 크기 제한이 있습니다.
    • SSH 또는 HTTP 권한 부여 IP 주소 범위에 적용됩니다. 이 목록을 권한 종류별로 분할할 수는 없습니다.
  6. 변경 사항 저장을 선택합니다.