프로젝트 및 그룹 공유

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed형, GitLab Dedicated

초대로 공유할 수 있습니다:

Self-Managed형 GitLab에서는 기본적으로 이 기능이 사용 가능합니다. 사용자 단위로 이 기능을 숨기려면 관리자가 피처 플래그webui_members_inherited_users를 비활성화할 수 있습니다. GitLab.com과 GitLab Dedicated에서는 이 기능을 사용할 수 있습니다.

GitLab 16.11 및 이후에, 초대된 그룹의 이름 및 회원 소스는 멤버그룹 탭에서 가려지며, 다음 중 하나가 해당될 때에만 나타납니다:

  • 초대된 그룹이 공개 상태인 경우.
  • 현재 사용자가 초대된 그룹의 구성원인 경우.
  • 현재 사용자가 현재 그룹의 소유자이거나 현재 프로젝트의 유지 관리자/소유자인 경우.

그룹과 프로젝트 공유

특정 그룹이 프로젝트에 액세스할 수 있게 하려면, 그룹을 프로젝트로 초대할 수 있습니다. 그룹의 직접 및 상속된 멤버가 프로젝트에 액세스하며, 이로써 공유된 프로젝트가 됩니다.

이 경우, 상속된 멤버는 공유된 그룹으로부터 상속되어 그룹에서 상속된 멤버입니다. 공유된 그룹의 멤버만이 프로젝트에 액세스할 수 있습니다. 고려중인 그룹의 하위 그룹의 멤버에게 프로젝트에 액세스 권한을 부여하려면 해당 하위 그룹을 공유해야 합니다.

다음 표는 공유된 프로젝트에 액세스하는 그룹 멤버에 대한 개요를 제공합니다.

그룹 멤버 소스 공유된 프로젝트에 대한 액세스
공유된 그룹의 직접 멤버
공유된 그룹의 상속된 멤버
하위 그룹의 직접 멤버, 그러나 공유된 그룹의 멤버가 아님 아니요
하위 그룹의 상속된 멤버, 그러나 공유된 그룹의 멤버가 아님 아니요

그룹의 가시성 수준은 초대하려는 그룹의 프로젝트의 가시성 수준보다 적어도 같아야 합니다. 예를 들어 다음과 같이 초대할 수 있습니다:

  • 비공개 그룹을 비공개 프로젝트로.
  • 비공개 그룹을 내부 프로젝트로.
  • 비공개 그룹을 공개 프로젝트로.
  • 내부 그룹을 내부 프로젝트로.
  • 내부 그룹을 공개 프로젝트로.
  • 공개 그룹을 공개 프로젝트로.

프로젝트의 최상위 그룹이 계층 구조 외부로 프로젝트를 공유하는 것을 허용하지 않는 경우, 초대한 그룹 또는 하위 그룹은 프로젝트의 네임스페이스에 있어야 합니다.

프로젝트의 계층 구조에서 그룹과 프로젝트를 공유하는 것을 방지하는 그룹이 있을 경우, 그룹 초대 옵션이 사용할 수 없습니다.

멤버 액세스 및 역할

프로젝트를 공유하는 경우, 다음 멤버들이 해당 프로젝트에 액세스합니다:

  • 모든 직접적인 그룹 멤버.
  • 상속된 그룹 멤버.
  • 초대된 그룹과 공유된 그룹의 멤버인 다른 그룹 멤버.

추가로:

  • 그룹 페이지에서 해당 프로젝트는 공유된 프로젝트 탭에 나열됩니다.
  • 프로젝트의 멤버 페이지에서 해당 그룹은 그룹 탭에 나열됩니다. 이 디렉터리에는 공개 그룹과 비공개 그룹이 모두 포함됩니다.
  • 프로젝트의 멤버 페이지에서 초대된 그룹의 구성원은 멤버 탭에 나열됩니다.
  • 각 사용자에게 최대 역할이 할당됩니다.
  • 사용량 할당 페이지에서 프로젝트 초대 배지가 있는 멤버는 공유된 프로젝트의 최상위 그룹의 청구 가능한 멤버로 포함됩니다.
note
초대된 그룹의 이름과 멤버 소스는 해당 그룹에 액세스 권한이 없는 멤버에게서 가려집니다. 그러나 프로젝트 유지 관리자와 소유자가 비공개로 초대된 그룹에 액세스할 수 없더라도 비공개로 초대된 그룹 구성원의 소스를 볼 수 있습니다. 이 동작은 프로젝트 유지 관리자와 소유자가 소유한 프로젝트의 구성원을 더 잘 관리하기 위한 것입니다.

예시

네임스페이스가 그룹/하위그룹01/프로젝트인 경우:

  • 그룹/하위그룹02 또는 그룹/하위그룹01/하위그룹03과 공유할 수 있습니다.
  • 프로젝트의 최상위 그룹이 계층 구조 외부로 프로젝트를 공유하는 것을 허용하지 않는 경우, 그룹_abc를 공유할 수 있습니다.

그룹 1이 만든 프로젝트의 경우:

  • 그룹 1의 구성원은 프로젝트에 액세스할 수 있습니다.
  • 그룹 1의 소유자는 그룹 2를 프로젝트에 초대할 수 있습니다. 이렇게 하면 그룹 1그룹 2의 구성원이 공유된 프로젝트에 액세스할 수 있습니다.

다른 그룹과 그룹 공유

특정 그룹을 다른 그룹에 초대한 후:

  • 그룹의 멤버 페이지에서 그룹 탭에 초대된 그룹이 나열됩니다. 이 디렉터리에는 공개 그룹과 비공개 그룹이 모두 포함됩니다.
  • 그룹의 멤버 페이지에서 초대된 그룹의 구성원이 멤버 탭에 나열됩니다.
  • 초대된 그룹의 직접적인 멤버는 초대받는 그룹에 액세스할 수 있습니다. 가장 작은 액세스 권한은 초대된 그룹의 액세스와 초대하는 그룹의 액세스 중 더 작은 쪽에 부여됩니다.
  • 초대된 그룹의 상속된 멤버는 초대하는 그룹에 액세스할 수 없습니다.
  • 사용량 할당 페이지에서 초대된 그룹의 직접적인 멤버 중 그룹 초대 배지가 있는 멤버는 초대하는 그룹의 청구 가능한 멤버로 포함됩니다.
note
초대된 그룹의 이름과 멤버 소스는 해당 그룹에 액세스 권한이 없는 멤버에게서 가려집니다. 그러나 그룹 소유자가 비공개로 초대된 그룹에 액세스할 수 없더라도 비공개로 초대된 그룹 구성원의 소스를 볼 수 있습니다. 이 동작은 그룹 소유자가 소유한 그룹의 구성원을 더 잘 관리하기 위한 것입니다.

예시

사용자 A그룹 1의 직접적인 맴버이며 그룹의 유지 관리자 역할을 가지고 있습니다. 그룹 2가 개발자 역할로 그룹 1을 초대합니다. 이에 따라 사용자 A그룹 2에서 개발자 역할을 가지게 됩니다.

사용자 B그룹 1의 상속된 멤버입니다. 이 사용자는 그룹 1이 초대될 때 그룹 2에 액세스할 수 없습니다.

협업을 위한 그룹 설정

그룹 내에서 외부 사용자와 협업하려면 다음 최고의 실천 방법을 고려하세요:

  • 조직의 요구에 따라 그룹 및 하위 그룹을 논리적으로 구성합니다. 불필요한 그룹을 생성하지 않도록 합니다.
  • 관리해야 할 사용자가 많다면 프로젝트를 조직하는 그룹과 별도로 사용자를 그룹화하는 것을 고려해보세요. 이러한 사용자 그룹을 해당하는 그룹 및 프로젝트에 공유합니다.
  • 사용할 그룹을 신중하게 고려하세요. 보안을 유지하고 과다한 공유를 방지하기 위해 액세스가 필요한 그룹만 초대하세요.
  • 그룹을 초대할 때:
    • 최대 역할을 적절하게 설정하세요. 가장 높은 역할을 기본값으로 사용하는 대신 필요한 최소 권한을 할당하는 것이 좋습니다.
    • 초대된 그룹의 하위 그룹에서 상속된 멤버도 프로젝트에 액세스합니다. 이러한 경우 하위 그룹을 별도로 초대하는 것을 선호할 수 있습니다.
  • 프로젝트에 액세스할 수 있는 여러 그룹에 속한 사용자의 최대 역할을 확인하세요. 의도하지 않은 높은 권한을 방지하려면 사용자의 역할을 변경할 수 있습니다.
  • 공유된 프로젝트에 대한 그룹 액세스를 주기적으로 검토하고 필요에 따라 업데이트하세요. 더는 프로젝트에 액세스할 필요가 없는 그룹이 있다면 해당 그룹을 제거하세요.