서비스 계정
서비스 계정은 개별 인간 사용자에 묶이지 않은 유형의 머신 사용자입니다.
서비스 계정: - 라이선스된 좌석을 사용하지 않지만 체험 버전에서 사용할 수 없습니다. - 요금을 지불해야 하는 사용자가 아닙니다. - 봇 사용자가 아닙니다. - 서비스 계정으로 그룹 멤버십에 등록됩니다. - UI를 통해 GitLab에 로그인할 수 없습니다.
서비스 계정은 사용자 멤버십 변경에 영향을 받지 않고 자격 증명을 설정하고 유지해야 하는 파이프라인이나 통합에서 사용해야 합니다.
개인 액세스 토큰을 사용하여 서비스 계정으로 인증할 수 있습니다. 개인 액세스 토큰을 가진 서비스 계정 사용자는 표준 사용자와 동일한 기능을 가지고 있습니다. 이는 레지스트리와 개인 액세스 토큰을 사용하여Git 작업을 하는 것을 포함합니다.
서비스 계정 생성
생성할 수 있는 서비스 계정 수는 라이선스에 허용된 서비스 계정 수에 제한됩니다: - GitLab Free에서는 서비스 계정을 사용할 수 없습니다. - GitLab 프리미엄에서는 지불된 좌석마다 한 개의 서비스 계정을 만들 수 있습니다. - GitLab 얼티메이트에서는 무제한 개수의 서비스 계정을 만들 수 있습니다.
계정 생성 방법은 GitLab.com 또는 Self-managed에 따라 다릅니다.
GitLab.com
선행 조건: - 최상위 그룹에서 소유자 역할을 가져야 합니다.
-
이 서비스 계정은 귀하의 최상위 그룹에만 연결됩니다.
-
해당 개인 액세스 토큰의 범위를 개인 액세스 토큰의 범위 설정을 통해 서비스 계정의 범위로 정의합니다.
옵션: 만료일이 없는 개인 액세스 토큰 생성이 가능합니다.
응답에는 개인 액세스 토큰 값이 포함됩니다.
- 이 서비스 계정을 그룹 또는 프로젝트 구성원으로 수동으로 추가합니다.
- 반환된 개인 액세스 토큰 값을 사용하여 서비스 계정 사용자로 인증합니다.
Self-managed GitLab
선행 조건: - 자체 관리형 인스턴스의 관리자이어야 합니다.
-
해당 서비스 계정은 특정 그룹이나 프로젝트가 아닌 전체 인스턴스와 연결됩니다.
-
해당 개인 액세스 토큰의 범위를 개인 액세스 토큰의 범위 설정을 통해 서비스 계정의 범위로 정의합니다.
옵션: 만료일이 없는 개인 액세스 토큰 생성이 가능합니다.
응답에는 개인 액세스 토큰 값이 포함됩니다.
- 이 서비스 계정을 그룹 또는 프로젝트 구성원으로 수동으로 추가합니다.
- 반환된 개인 액세스 토큰 값을 사용하여 서비스 계정 사용자로 인증합니다.
하위 그룹 또는 프로젝트에 서비스 계정 추가
기능적으로 서비스 계정은 외부 사용자와 동일하며 처음 생성 시 최소한의 액세스 권한을 갖습니다.
원하는 계정에 액세스할 수 있도록 서비스 계정을 각 프로젝트 또는 그룹에 수동으로 추가해야 합니다.
프로젝트 또는 그룹에 추가할 수 있는 서비스 계정 수에 제한이 없습니다.
서비스 계정: - 동일한 최상위 그룹의 여러 하위 그룹 및 프로젝트에서 서로 다른 역할을 가질 수 있습니다. - GitLab.com에서는 하나의 최상위 그룹에만 속합니다.
하위 그룹 또는 프로젝트에 추가
서비스 계정을 다음을 통해 하위 그룹 또는 프로젝트에 추가할 수 있습니다: - 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 문서를 참조하세요.
개인 액세스 토큰 회전
필수 조건:
- GitLab.com의 경우, 최상위 그룹에서 소유자 역할이 있어야 합니다.
- 자체 관리형 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 문서를 참조하여 그룹 또는 프로젝트에서 멤버 제거를 참조하세요.