서비스 계정
서비스 계정은 개별 인간 사용자와 연결되지 않은 유형의 머신 사용자입니다.
서비스 계정: - 라이선스 받은 시트를 사용하지 않지만, GitLab.com의 체험판 버전에서는 사용할 수 없습니다. GitLab.com의 체험판 버전에서는 사용할 수 있습니다. - 과금되는 사용자가 아닙니다. - 봇 사용자가 아닙니다. - 그룹 멤버십에 서비스 계정으로 나열됩니다. - UI를 통해 GitLab에 서명할 수 없습니다.
서비스 계정은 인간 사용자 멤버십의 변경에 영향을 받지 않고 자격 증명을 설정하고 유지해아하는 파이프라인이나 통합에서 사용해야 합니다.
개인 액세스 토큰을 사용하여 서비스 계정으로 인증할 수 있습니다. 개인 액세스 토큰을 갖는 서비스 계정 사용자는 표준 사용자와 동일한 능력을 갖습니다. 이는 레지스트리와 개인 액세스 토큰을 사용한 Git 작업을 포함합니다.
서비스 계정에 요율 한도가 적용됩니다: - GitLab.com에는 GitLab.com 별도의 요율 제한이 있습니다. - Self-managed GitLab과 GitLab Dedicated에는 다음이 모두 있습니다: - 구성 가능한 요율 제한. - 구성할 수 없는 요율 제한.
서비스 계정 만들기
라이선스에 허용된 서비스 계정 수에 따라 만들 수 있는 서비스 계정 수가 제한됩니다: - GitLab Free에서는 서비스 계정을 사용할 수 없습니다. - GitLab Premium에서는 지불한 시트 당 하나의 서비스 계정을 만들 수 있습니다. - GitLab Ultimate에서는 무제한의 서비스 계정을 만들 수 있습니다.
계정을 만드는 방법은 다음과 같은 조건에 따라 다릅니다: - 최상위 그룹 소유자. - GitLab Self-managed 관리자.
최상위 그룹 소유자
- GitLab.com에서 GitLab 16.3에 도입됨
- GitLab Self-Managed의 경우, 기능 플래그(
allow_top_level_group_owners_to_create_service_accounts
이름으로되어 있음)를 사용하여 17.5 GitLab에GirLab 17.5에서 소개되었습니다. 기본으로 비활성화되어 있음.
기능 플래그:
GitLab Self-Managed에서 기본적으로 이 기능을 사용할 수 없습니다. 이를 사용하려면 관리자가allow_top_level_group_owners_to_create_service_accounts
이름으로 된 기능 플래그를 활성화할 수 있습니다. GitLab.com에서는 이 기능을 사용할 수 있습니다.
사전 요구 사항: - 최상위 그룹에서 소유자 역할이 있어야 합니다. - GitLab Self-managed의 경우, 최상위 그룹 소유자는 서비스 계정 생성을 허용해야 합니다.
- 서비스 계정 만들기. 이 서비스 계정은 당신의 최상위 그룹에만 연결됩니다.
- 모든 서비스 계정 사용자 나열.
- 개인 액세스 토큰 만들기 서비스 계정 사용자의 스코프를 개인 액세스 토큰의 스코프 설정으로 정의합니다. 선택 사항. 만료일이 설정되지 않은 만료일이 없는 개인 액세스 토큰을 만들 수 있습니다. 응답에는 개인 액세스 토큰 값이 포함됩니다.
- 그룹이나 프로젝트에 서비스 계정을 수동으로 추가하여 해당 서비스 계정을 그룹 또는 프로젝트의 구성원으로 만듭니다.
- 반환된 개인 액세스 토큰 값을 사용하여 서비스 계정 사용자로 인증합니다.
GitLab Self-managed의 관리자
사전 요구 사항: - Self-managed 인스턴스의 관리자여야 합니다.
- 서비스 계정 만들기. 이 서비스 계정은 특정 그룹이나 프로젝트가 아닌 전체 인스턴스에 연관되어 있습니다.
- 모든 서비스 계정 사용자 나열.
- 개인 액세스 토큰 만들기 서비스 계정 사용자의 스코프를 개인 액세스 토큰의 스코프 설정으로 정의합니다. 선택 사항. 만료일이 설정되지 않은 만료일이 없는 개인 액세스 토큰을 만들 수 있습니다. 응답에는 개인 액세스 토큰 값이 포함됩니다.
- 그룹 또는 프로젝트에 서비스 계정을 수동으로 추가하여 해당 서비스 계정을 그룹 또는 프로젝트의 구성원으로 만듭니다.
- 반환된 개인 액세스 토큰 값을 사용하여 서비스 계정 사용자로 인증합니다.
하위 그룹이나 프로젝트에 서비스 계정 추가
기능 측면에서 서비스 계정은 외부 사용자와 동일하며 처음에는 최소한의 액세스 권한을 갖고 있습니다.
계정이 액세스하게 하려는 프로젝트 또는 그룹마다 서비스 계정을 수동으로 추가해야 합니다.
프로젝트나 그룹에 추가할 수 있는 서비스 계정에는 제한이 없습니다.
서비스 계정: - 동일한 최상위 그룹의 여러 하위 그룹과 프로젝트에서 서로 다른 역할을 갖을 수 있습니다. - 최상위 그룹 소유자가 만들었을 경우 오직 하나의 최상위 그룹에 속합니다.
하위 그룹이나 프로젝트에 추가
서비스 계정을 하위 그룹 또는 프로젝트에 추가할 수 있습니다. 추가 방법은 다음과 같습니다: - API. - 그룹 구성원 UI. - 프로젝트 구성원 UI.
하위 그룹 또는 프로젝트에서 서비스 계정 역할 변경
UI 또는 API를 통해 하위 그룹이나 프로젝트에서 서비스 계정 역할을 변경할 수 있습니다.
UI를 사용하려면 하위 그룹이나 프로젝트의 멤버십 목록으로 이동하여 서비스 계정의 역할을 변경합니다.
API를 사용하려면 다음 엔드포인트를 호출하세요:
curl --request POST --header "PRIVATE-TOKEN: <PRIVATE-TOKEN>" \ --data "user_id=<service_account_user_id>&access_level=30" "https://gitlab.example.com/api/v4/projects/<project_id>/members"
속성에 대한 자세한 정보는 그룹 또는 프로젝트의 멤버 수정에 관한 API 문서를 참조하세요.
개인 액세스 토큰 회전
전제 조건:
- 최상위 그룹 소유자가 만든 서비스 계정의 경우 최상위 그룹에서 소유자 역할이 있거나 관리자여야 합니다.
- 관리자가 만든 서비스 계정의 경우 자체 관리 인스턴스에서 관리자여야 합니다.
서비스 계정 사용자의 개인 액세스 토큰을 회전하려면 그룹 API를 사용하세요.
개인 액세스 토큰 취소
전제 조건:
- 서비스 계정 사용자로서 로그인해야 합니다.
개인 액세스 토큰을 취소하려면 개인 액세스 토큰 API를 사용하세요. 다음 중 하나를 사용할 수 있습니다:
-
개인 액세스 토큰 ID를 사용합니다. 취소 작업을 수행하는 토큰은
admin_mode
스코프를 가져야 합니다. - 요청 헤더를 사용합니다. 요청을 수행하는 데 사용된 토큰은 취소됩니다.
서비스 계정 삭제
최상위 그룹 소유자
전제 조건:
- 최상위 그룹에서 소유자 역할이어야 합니다.
서비스 계정을 삭제하려면 서비스 계정 사용자 삭제를 위해 서비스 계정 API를 사용하세요.
GitLab 자체 관리자
전제 조건:
- 서비스 계정이 연결된 인스턴스의 관리자여야 합니다.
서비스 계정을 삭제하려면 사용자 API를 사용하여 서비스 계정 사용자 삭제를 사용하세요.
서비스 계정 비활성화
전제 조건:
- 서비스 계정이 연결된 그룹의 소유자 역할을 가져야 합니다.
인스턴스나 그룹의 관리자가 아닌 경우 해당 서비스 계정을 직접 삭제할 수 없습니다. 대신 다음을 수행하세요:
-
모든 하위 그룹과 프로젝트에서 서비스 계정을 멤버에서 제거합니다:
curl --request DELETE --header "PRIVATE-TOKEN: <access_token_id>" "https://gitlab.example.com/api/v4/groups/<group_id>/members/<service_account_id>"
자세한 내용은 그룹이나 프로젝트의 멤버 제거에 관한 API 문서를 참조하세요.