서비스 계정

Tier: 프리미엄, 얼티메이트 Offering: GitLab.com, Self-managed, GitLab Dedicated

서비스 계정은 개별 인간 사용자에 묶이지 않은 유형의 머신 사용자입니다.

서비스 계정: - 라이선스된 좌석을 사용하지 않지만 체험 버전에서 사용할 수 없습니다. - 요금을 지불해야 하는 사용자가 아닙니다. - 봇 사용자가 아닙니다. - 서비스 계정으로 그룹 멤버십에 등록됩니다. - UI를 통해 GitLab에 로그인할 수 없습니다.

서비스 계정은 사용자 멤버십 변경에 영향을 받지 않고 자격 증명을 설정하고 유지해야 하는 파이프라인이나 통합에서 사용해야 합니다.

개인 액세스 토큰을 사용하여 서비스 계정으로 인증할 수 있습니다. 개인 액세스 토큰을 가진 서비스 계정 사용자는 표준 사용자와 동일한 기능을 가지고 있습니다. 이는 레지스트리와 개인 액세스 토큰을 사용하여Git 작업을 하는 것을 포함합니다.

서비스 계정 생성

생성할 수 있는 서비스 계정 수는 라이선스에 허용된 서비스 계정 수에 제한됩니다: - GitLab Free에서는 서비스 계정을 사용할 수 없습니다. - GitLab 프리미엄에서는 지불된 좌석마다 한 개의 서비스 계정을 만들 수 있습니다. - GitLab 얼티메이트에서는 무제한 개수의 서비스 계정을 만들 수 있습니다.

계정 생성 방법은 GitLab.com 또는 Self-managed에 따라 다릅니다.

GitLab.com

선행 조건: - 최상위 그룹에서 소유자 역할을 가져야 합니다.

  1. 서비스 계정 생성.

    이 서비스 계정은 귀하의 최상위 그룹에만 연결됩니다.

  2. 서비스 계정 사용자용 개인 액세스 토큰 생성.

    해당 개인 액세스 토큰의 범위를 개인 액세스 토큰의 범위 설정을 통해 서비스 계정의 범위로 정의합니다.

    옵션: 만료일이 없는 개인 액세스 토큰 생성이 가능합니다.

    응답에는 개인 액세스 토큰 값이 포함됩니다.

  3. 이 서비스 계정을 그룹 또는 프로젝트 구성원으로 수동으로 추가합니다.
  4. 반환된 개인 액세스 토큰 값을 사용하여 서비스 계정 사용자로 인증합니다.

Self-managed GitLab

선행 조건: - 자체 관리형 인스턴스의 관리자이어야 합니다.

  1. 서비스 계정 생성.

    해당 서비스 계정은 특정 그룹이나 프로젝트가 아닌 전체 인스턴스와 연결됩니다.

  2. 서비스 계정 사용자용 개인 액세스 토큰 생성.

    해당 개인 액세스 토큰의 범위를 개인 액세스 토큰의 범위 설정을 통해 서비스 계정의 범위로 정의합니다.

    옵션: 만료일이 없는 개인 액세스 토큰 생성이 가능합니다.

    응답에는 개인 액세스 토큰 값이 포함됩니다.

  3. 이 서비스 계정을 그룹 또는 프로젝트 구성원으로 수동으로 추가합니다.
  4. 반환된 개인 액세스 토큰 값을 사용하여 서비스 계정 사용자로 인증합니다.

하위 그룹 또는 프로젝트에 서비스 계정 추가

기능적으로 서비스 계정은 외부 사용자와 동일하며 처음 생성 시 최소한의 액세스 권한을 갖습니다.

원하는 계정에 액세스할 수 있도록 서비스 계정을 각 프로젝트 또는 그룹에 수동으로 추가해야 합니다.

프로젝트 또는 그룹에 추가할 수 있는 서비스 계정 수에 제한이 없습니다.

서비스 계정: - 동일한 최상위 그룹의 여러 하위 그룹 및 프로젝트에서 서로 다른 역할을 가질 수 있습니다. - 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를 사용하세요.

서비스 계정 비활성화

서비스 계정을 직접 비활성화하거나 삭제할 수 없습니다. 대신 다음을 수행해야 합니다:

  1. 서비스 계정을 모든 하위 그룹 및 프로젝트의 멤버에서 제거합니다:

    curl --request DELETE --header "PRIVATE-TOKEN: <access_token_id>" "https://gitlab.example.com/api/v4/groups/<group_id>/members/<service_account_id>"
    

    자세한 내용은 API 문서를 참조하여 그룹 또는 프로젝트에서 멤버 제거를 참조하세요.

  2. UI 또는 API를 사용하여 개인 액세스 토큰을 취소합니다.

관련 주제