서비스 계정
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
서비스 계정은 개별 사람보다는 비인간 엔티티를 나타내는 사용자 계정입니다. 서비스 계정은 개인 액세스 토큰으로 인증합니다. 서비스 계정 API를 통해 서비스 계정을 관리할 수도 있습니다. 만들 수 있는 서비스 계정 수는 구독 및 제품에 따라 다릅니다:
히스토리
- Free 티어 서비스 계정:
- Introduced in GitLab 18.10
- Generally available in GitLab 18.11. Feature flag removed.
- Project service accounts introduced in GitLab 18.10
- Subgroup service accounts introduced in GitLab 18.10
- 서브그룹 및 프로젝트 서비스 계정 generally available in GitLab 18.11. Feature flags
allow_subgroups_to_create_service_accountsandallow_projects_to_create_service_accountsremoved.
서비스 계정은 개별 사람보다는 비인간 엔티티를 나타내는 사용자 계정입니다. 자동화된 작업을 수행하거나 데이터에 액세스하거나 예약된 프로세스를 실행하는 데 서비스 계정을 사용합니다. 서비스 계정은 팀 구성원의 변경에 관계없이 자격 증명이 안정적으로 유지되어야 하는 파이프라인 또는 타사 통합에서 일반적으로 사용됩니다.
서비스 계정은 개인 액세스 토큰으로 인증합니다. 패키지 및 컨테이너 레지스트리와 상호 작용하고, Git 작업을 수행하고, API에 액세스할 수 있습니다.
서비스 계정의 특성:
- 시트를 사용하지 않습니다.
- 청구 대상 사용자 또는 내부 사용자가 아닙니다.
- 항상 외부 사용자로 표시됩니다.
- UI를 통해 GitLab에 로그인할 수 없습니다.
- LDAP과 같은 서비스를 통해 관리할 수 없습니다.
- 서브그룹 또는 프로젝트에서 프로비저닝할 때 최상위 그룹 또는 다른 서비스 계정을 만들 수 없습니다.
- 일반 사용자가 아닌 서비스 계정으로 그룹 및 프로젝트 구성원 목록에 표시됩니다.
- 사용자 정의 이메일 주소를 추가하지 않는 한 알림 이메일을 받지 않습니다.
- GitLab의 평가판에서 사용 가능합니다. GitLab.com에서 최상위 그룹의 소유자는 먼저 신원을 확인해야 합니다.
서비스 계정 API를 통해 서비스 계정을 관리할 수도 있습니다. 서비스 계정의 SSH 키를 관리하려면 사용자 SSH 및 GPG 키 API를 사용합니다. GitLab UI를 통해 SSH 키를 관리할 수는 없습니다.
만들 수 있는 서비스 계정 수는 구독 및 제품에 따라 다릅니다:
- GitLab Premium 및 Ultimate에서는 모든 제품에 대해 무제한으로 서비스 계정을 만들 수 있습니다.
- GitLab Free에서는 제품에 따라 제한이 다릅니다:
- GitLab.com의 경우 각 최상위 그룹당 최대 100개의 서비스 계정을 만들 수 있습니다. 여기에는 서브그룹 또는 프로젝트에서 만든 서비스 계정이 포함됩니다.
- GitLab Self-Managed Enterprise Edition(EE)의 경우 인스턴스 전체에서 최대 100개의 서비스 계정을 만들 수 있습니다.
- GitLab Self-Managed Community Edition(CE)의 경우 서비스 계정을 만들 수 없습니다.
서비스 계정 유형#
서비스 계정에는 세 가지 유형이 있으며 각각 다른 범위와 사전 요구 사항이 있습니다:
인스턴스 서비스 계정은 관리자 영역을 통해 만들어지며 인스턴스의 모든 그룹이나 프로젝트에 초대할 수 있습니다.
사전 요구 사항:
- 인스턴스에 대한 관리자 액세스.
그룹 서비스 계정은 특정 그룹에 의해 만들어지며 만들어진 그룹 또는 하위 서브그룹이나 프로젝트에 초대할 수 있습니다. 최상위 그룹 또는 서비스 계정을 만들 수 없습니다.
사전 요구 사항:
- GitLab.com에서는 그룹에 대한 소유자 역할이 있어야 합니다.
- GitLab Self-Managed 또는 GitLab Dedicated에서는 다음 중 하나여야 합니다:
- 인스턴스 관리자.
- 그룹에서 소유자 역할이 있고 서비스 계정 생성이 허용된 경우.
프로젝트 서비스 계정은 특정 프로젝트에 의해 만들어지며 해당 프로젝트에서만 사용 가능합니다. 최상위 그룹 또는 서비스 계정을 만들 수 없습니다.
사전 요구 사항:
- GitLab.com에서는 프로젝트에 대한 유지 관리자 또는 소유자 역할이 있어야 합니다.
- GitLab Self-Managed 또는 GitLab Dedicated에서는 다음 중 하나여야 합니다:
- 인스턴스 관리자.
- 프로젝트에서 유지 관리자 또는 소유자 역할.
서비스 계정 보기 및 관리#
히스토리
- Introduced for GitLab.com in GitLab 17.11
서비스 계정 페이지는 그룹, 프로젝트 또는 인스턴스의 서비스 계정에 대한 정보를 표시합니다. 각 그룹, 프로젝트 및 GitLab Self-Managed 인스턴스에는 별도의 서비스 계정 페이지가 있습니다. 이 페이지에서 다음을 수행할 수 있습니다:
- 그룹 또는 인스턴스의 모든 서비스 계정 보기.
- 서비스 계정 삭제.
- 서비스 계정의 이름 또는 사용자 이름 편집.
- 서비스 계정의 개인 액세스 토큰 관리.
전체 인스턴스의 서비스 계정을 보려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 설정 > 서비스 계정을 선택합니다.
그룹의 서비스 계정을 보려면:
- 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 왼쪽 사이드바에서 설정 > 서비스 계정을 선택합니다.
프로젝트의 서비스 계정을 보려면:
- 상단 바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 설정 > 서비스 계정을 선택합니다.
서비스 계정 만들기#
히스토리
- Introduced for GitLab.com in GitLab 16.3
- Top-level group owners can create Service accounts introduced in GitLab 17.5 with a feature flag named
allow_top_level_group_owners_to_create_service_accountsfor GitLab Self-Managed. Disabled by default. - Top-level group owners can create Service accounts generally available in GitLab 17.6. Feature flag
allow_top_level_group_owners_to_create_service_accountsremoved.
GitLab.com에서는 최상위 그룹 소유자만 서비스 계정을 만들 수 있습니다.
기본적으로 GitLab Self-Managed 및 GitLab Dedicated에서는 관리자만 두 유형의 서비스 계정을 만들 수 있습니다. 그러나 최상위 그룹 소유자가 그룹 서비스 계정을 만들 수 있도록 인스턴스를 구성할 수 있습니다.
만들 수 있는 서비스 계정 수는 구독 및 제품에 따라 다릅니다:
- GitLab Premium 및 Ultimate에서는 모든 제품에 대해 무제한으로 서비스 계정을 만들 수 있습니다.
- GitLab Free에서는 제품에 따라 제한이 다릅니다:
- GitLab.com의 경우 각 최상위 그룹당 최대 100개의 서비스 계정을 만들 수 있습니다. 여기에는 서브그룹 또는 프로젝트에서 만든 서비스 계정이 포함됩니다.
- GitLab Self-Managed Enterprise Edition(EE)의 경우 인스턴스 전체에서 최대 100개의 서비스 계정을 만들 수 있습니다.
- GitLab Self-Managed Community Edition(CE)의 경우 서비스 계정을 만들 수 없습니다.
서비스 계정을 만들려면:
- 서비스 계정 페이지로 이동합니다.
- 서비스 계정 추가를 선택합니다.
- 서비스 계정의 이름을 입력합니다. 이름을 기반으로 사용자 이름이 자동으로 생성됩니다. 필요한 경우 사용자 이름을 수정할 수 있습니다.
- 서비스 계정 만들기를 선택합니다.
서비스 계정 편집#
히스토리
- Added username limits for service accounts with composite identities in GitLab 18.9.
서비스 계정의 이름 또는 사용자 이름을 편집할 수 있습니다.
합성 ID와 연결된 서비스 계정의 사용자 이름은 업데이트할 수 없습니다.
서비스 계정을 편집하려면:
- 서비스 계정 페이지로 이동합니다.
- 서비스 계정을 식별합니다.
- 세로 줄임표(⋮) > 편집을 선택합니다.
- 서비스 계정의 이름 또는 사용자 이름을 편집합니다.
- 변경 사항 저장을 선택합니다.
그룹 또는 프로젝트에 서비스 계정 추가#
서비스 계정은 그룹 또는 프로젝트의 구성원으로 추가될 때까지 제한된 액세스 권한을 가집니다. 그룹 또는 프로젝트에 원하는 수의 서비스 계정을 추가할 수 있으며 각 서비스 계정은 각 그룹, 서브그룹 또는 프로젝트에서 다른 역할을 가질 수 있습니다.
서비스 계정 액세스는 서비스 계정 유형에 따라 다릅니다:
- 인스턴스 서비스 계정: 인스턴스의 모든 그룹 또는 프로젝트에 초대할 수 있습니다.
- 그룹 서비스 계정: 만들어진 그룹 또는 하위 서브그룹이나 프로젝트에 초대할 수 있습니다.
- 프로젝트 서비스 계정: 만들어진 프로젝트에만 초대할 수 있습니다.
그룹이 다른 그룹과 공유되면 서비스 계정을 포함한 해당 그룹의 모든 구성원이 공유 그룹에 대한 액세스 권한을 얻습니다.
다음을 사용하여 그룹 및 프로젝트에 서비스 계정을 할당할 수 있습니다:
- GitLab UI:
- API:
전역 SAML 그룹 구성원 잠금 또는 전역 LDAP 그룹 구성원 잠금 설정이 활성화된 경우 API를 사용하여 서비스 계정 구성원을 제어해야 합니다.
서비스 계정으로 프로젝트 포크#
서비스 계정은 프로젝트 포크 API를 통해 프로젝트를 포크할 수 있지만 개인 네임스페이스로 포크할 수는 없습니다. 서비스 계정으로 포크할 때는 대상 그룹 네임스페이스를 지정해야 합니다.
사전 요구 사항:
- 서비스 계정이 대상 그룹의 구성원이며 개발자 역할을 가집니다.
- 서비스 계정의 개인 액세스 토큰에
api범위가 설정되어 있습니다.
서비스 계정을 사용하여 프로젝트를 포크하려면:
-
포크가 만들어질 대상 그룹을 식별합니다.
-
서비스 계정이 적절한 권한이 있는 해당 그룹의 구성원인지 확인합니다.
-
namespace_id또는namespace_path를 사용하여 프로젝트 포크 API를 사용합니다:curl --request POST --header "PRIVATE-TOKEN: <service_account_token>" \ --data "namespace_path=target-group" \ "https://gitlab.example.com/api/v4/projects/<project_id>/fork"
서비스 계정 삭제#
서비스 계정을 삭제하면 해당 계정이 수행한 기여가 유지되고 소유권이 고스트 사용자에게 이전됩니다. 이러한 기여에는 머지 리퀘스트, 이슈, 프로젝트, 그룹과 같은 활동이 포함될 수 있습니다.
서비스 계정을 삭제하려면:
- 서비스 계정 페이지로 이동합니다.
- 서비스 계정을 식별합니다.
- 세로 줄임표(⋮) > 계정 삭제를 선택합니다.
- 서비스 계정의 이름을 입력합니다.
- 사용자 삭제를 선택합니다.
서비스 계정과 해당 계정이 수행한 기여를 삭제할 수도 있습니다. 이러한 기여에는 머지 리퀘스트, 이슈, 그룹, 프로젝트와 같은 활동이 포함될 수 있습니다.
- 서비스 계정 페이지로 이동합니다.
- 서비스 계정을 식별합니다.
- 세로 줄임표(⋮) > 계정 및 기여 삭제를 선택합니다.
- 서비스 계정의 이름을 입력합니다.
- 사용자 및 기여 삭제를 선택합니다.
API를 통해 서비스 계정을 삭제할 수도 있습니다.
- 인스턴스 서비스 계정의 경우 사용자 API를 사용합니다.
- 그룹 서비스 계정의 경우 서비스 계정 API를 사용합니다.
서비스 계정의 개인 액세스 토큰 보기 및 관리#
개인 액세스 토큰 페이지는 최상위 그룹 또는 인스턴스의 서비스 계정과 관련된 개인 액세스 토큰에 대한 정보를 표시합니다. 이 페이지에서 다음을 수행할 수 있습니다:
- 개인 액세스 토큰 필터링, 정렬 및 세부 정보 보기.
- 개인 액세스 토큰 교체.
- 개인 액세스 토큰 취소.
API를 통해 서비스 계정의 개인 액세스 토큰을 관리할 수도 있습니다.
- 인스턴스 서비스 계정의 경우 개인 액세스 토큰 API를 사용합니다.
- 그룹 서비스 계정의 경우 서비스 계정 API를 사용합니다.
서비스 계정의 개인 액세스 토큰 페이지를 보려면:
- 서비스 계정 페이지로 이동합니다.
- 서비스 계정을 식별합니다.
- 세로 줄임표(⋮) > 액세스 토큰 관리를 선택합니다.
서비스 계정에 대한 개인 액세스 토큰 만들기#
서비스 계정을 사용하려면 요청을 인증하기 위한 개인 액세스 토큰을 만들어야 합니다.
서비스 계정에 대한 개인 액세스 토큰을 만들려면:
- 서비스 계정 페이지로 이동합니다.
- 서비스 계정을 식별합니다.
- 세로 줄임표(⋮) > 액세스 토큰 관리를 선택합니다.
- 새 토큰 추가를 선택합니다.
- 토큰 이름에 토큰의 이름을 입력합니다.
- 선택 사항. 토큰 설명에 토큰의 설명을 입력합니다.
- 만료 날짜에 토큰의 만료 날짜를 입력합니다.
- 토큰은 해당 날짜 UTC 자정에 만료됩니다. 만료 날짜가 2024-01-01인 토큰은 2024-01-01 00:00:00 UTC에 만료됩니다.
- 만료 날짜를 입력하지 않으면 만료 날짜는 자동으로 현재 날짜로부터 365일 후로 설정됩니다.
- 기본적으로 이 날짜는 현재 날짜로부터 최대 365일 후까지 가능합니다. GitLab 17.6 이상에서는 이 제한을 400일로 연장할 수 있습니다.
- 원하는 범위를 선택합니다.
- 개인 액세스 토큰 만들기를 선택합니다.
개인 액세스 토큰 교체#
현재 토큰을 무효화하고 새 값을 생성하기 위해 개인 액세스 토큰을 교체할 수 있습니다.
이 작업은 취소할 수 없습니다. 교체된 토큰에 의존하는 서비스가 작동을 멈춥니다.
서비스 계정에 대한 개인 액세스 토큰을 교체하려면:
- 서비스 계정 페이지로 이동합니다.
- 서비스 계정을 식별합니다.
- 세로 줄임표(⋮) > 액세스 토큰 관리를 선택합니다.
- 활성 토큰 옆에서 세로 줄임표(⋮)를 선택합니다.
- 교체를 선택합니다.
- 확인 대화 상자에서 교체를 선택합니다.
개인 액세스 토큰 취소#
현재 토큰을 무효화하기 위해 개인 액세스 토큰을 취소할 수 있습니다.
이 작업은 취소할 수 없습니다. 취소된 토큰에 의존하는 서비스가 작동을 멈춥니다.
서비스 계정에 대한 개인 액세스 토큰을 취소하려면:
- 서비스 계정 페이지로 이동합니다.
- 서비스 계정을 식별합니다.
- 세로 줄임표(⋮) > 액세스 토큰 관리를 선택합니다.
- 활성 토큰 옆에서 세로 줄임표(⋮)를 선택합니다.
- 취소를 선택합니다.
- 확인 대화 상자에서 취소를 선택합니다.
속도 제한#
서비스 계정에는 속도 제한이 적용됩니다:
- GitLab.com에서는 GitLab.com 특정 속도 제한이 적용됩니다.
- GitLab Self-Managed 및 GitLab Dedicated에서는 다음 속도 제한이 적용됩니다:
