- UI를 사용하여 그룹 액세스 토큰 생성
- Rails 콘솔을 사용하여 그룹 액세스 토큰 생성
- UI를 사용하여 그룹 액세스 토큰 취소하기
- Rails 콘솔을 사용하여 그룹 액세스 토큰 취소하기
- 그룹 액세스 토큰의 스코프
- 그룹 액세스 토큰 생성 활성화 또는 비활성화하기
- 그룹용 봇 사용자
- 토큰 사용 가능성
그룹 액세스 토큰
그룹 액세스 토큰을 사용하면 단일 토큰을 사용하여 다음 작업을 수행할 수 있습니다:
- 그룹에 대한 작업 수행
- 그룹 내의 프로젝트 관리
그룹 액세스 토큰을 사용하여 다음을 인증할 수 있습니다:
- GitLab API로
-
GitLab 14.2 및 이후 버전에서는 HTTPS를 통해 Git으로 인증합니다. 사용 방법:
- 사용자 이름으로는 비어 있지 않은 값
- 암호로는 그룹 액세스 토큰을 사용
GitLab.com에서는 Premium이나 Ultimate 라이선스 티어가 있는 경우 그룹 액세스 토큰을 사용할 수 있습니다. 그룹 액세스 토큰은 체험 라이선스로는 사용할 수 없습니다.
GitLab Dedicated 및 Self-managed 인스턴스에서는 모든 라이선스 티어로 그룹 액세스 토큰을 사용할 수 있습니다. 프리 티어를 사용하는 경우:
- 사용자 자가 등록에 대한 보안 및 규정 준수 정책을 검토하세요.
- 그룹 액세스 토큰 사용 금지을 고려하여 잠재적인 남용을 줄입니다.
그룹 액세스 토큰은 프로젝트 액세스 토큰 및 개인 액세스 토큰과 유사하지만, 프로젝트 또는 사용자 대신에 그룹과 연관됩니다.
Self-managed 인스턴스에서는 그룹 액세스 토큰이 설정된 경우 개인 액세스 토큰과 동일한 최대 수명 제한이 적용됩니다.
그룹 액세스 토큰으로 다른 그룹, 프로젝트 또는 개인 액세스 토큰을 만들 수 없습니다.
그룹 액세스 토큰은 개인 액세스 토큰에 대한 설정된 기본 접두어 설정을 상속받습니다.
UI를 사용하여 그룹 액세스 토큰 생성
그룹 액세스 토큰을 만들려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 설정 > 액세스 토큰을 선택합니다.
- 새 토큰 추가를 선택합니다.
- 이름을 입력합니다. 토큰 이름은 그룹을 볼 수 있는 사용자에게 표시됩니다.
- 토큰의 만료 날짜를 입력합니다:
- 토큰은 해당 날짜에 UTC 자정에 만료됩니다.
- 해당 날짜를 입력하지 않은 경우 만료 날짜는 자동으로 현재 날짜로부터 365일 후로 설정됩니다.
- 기본적으로이 날짜는 현재 날짜로부터 최대 365일 후까지입니다.
- Self-managed 인스턴스에서는 인스턴스 전체 최대 수명 설정이 가능한 최대 수명을 제한할 수 있습니다.
- 토큰의 역할을 선택합니다.
- 원하는 범위를 선택합니다.
- 그룹 액세스 토큰 생성을 선택합니다.
그룹 액세스 토큰이 표시됩니다. 그룹 액세스 토큰을 안전한 위치에 저장하세요. 페이지를 나가거나 새로 고침한 후에는 다시 볼 수 없습니다.
Rails 콘솔을 사용하여 그룹 액세스 토큰 생성
GitLab 14.6 이전에는 UI 또는 API를 사용하여 그룹 액세스 토큰을 생성할 수 없습니다. 그러나 관리자는 다음 방법을 사용할 수 있습니다:
-
Rails 콘솔에서 다음 명령을 실행합니다:
# GitLab 관리 사용자를 설정합니다. 사용자 ID 1을 사용할 수 없거나 관리자가 아닌 경우 'admin = User.admins.first' 대신에 관리자를 선택하기 위해 'admin = User.admins.first'와 같은 코드를 사용합니다. admin = User.find(1) # 토큰을 생성할 그룹을 설정합니다. 예를 들어, ID가 109인 그룹입니다. group = Group.find(109) # 그룹 봇 사용자를 생성합니다. 추가 그룹 액세스 토큰을 위해 사용자 이름은 `group_{group_id}_bot_{random_string}`이고 이메일 주소는 `group_{group_id}_bot_{random_string}@noreply.{Gitlab.config.gitlab.host}`여야 합니다. random_string = SecureRandom.hex(16) bot = Users::CreateService.new(admin, { name: 'group_token', username: "group_#{group.id}_bot_#{random_string}", email: "group_#{group.id}_bot_#{random_string}@noreply.#{Gitlab.config.gitlab.host}", user_type: :project_bot }).execute # 그룹 봇을 확인합니다. bot.confirm # 필요한 역할로 그룹에 봇을 추가합니다. group.add_member(bot, :maintainer) # 봇에 개인 액세스 토큰을 부여합니다. token = bot.personal_access_tokens.create(scopes:[:api, :write_repository], name: 'group_token') # 토큰 값을 가져옵니다. gtoken = token.token
-
생성된 그룹 액세스 토큰이 작동하는지 테스트합니다:
-
생성된 그룹 액세스 토큰을
PRIVATE-TOKEN
헤더로 GitLab REST API에서 사용합니다. 예를 들어:- 그룹 내에서 에픽 생성.
- 그룹의 프로젝트에서 프로젝트 파이프라인 생성.
- 그룹의 프로젝트 중 하나에서 이슈 생성.
-
HTTPS를 사용하여 그룹 프로젝트 복제에 그룹 토큰 사용.
-
UI를 사용하여 그룹 액세스 토큰 취소하기
- GitLab 14.7에서 도입되었습니다.
그룹 액세스 토큰을 취소하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 설정 > 액세스 토큰을 선택합니다.
- 취소할 그룹 액세스 토큰 옆에서 취소를 선택합니다 ().
Rails 콘솔을 사용하여 그룹 액세스 토큰 취소하기
GitLab 14.6 및 이전 버전은 UI나 API를 사용하여 그룹 액세스 토큰을 취소하는 기능을 지원하지 않습니다. 그러나 관리자는 해결 방법을 사용할 수 있습니다.
그룹 액세스 토큰을 취소하려면 Rails 콘솔에서 다음 명령을 실행합니다:
bot = User.find_by(username: 'group_109_bot') # 취소하려는 토큰의 소유자
token = bot.personal_access_tokens.last # 취소하려는 토큰
token.revoke!
그룹 액세스 토큰의 스코프
스코프는 그룹 액세스 토큰으로 인증할 때 수행할 수 있는 작업을 결정합니다.
스코프 | 설명 |
---|---|
api
| 그룹과 관련된 프로젝트 API 전체에 대한 읽기 및 쓰기 액세스를 부여합니다. 이에는 컨테이너 레지스트리, 의존성 프록시, 패키지 레지스트리도 포함됩니다. |
read_api
| 그룹 및 관련 프로젝트 API에 대한 읽기 액세스를 부여합니다. 이에는 패키지 레지스트리도 포함됩니다. |
read_registry
| 한 그룹 내의 프로젝트 중 어느 것이 비공개이고 권한이 필요한 경우 컨테이너 레지스트리 이미지에 대한 읽기 액세스 (pull)를 부여합니다. |
write_registry
| 컨테이너 레지스트리에 대한 쓰기 액세스 (push)를 부여합니다. 이미지를 푸시하려면 읽기 및 쓰기 액세스가 모두 필요합니다. |
read_repository
| 그룹 내의 모든 리포지터리에 대한 읽기 액세스 (pull)를 부여합니다. |
write_repository
| 그룹 내의 모든 리포지터리에 대한 읽기 및 쓰기 액세스 (pull 및 push)를 부여합니다. |
create_runner
| 그룹에서 러너를 생성할 수 있는 권한을 부여합니다. |
ai_features
| GitLab Duo를 위한 API 작업을 수행할 수 있는 권한을 부여합니다. 이 스코프는 JetBrains용 GitLab Duo 플러그인과 함께 작동하도록 설계되었습니다. 기타 모든 확장에 대한 요구 사항은 해당 문서를 참조하세요. |
k8s_proxy
| 그룹에서 Kubernetes의 에이전트를 사용하여 Kubernetes API 호출을 수행할 수 있는 권한을 부여합니다. |
그룹 액세스 토큰 생성 활성화 또는 비활성화하기
상위 그룹의 모든 하위 그룹에 대해 그룹 액세스 토큰 생성을 활성화 또는 비활성화하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 설정 > 일반을 선택합니다.
- 권한 및 그룹 기능을 확장합니다.
- 권한 아래에서 사용자가 이 그룹에서 프로젝트 액세스 토큰 및 그룹 액세스 토큰을 생성할 수 있음을 켜거나 끕니다.
- 변경 사항 저장을 선택합니다.
생성이 비활성화되어도 기존의 그룹 액세스 토큰을 여전히 사용하고 취소할 수 있습니다.
그룹용 봇 사용자
그룹용 봇 사용자는 GitLab에서 생성한 서비스 계정입니다. 그룹 액세스 토큰을 만들 때마다 봇 사용자가 생성되어 그룹에 추가됩니다. 이러한 그룹용 봇 사용자는 프로젝트용 봇 사용자와 유사하지만 프로젝트 대신 그룹에 추가됩니다. 그룹용 봇 사용자:
- 라이선스 제한에 포함되지 않으므로 공제량에 포함되지 않습니다.
- 소유자의 최대 역할을 가질 수 있습니다. 자세한 정보는 그룹 액세스 토큰 만들기를 참조하세요.
- 사용자 이름은
group_{group_id}_bot_{random_string}
으로 설정됩니다. 예:group_123_bot_4ffca233d8298ea1
. - 이메일은
group_{group_id}_bot_{random_string}@noreply.{Gitlab.config.gitlab.host}
로 설정됩니다. 예:group_123_bot_4ffca233d8298ea1@noreply.example.com
.
기타 모든 속성은 프로젝트용 봇 사용자와 유사합니다.
토큰 사용 가능성
그룹 액세스 토큰은 유료 구독에서만 사용할 수 있으며 무료 체험 구독에서는 사용할 수 없습니다. 자세한 내용은 “GitLab 체험 구독 FAQ”의 “포함된 내용” 섹션을 참조하세요.