InfoGrab Docs

Job token 권한 개발 가이드라인

Job token 권한 개발 가이드라인에 대해 설명합니다.

배경 # Job token 권한은 GitLab API 엔드포인트에 접근하는 CI/CD job token에 대한 세밀한 접근 제어를 허용합니다. 활성화되면 job token은 프로젝트에 허용된 작업만 수행할 수 있습니다. 역사적으로 job token은 기본적으로 리소스에 대한 광범위한 접근을 제공해왔습니다. Job token에 대한 세밀한 권한의 도입으로 최소 권한 원칙을 준수하면서 세분화된 접근 제어를 활성화할 수 있습니다. 이 항목은 새 job token 권한에 대한 요구 사항과 기여 가이드라인을 제공합니다. 요구 사항 # 수락되기 전에 모든 새 job token 권한은 다음 조건을 충족해야 합니다: 옵트인 방식이며 기본적으로 비활성화되어야 합니다. GitLab 보안 팀의 검토를 완료해야 합니다. 검토를 위해 @gitlab-com/gl-security/product-security/appsec 태그를 지정합니다. 이 요구 사항은 새 권한이 사용자가 보안 구성에 대한 명시적인 제어를 유지하고 의도하지 않은 권한 에스컬레이션을 방지하며 최소 권한 원칙을 준수하도록 합니다. Job token 권한 추가 # Job token 권한은 여러 위치에 정의됩니다. 새 권한을 추가할 때 다음 파일들이 업데이트되어야 합니다: 백엔드 권한 정의 : lib/ci/job_token/policies.rb - 사용 가능한 권한 나열. JSON 스키마 유효성 검사 : app/validators/json_schemas/ci_job_token_policies.json - Ci::JobToken::GroupScopeLink 및 Ci::JobToken::ProjectScopeLink 모델의 job_token_policies 속성에 대한 유효성 검사 스키마 정의. 프론트엔드 상수 : app/assets/javascripts/token_access/constants.js - UI에 대한 권한 정의 나열. API 엔드포인트를 job token 권한 스코프에 추가 # Route 설정 # API 엔드포인트에 job token 정책 지원을 추가하려면 두 가지 route 설정을 구성해야 합니다: route_setting :authentication # 이 설정은 엔드포인트에 허용되는 인증 방법을 제어합니다. 매개변수: job_token_allowed: true - CI/CD job token이 이 엔드포인트에 대해 인증하도록 허용합니다. route_setting :authorization # 이 설정은 job token 접근에 대한 권한 수준 및 접근 제어를 정의합니다. 매개변수: job_token_policies : 필요한 권한 수준. 사용 가능한 정책은 lib/ci/job_token/policies.rb 에 나열되어 있습니다. allow_public_access_for_enabled_project_features : 선택 사항. 프로젝트 기능의 가시성 설정에 따라 접근을 허용합니다. 공개 접근 구성 을 참조하세요. 사용 예시 # 이 예시는 job token 정책의 reposito