잡 토큰 권한 개발 가이드라인
CI/CD 잡 토큰에 대한 세분화된 권한을 추가하고 API 엔드포인트를 잡 토큰 권한 범위에 추가하는 개발 가이드라인을 설명합니다.
배경 # 잡 토큰 권한을 사용하면 GitLab API 엔드포인트에 접근하는 CI/CD 잡 토큰에 대해 세분화된 접근 제어를 할 수 있습니다. 활성화되면, 잡 토큰은 프로젝트에 대해 허용된 작업만 수행할 수 있습니다. 과거에는 잡 토큰이 기본적으로 리소스에 대한 광범위한 접근을 제공했습니다. 잡 토큰에 대한 세분화된 권한이 도입됨에 따라, 최소 권한 원칙을 준수하면서 세분화된 접근 제어를 활성화할 수 있습니다. 이 주제에서는 새로운 잡 토큰 권한에 대한 요구 사항과 기여 가이드라인을 안내합니다. 요구 사항 # 승인되기 전에, 모든 새로운 잡 토큰 권한은 다음을 충족해야 합니다. 옵트인 방식이며 기본적으로 비활성화되어야 합니다. GitLab 보안 팀의 검토를 완료해야 합니다. 검토를 위해 @gitlab-com/gl-security/product-security/appsec 를 태그하세요. 이러한 요구 사항은 새로운 권한을 통해 사용자가 보안 구성에 대한 명시적인 제어를 유지하고, 의도하지 않은 권한 상승을 방지하며, 최소 권한 원칙을 준수하도록 보장합니다. 잡 토큰 권한 추가 # 잡 토큰 권한은 여러 위치에 정의되어 있습니다. 새로운 권한을 추가할 때는 다음 파일이 업데이트되었는지 확인하세요. 백엔드 권한 정의 : 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 엔드포인트 추가 # 라우트 설정 # API 엔드포인트에 잡 토큰 정책 지원을 추가하려면, 두 가지 라우트 설정을 구성해야 합니다. route_setting :authentication # 이 설정은 엔드포인트에 대해 허용되는 인증 방법을 제어합니다. 매개변수 : job_token_allowed: true - CI/CD 잡 토큰이 이 엔드포인트에 대해 인증할 수 있도록 활성화합니다. route_setting :authorization # 이 설정은 잡 토큰 접근에 대한 권한 수준과 접근 제어를 정의합니다. 매개변수 : job_token_policies : 필요한 권한 수준입니다. 사용 가능한 정책은 lib/ci/job_token/policies.rb 에 나열되어 있습니다. allow_public_access_for_enabled_project_features : 선택 사항. 프로젝트 기능의 표시 설정에 따라 접근을 허용합니다. 공개 접근 구성 을 참고하세요. 사용 예시 # 이 예시는 잡 토큰 정책의 repository 리소스에 대해 tags API 엔드포인트