CI/CD 잡 토큰의 세밀한 권한

CI/CD 잡 토큰의 세밀한 권한 (Fine-grained permissions)

CI/CD 잡 토큰이 아무 리소스나 접근할 수 있게 두는 대신, 제한된 REST API 엔드포인트 집합에만 명시적으로 접근을 허용하고 싶을 때 세밀한 권한(fine-grained permissions)을 써요. 지정된 프로젝트의 CI/CD 잡 토큰에 이런 세분화된 권한을 적용합니다. 잡 토큰의 권한 범위를 최소화해서 보안을 강화할 수 있어요.

출처: 문서

본문

  • GitLab 17.10에서 실험으로 도입되었습니다.
  • GitLab 18.0에서 실험에서 베타로 변경되었습니다.
  • GitLab 18.3에서 일반 공개되었습니다.

세밀한 권한을 사용해 제한된 REST API 엔드포인트 집합에 대한 접근을 명시적으로 허용할 수 있습니다. 이 권한은 지정된 프로젝트의 CI/CD 잡 토큰에 적용돼요.

이슈 519575에 의견을 남겨 주세요.

잡 토큰 허용 목록에 세밀한 권한 추가

전제 조건:

  • 프로젝트에 대한 Maintainer 또는 Owner 역할이 있어야 합니다.
  • 프로젝트에서 세밀한 권한 사용을 활성화해야 합니다.

잡 토큰 허용 목록의 그룹과 프로젝트에 세밀한 권한을 추가할 수 있습니다. 이렇게 하면 잡 토큰으로 특정 프로젝트 리소스에 접근할 수 있고, 이 그룹과 프로젝트에서 사용할 수 있는 리소스를 더 정확하게 제어할 수 있어요.

잡 토큰 허용 목록의 그룹이나 프로젝트에 세밀한 권한을 추가하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Settings > CI/CD를 선택하세요.
  3. Job token permissions을 펼칩니다.
  4. CI/CD job token allowlist 섹션에서 Add를 선택합니다.
  5. 드롭다운 목록에서 Group or project를 선택하세요.
  6. 기존 그룹이나 프로젝트의 경로를 입력합니다.
  7. Fine-grained permissions을 선택하세요.
  8. 사용 가능한 API 엔드포인트에 권한을 부여합니다.
  9. Add를 선택하세요.

GitLab은 지정된 권한으로 그룹이나 프로젝트를 잡 토큰 허용 목록에 추가합니다. 이제 그 그룹이나 프로젝트는 현재 프로젝트의 허용된 리소스에 접근할 수 있어요.

사용 가능한 API 엔드포인트

CI/CD 잡 토큰은 다음 REST API 엔드포인트에 접근할 수 있습니다.

Badges 엔드포인트

권한 API 엔드포인트 권한 이름 범위
프로젝트의 모든 배지 목록 GET /projects/:id/badges READ_BADGES 읽기
프로젝트의 배지 조회 GET /projects/:id/badges/:badge_id READ_BADGES 읽기
프로젝트의 배지 생성 POST /projects/:id/badges ADMIN_BADGES 읽기 및 쓰기
프로젝트의 배지 삭제 DELETE /projects/:id/badges/:badge_id ADMIN_BADGES 읽기 및 쓰기
프로젝트의 배지 미리보기 조회 GET /projects/:id/badges/render ADMIN_BADGES 읽기 및 쓰기
프로젝트의 배지 업데이트 PUT /projects/:id/badges/:badge_id ADMIN_BADGES 읽기 및 쓰기

Deployments 엔드포인트

권한 API 엔드포인트 권한 이름 범위
배포와 연결된 모든 머지 리퀘스트 목록 GET /projects/:id/deployments/:deployment_id/merge_requests READ_DEPLOYMENTS 읽기
모든 프로젝트 배포 목록 GET /projects/:id/deployments READ_DEPLOYMENTS 읽기
배포 조회 GET /projects/:id/deployments/:deployment_id READ_DEPLOYMENTS 읽기
배포 승인 또는 거부 POST /projects/:id/deployments/:deployment_id/approval ADMIN_DEPLOYMENTS 읽기 및 쓰기
배포 생성 POST /projects/:id/deployments ADMIN_DEPLOYMENTS, ADMIN_ENVIRONMENTS 읽기 및 쓰기
배포 삭제 DELETE /projects/:id/deployments/:deployment_id ADMIN_DEPLOYMENTS 읽기 및 쓰기
배포 업데이트 PUT /projects/:id/deployments/:deployment_id ADMIN_DEPLOYMENTS 읽기 및 쓰기

Environments 엔드포인트

권한 API 엔드포인트 권한 이름 범위
모든 환경 목록 GET /projects/:id/environments READ_ENVIRONMENTS 읽기
환경 조회 GET /projects/:id/environments/:environment_id READ_ENVIRONMENTS 읽기
환경 생성 POST /projects/:id/environments ADMIN_ENVIRONMENTS 읽기 및 쓰기
환경 삭제 DELETE /projects/:id/environments/:environment_id ADMIN_ENVIRONMENTS 읽기 및 쓰기
중지된 여러 리뷰 앱 삭제 예약 DELETE /projects/:id/environments/review_apps ADMIN_ENVIRONMENTS 읽기 및 쓰기
환경 중지 POST /projects/:id/environments/:environment_id/stop ADMIN_ENVIRONMENTS 읽기 및 쓰기
오래된 환경 중지 POST /projects/:id/environments/stop_stale ADMIN_ENVIRONMENTS 읽기 및 쓰기
기존 환경 업데이트 PUT /projects/:id/environments/:environment_id ADMIN_ENVIRONMENTS 읽기 및 쓰기

Jobs 엔드포인트

권한 API 엔드포인트 권한 이름 범위
아티팩트 아카이브에서 특정 파일 다운로드 GET /projects/:id/jobs/:job_id/artifacts/*artifact_path READ_JOBS 읽기
ref에서 아티팩트 아카이브의 특정 파일 다운로드 GET /projects/:id/jobs/artifacts/:ref_name/raw/*artifact_path READ_JOBS 읽기
잡에서 아티팩트 다운로드 GET /projects/:id/jobs/:job_id/artifacts READ_JOBS 읽기
잡 아티팩트 다운로드 GET /jobs/:id/artifacts READ_JOBS 읽기
아티팩트 아카이브의 모든 파일 목록 GET /projects/:id/jobs/:job_id/artifacts/tree READ_JOBS 읽기
파이프라인별 모든 잡 목록 GET /projects/:id/pipelines/:pipeline_id/jobs READ_JOBS 읽기
프로젝트의 모든 잡 목록 GET /projects/:id/jobs READ_JOBS 읽기
잡 아티팩트 조회 GET /projects/:id/jobs/artifacts/:ref_name/download READ_JOBS 읽기

Merge requests 엔드포인트

권한 API 엔드포인트 권한 이름 범위
모든 머지 리퀘스트 노트 목록 GET /projects/:id/merge_requests/:noteable_id/notes READ_MERGE_REQUESTS 읽기
모든 프로젝트 머지 리퀘스트 목록 GET /projects/:id/merge_requests READ_MERGE_REQUESTS 읽기
머지 리퀘스트 조회 GET /projects/:id/merge_requests/:merge_request_iid READ_MERGE_REQUESTS 읽기
머지 리퀘스트 노트 조회 GET /projects/:id/merge_requests/:noteable_id/notes/:note_id READ_MERGE_REQUESTS 읽기

Packages 엔드포인트

권한 API 엔드포인트 권한 이름 범위
패키지 아카이브를 다운로드하는 Composer 패키지 엔드포인트 GET /projects/:id/packages/composer/archives/*package_name READ_PACKAGES 읽기
전달(프록시)된 PyPI 패키지 파일 다운로드 GET /projects/:id/packages/pypi/forward/:package_name/*upstream_path READ_PACKAGES 읽기
패키지 파일 다운로드 GET /projects/:id/packages/:package_id/package_files/:package_file_id/download READ_PACKAGES 읽기
모듈 파일 다운로드 GET /projects/:id/packages/go/*module_name/@v/:module_version.mod READ_PACKAGES 읽기
모듈 소스 다운로드 GET /projects/:id/packages/go/*module_name/@v/:module_version.zip READ_PACKAGES 읽기
패키지 파일 다운로드 GET /projects/:id/packages/generic/:package_name/*package_version/(*path/):file_name READ_PACKAGES 읽기
NPM tarball 다운로드 GET /projects/:id/packages/npm/*package_name/-/*file_name READ_PACKAGES 읽기
그룹용 maven 패키지 파일 다운로드 GET /groups/:id/-/packages/maven/*path/:file_name READ_PACKAGES 읽기
프로젝트용 maven 패키지 파일 다운로드 GET /projects/:id/packages/maven/*path/:file_name READ_PACKAGES 읽기
인스턴스용 maven 패키지 파일 다운로드 GET /packages/maven/*path/:file_name READ_PACKAGES 읽기
주어진 NPM 패키지의 모든 태그 조회 GET /groups/:id/-/packages/npm/-/package/*package_name/dist-tags READ_PACKAGES 읽기
주어진 NPM 패키지의 모든 태그 조회 GET /packages/npm/-/package/*package_name/dist-tags READ_PACKAGES 읽기
주어진 NPM 패키지의 모든 태그 조회 GET /projects/:id/packages/npm/-/package/*package_name/dist-tags READ_PACKAGES 읽기
목록 GET /projects/:id/packages/go/*module_name/@v/list READ_PACKAGES 읽기
모든 패키지 다운로드 URL 목록 GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls READ_PACKAGES 읽기
모든 패키지 다운로드 URL 목록 GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls READ_PACKAGES 읽기
모든 패키지 파일 목록 GET /projects/:id/packages/:package_id/package_files READ_PACKAGES 읽기
모든 패키지 파일 목록 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision/files READ_PACKAGES 읽기
모든 패키지 리비전 목록 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions READ_PACKAGES 읽기
모든 패키지 업로드 URL 목록 POST /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls READ_PACKAGES 읽기
모든 패키지 업로드 URL 목록 POST /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls READ_PACKAGES 읽기
프로젝트의 모든 패키지 목록 GET /projects/:id/packages READ_PACKAGES 읽기
프로젝트의 모든 패키지 목록 GET /projects/:id/packages/pypi/simple READ_PACKAGES 읽기
모든 레시피 다운로드 URL 목록 GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/download_urls READ_PACKAGES 읽기
모든 레시피 다운로드 URL 목록 GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/download_urls READ_PACKAGES 읽기
모든 레시피 파일 목록 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files READ_PACKAGES 읽기
모든 레시피 리비전 목록 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions READ_PACKAGES 읽기
모든 레시피 업로드 URL 목록 POST /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/upload_urls READ_PACKAGES 읽기
모든 레시피 업로드 URL 목록 POST /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/upload_urls READ_PACKAGES 읽기
NPM 레지스트리 벌크 어드바이저리 엔드포인트 POST /groups/:id/-/packages/npm/-/npm/v1/security/advisories/bulk READ_PACKAGES 읽기
NPM 레지스트리 벌크 어드바이저리 엔드포인트 POST /packages/npm/-/npm/v1/security/advisories/bulk READ_PACKAGES 읽기
NPM 레지스트리 벌크 어드바이저리 엔드포인트 POST /projects/:id/packages/npm/-/npm/v1/security/advisories/bulk READ_PACKAGES 읽기
NPM 레지스트리 메타데이터 엔드포인트 GET /projects/:id/packages/npm/*package_name READ_PACKAGES 읽기
NPM 레지스트리 빠른 감사 엔드포인트 POST /groups/:id/-/packages/npm/-/npm/v1/security/audits/quick READ_PACKAGES 읽기
NPM 레지스트리 빠른 감사 엔드포인트 POST /packages/npm/-/npm/v1/security/audits/quick READ_PACKAGES 읽기
NPM 레지스트리 빠른 감사 엔드포인트 POST /projects/:id/packages/npm/-/npm/v1/security/audits/quick READ_PACKAGES 읽기
패키지 파일 조회 GET /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name READ_PACKAGES 읽기
패키지 파일 조회 GET /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name READ_PACKAGES 읽기
패키지 파일 조회 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision/files/:file_name READ_PACKAGES 읽기
패키지 매니페스트 조회 GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/digest READ_PACKAGES 읽기
패키지 매니페스트 조회 GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/digest READ_PACKAGES 읽기
패키지 스냅샷 조회 GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference READ_PACKAGES 읽기
패키지 스냅샷 조회 GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference READ_PACKAGES 읽기
프로젝트 패키지 조회 GET /projects/:id/packages/:package_id READ_PACKAGES 읽기
레시피 파일 조회 GET /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name READ_PACKAGES 읽기
레시피 파일 조회 GET /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name READ_PACKAGES 읽기
레시피 파일 조회 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name READ_PACKAGES 읽기
레시피 매니페스트 조회 GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/digest READ_PACKAGES 읽기
레시피 매니페스트 조회 GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/digest READ_PACKAGES 읽기
레시피 스냅샷 조회 GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel READ_PACKAGES 읽기
레시피 스냅샷 조회 GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel READ_PACKAGES 읽기
최신 패키지 리비전 조회 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/latest READ_PACKAGES 읽기
최신 레시피 리비전 조회 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/latest READ_PACKAGES 읽기
패키지 참조 메타데이터 조회 GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/search READ_PACKAGES 읽기
패키지 참조 메타데이터 조회 GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/search READ_PACKAGES 읽기
패키지 참조 메타데이터 조회 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/search READ_PACKAGES 읽기
레시피 리비전별 패키지 참조 메타데이터 조회 GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/search READ_PACKAGES 읽기
PyPi Simple 프로젝트 패키지 엔드포인트 GET /projects/:id/packages/pypi/simple/*package_name READ_PACKAGES 읽기
PyPi 패키지 다운로드 엔드포인트 GET /projects/:id/packages/pypi/files/:sha256/*file_identifier READ_PACKAGES 읽기
버전 메타데이터 GET /projects/:id/packages/go/*module_name/@v/:module_version.info READ_PACKAGES 읽기
NPM 패키지 업로드 승인 PUT /projects/:id/packages/npm/:package_name/authorize ADMIN_PACKAGES 읽기 및 쓰기
workhorse에서 PyPi 패키지 업로드 승인 POST /projects/:id/packages/pypi/authorize ADMIN_PACKAGES 읽기 및 쓰기
패키지 생성 POST /projects/:id/packages/composer ADMIN_PACKAGES 읽기 및 쓰기
주어진 NPM 패키지와 버전의 태그 생성 또는 업데이트 PUT /groups/:id/-/packages/npm/-/package/*package_name/dist-tags/:tag ADMIN_PACKAGES 읽기 및 쓰기
주어진 NPM 패키지와 버전의 태그 생성 또는 업데이트 PUT /packages/npm/-/package/*package_name/dist-tags/:tag ADMIN_PACKAGES 읽기 및 쓰기
주어진 NPM 패키지와 버전의 태그 생성 또는 업데이트 PUT /projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag ADMIN_PACKAGES 읽기 및 쓰기
NPM 패키지 생성 또는 deprecate PUT /projects/:id/packages/npm/:package_name ADMIN_PACKAGES 읽기 및 쓰기
패키지 파일 삭제 DELETE /projects/:id/packages/:package_id/package_files/:package_file_id ADMIN_PACKAGES 읽기 및 쓰기
패키지 리비전 삭제 DELETE /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision ADMIN_PACKAGES 읽기 및 쓰기
프로젝트 패키지 삭제 DELETE /projects/:id/packages/:package_id ADMIN_PACKAGES 읽기 및 쓰기
레시피와 패키지 삭제 DELETE /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel ADMIN_PACKAGES 읽기 및 쓰기
레시피와 패키지 삭제 DELETE /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel ADMIN_PACKAGES 읽기 및 쓰기
레시피 리비전 삭제 DELETE /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision ADMIN_PACKAGES 읽기 및 쓰기
주어진 태그 삭제 DELETE /groups/:id/-/packages/npm/-/package/*package_name/dist-tags/:tag ADMIN_PACKAGES 읽기 및 쓰기
주어진 태그 삭제 DELETE /packages/npm/-/package/*package_name/dist-tags/:tag ADMIN_PACKAGES 읽기 및 쓰기
주어진 태그 삭제 DELETE /projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag ADMIN_PACKAGES 읽기 및 쓰기
패키지 업로드 POST /projects/:id/packages/pypi ADMIN_PACKAGES 읽기 및 쓰기
패키지 파일 업로드 PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name ADMIN_PACKAGES 읽기 및 쓰기
패키지 파일 업로드 PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name ADMIN_PACKAGES 읽기 및 쓰기
패키지 파일 업로드 PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision/files/:file_name ADMIN_PACKAGES 읽기 및 쓰기
레시피 파일 업로드 PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name ADMIN_PACKAGES 읽기 및 쓰기
레시피 파일 업로드 PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name ADMIN_PACKAGES 읽기 및 쓰기
레시피 파일 업로드 PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name ADMIN_PACKAGES 읽기 및 쓰기
패키지 파일 업로드 PUT /projects/:id/packages/generic/:package_name/*package_version/(*path/):file_name ADMIN_PACKAGES 읽기 및 쓰기
maven 패키지 파일 업로드 PUT /projects/:id/packages/maven/*path/:file_name ADMIN_PACKAGES 읽기 및 쓰기
Workhorse generic 패키지 파일 승인 PUT /projects/:id/packages/generic/:package_name/*package_version/(*path/):file_name/authorize ADMIN_PACKAGES 읽기 및 쓰기
Workhorse Conan 패키지 파일 승인 PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name/authorize ADMIN_PACKAGES 읽기 및 쓰기
Workhorse Conan 패키지 파일 승인 PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name/authorize ADMIN_PACKAGES 읽기 및 쓰기
Workhorse Conan 패키지 파일 승인 PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision/files/:file_name/authorize ADMIN_PACKAGES 읽기 및 쓰기
Workhorse Conan 레시피 파일 승인 PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name/authorize ADMIN_PACKAGES 읽기 및 쓰기
Workhorse Conan 레시피 파일 승인 PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name/authorize ADMIN_PACKAGES 읽기 및 쓰기
Workhorse Conan 레시피 파일 승인 PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name/authorize ADMIN_PACKAGES 읽기 및 쓰기
Workhorse maven 패키지 파일 업로드 승인 PUT /projects/:id/packages/maven/*path/:file_name/authorize ADMIN_PACKAGES 읽기 및 쓰기

Pipelines 엔드포인트

권한 API 엔드포인트 권한 이름 범위
파이프라인별 모든 브리지 잡 목록 GET /projects/:id/pipelines/:pipeline_id/bridges READ_PIPELINES 읽기
모든 패키지 파이프라인 목록 GET /projects/:id/packages/:package_id/pipelines READ_PIPELINES 읽기
모든 프로젝트 파이프라인 목록 GET /projects/:id/pipelines READ_PIPELINES 읽기
파이프라인별 모든 트리거 잡 목록 GET /projects/:id/pipelines/:pipeline_id/trigger_jobs READ_PIPELINES 읽기
파이프라인 조회 GET /projects/:id/pipelines/:pipeline_id READ_PIPELINES 읽기
파이프라인 메타데이터 업데이트 PUT /projects/:id/pipelines/:pipeline_id/metadata ADMIN_PIPELINES 읽기 및 쓰기

Releases 엔드포인트

권한 API 엔드포인트 권한 이름 범위
프로젝트 릴리스 자산 파일 다운로드 GET /projects/:id/releases/:tag_name/downloads/*direct_asset_path READ_RELEASES 읽기
changelog 데이터 생성 GET /projects/:id/repository/changelog READ_RELEASES 읽기
최신 프로젝트 릴리스 조회 GET /projects/:id/releases/permalink/latest(/)(*suffix_path) READ_RELEASES 읽기
모든 릴리스 링크 목록 GET /projects/:id/releases/:tag_name/assets/links READ_RELEASES 읽기
프로젝트의 모든 릴리스 목록 GET /projects/:id/releases READ_RELEASES 읽기
태그 이름으로 릴리스 조회 GET /projects/:id/releases/:tag_name READ_RELEASES 읽기
릴리스 링크 조회 GET /projects/:id/releases/:tag_name/assets/links/:link_id READ_RELEASES 읽기
릴리스 생성 POST /projects/:id/releases ADMIN_RELEASES 읽기 및 쓰기
릴리스 링크 생성 POST /projects/:id/releases/:tag_name/assets/links ADMIN_RELEASES 읽기 및 쓰기
릴리스 삭제 DELETE /projects/:id/releases/:tag_name ADMIN_RELEASES 읽기 및 쓰기
릴리스 링크 삭제 DELETE /projects/:id/releases/:tag_name/assets/links/:link_id ADMIN_RELEASES 읽기 및 쓰기
릴리스 증거 생성 POST /projects/:id/releases/:tag_name/evidence ADMIN_RELEASES 읽기 및 쓰기
CI/CD 카탈로그에 새 컴포넌트 프로젝트 릴리스를 버전으로 게시 POST /projects/:id/catalog/publish ADMIN_RELEASES 읽기 및 쓰기
릴리스 업데이트 PUT /projects/:id/releases/:tag_name ADMIN_RELEASES 읽기 및 쓰기
릴리스 링크 업데이트 PUT /projects/:id/releases/:tag_name/assets/links/:link_id ADMIN_RELEASES 읽기 및 쓰기

Repositories 엔드포인트

권한 API 엔드포인트 권한 이름 범위
커밋과 연결된 모든 머지 리퀘스트 목록 GET /projects/:id/repository/commits/:sha/merge_requests READ_REPOSITORIES 읽기
모든 프로젝트 저장소 태그 목록 GET /projects/:id/repository/tags READ_REPOSITORIES 읽기
커밋이 푸시된 모든 참조 목록 GET /projects/:id/repository/commits/:sha/refs READ_REPOSITORIES 읽기
모든 저장소 브랜치 목록 GET /projects/:id/repository/branches READ_REPOSITORIES 읽기
커밋 조회 GET /projects/:id/repository/commits/:sha READ_REPOSITORIES 읽기
저장소에서 raw 파일 조회 GET /projects/:id/repository/files/:file_path/raw READ_REPOSITORIES 읽기
단일 저장소 태그 조회 GET /projects/:id/repository/tags/:tag_name READ_REPOSITORIES 읽기
저장소에서 파일 아카이브 조회 GET /projects/:id/repository/archive READ_REPOSITORIES 읽기

Secure files 엔드포인트

권한 API 엔드포인트 권한 이름 범위
보안 파일 다운로드 GET /projects/:id/secure_files/:secure_file_id/download READ_SECURE_FILES 읽기
프로젝트의 모든 보안 파일 목록 GET /projects/:id/secure_files READ_SECURE_FILES 읽기
보안 파일 세부 정보 조회 GET /projects/:id/secure_files/:secure_file_id READ_SECURE_FILES 읽기
보안 파일 생성 POST /projects/:id/secure_files ADMIN_SECURE_FILES 읽기 및 쓰기
보안 파일 삭제 DELETE /projects/:id/secure_files/:secure_file_id ADMIN_SECURE_FILES 읽기 및 쓰기

Terraform state 엔드포인트

권한 API 엔드포인트 권한 이름 범위
Terraform state 조회 GET /projects/:id/terraform/state/:name READ_TERRAFORM_STATE 읽기
Terraform state 버전 조회 GET /projects/:id/terraform/state/:name/versions/:serial READ_TERRAFORM_STATE 읽기
Terraform state 생성 또는 업데이트 POST /projects/:id/terraform/state/:name ADMIN_TERRAFORM_STATE 읽기 및 쓰기
Terraform state 삭제 DELETE /projects/:id/terraform/state/:name ADMIN_TERRAFORM_STATE 읽기 및 쓰기
Terraform state 버전 삭제 DELETE /projects/:id/terraform/state/:name/versions/:serial ADMIN_TERRAFORM_STATE 읽기 및 쓰기
Terraform state 잠금 POST /projects/:id/terraform/state/:name/lock ADMIN_TERRAFORM_STATE 읽기 및 쓰기
Terraform state 잠금 해제 DELETE /projects/:id/terraform/state/:name/lock ADMIN_TERRAFORM_STATE 읽기 및 쓰기

Work items 엔드포인트

권한 API 엔드포인트 권한 이름 범위
프로젝트의 work item 조회 GET /projects/:id/-/work_items/:work_item_iid READ_WORK_ITEMS 읽기
모든 프로젝트 이슈 목록 GET /projects/:id/issues READ_WORK_ITEMS 읽기
프로젝트의 work items 목록 GET /projects/:id/-/work_items READ_WORK_ITEMS 읽기
프로젝트 이슈 조회 GET /projects/:id/issues/:issue_iid READ_WORK_ITEMS 읽기

세밀한 권한이 없는 엔드포인트

다음 엔드포인트에는 세밀한 권한이 없습니다. CI/CD 잡 토큰은 항상 이 엔드포인트에 접근할 수 있으며, 허용 목록 항목의 권한이 그 접근을 제한하지 않습니다.

권한 API 엔드포인트
레지스트리 저장소 삭제 DELETE /projects/:id/registry/repositories/:repository_id
여러 레지스트리 저장소 태그 삭제 DELETE /projects/:id/registry/repositories/:repository_id/tags
레지스트리 저장소 태그 삭제 DELETE /projects/:id/registry/repositories/:repository_id/tags/:tag_name
그룹의 패키지 버전 메타데이터용 Composer 패키지 엔드포인트 GET /group/:id/-/packages/composer/*package_name
그룹의 모든 패키지 목록 GET /group/:id/-/packages/composer/p/:sha
그룹의 패키지 버전 메타데이터용 Composer v2 패키지 p2 엔드포인트 GET /group/:id/-/packages/composer/p2/*package_name
저장소 URL 템플릿 조회 GET /group/:id/-/packages/composer/packages
NPM 레지스트리 메타데이터 엔드포인트 GET /groups/:id/-/packages/npm/*package_name
그룹에서 패키지 파일 다운로드 GET /groups/:id/-/packages/pypi/files/:sha256/*file_identifier
그룹의 모든 패키지 목록 GET /groups/:id/-/packages/pypi/simple
PyPi Simple 그룹 패키지 엔드포인트 GET /groups/:id/-/packages/pypi/simple/*package_name
잡 토큰으로 잡 조회 GET /job
잡 토큰으로 Kubernetes용 모든 GitLab 에이전트 목록 GET /job/allowed_agents
Conan 패키지 검색 GET /packages/conan/v1/conans/search
Conan 저장소 가용성 확인 GET /packages/conan/v1/ping
인증 토큰 조회 GET /packages/conan/v1/users/authenticate
인증 자격 증명 확인 GET /packages/conan/v1/users/check_credentials
NPM 레지스트리 메타데이터 엔드포인트 GET /packages/npm/*package_name
프로젝트의 Dependency Firewall 상태 조회 GET /projects/:id/dependency_firewall/enablement
Conan 패키지 검색 GET /projects/:id/packages/conan/v1/conans/search
Conan 저장소 가용성 확인 GET /projects/:id/packages/conan/v1/ping
인증 토큰 조회 GET /projects/:id/packages/conan/v1/users/authenticate
인증 자격 증명 확인 GET /projects/:id/packages/conan/v1/users/check_credentials
Conan 패키지 검색 GET /projects/:id/packages/conan/v2/conans/search
인증 토큰 조회 GET /projects/:id/packages/conan/v2/users/authenticate
인증 자격 증명 확인 GET /projects/:id/packages/conan/v2/users/check_credentials
프로젝트의 모든 레지스트리 저장소 목록 GET /projects/:id/registry/repositories
프로젝트의 모든 레지스트리 저장소 태그 목록 GET /projects/:id/registry/repositories/:repository_id/tags
레지스트리 저장소 태그 세부 정보 조회 GET /projects/:id/registry/repositories/:repository_id/tags/:tag_name
DAST 사이트 검증을 새 상태로 전환 POST /internal/dast/site_validations/:id/transition
병렬 잡의 테스트 밸런싱 초기화 POST /job/test_balancing/initialize
병렬 잡의 다음 테스트 분할 배치 요청 POST /job/test_balancing/request
프로젝트의 Dependency Firewall 정책에 대한 패키지 평가 POST /projects/:id/dependency_firewall/evaluate
단일 모듈러 서비스 대상에 대한 단기 JWT 발급 POST /token_exchange

더 알아보기

세밀한 권한의 핵심은 잡 토큰으로 접근 가능한 엔드포인트를 최소 권한 원칙대로 제한하는 것이에요. API 엔드포인트별로 READ_*(읽기)와 ADMIN_*(읽기 및 쓰기) 권한 이름을 이해하고, 허용 목록의 그룹·프로젝트에 필요한 권한만 부여하면 됩니다. 잡 토큰 허용 목록과 CI/CD 잡 토큰 전반을 함께 익히면 안전한 파이프라인 구성에 도움이 됩니다.