본문 바로가기
개발 이야기/Generals

Jenkins 빌드별 권한 분리하기 (2.528.3 버전 기준)

by _ppuing 2026. 1. 13.
반응형

 

젠킨스에서 유저별로 빌드를 분리할 필요가 있을 때 블로그 글들을 찾아보는데, 버전에 따라 기능이 다르게 돼있어서 찾기가 어려웠다.

1단계: 플러그인 설치

권한 분리를 위해 새로운 플러그인을 받아야 한다. (Jenkins 관리 > Plugins)

 

 

2단계: 권한 전략 변경

Jenkins 관리 > Security > Authorization 항목 

3단계: 역할 정의 및 빌드 권한 부여 

Jenkins 관리 > Manage and Assign Roles 메뉴 이용 

1. 역할 생성 (Manage Roles)

  • Global roles: 모든 유저가 기본적으로 가져야 할 권한입니다.
    • read-only 같은 역할을 만들고 Overall - Read 권한을 체크합니다. (이게 있어야 젠킨스 대시보드 접속이 가능합니다.)
  • Item roles: 특정 프로젝트에 대한 세부 권한입니다. (여기서 빌드 권한을 분리합니다.)
    • Role to add: 예: Project-A-Builder
    • Pattern: 접근을 허용할 프로젝트 이름을 정규식으로 입력합니다. (예: Project-A-.*)
    • Permissions: Job - Build, Job - Read, Job - Workspace 등을 체크합니다.

2. 역할 할당 (Assign Roles)

  • Global roles: 각 유저(ID)를 추가하고 위에서 만든 read-only 권한을 부여합니다.
  • Item roles: 각 유저(ID)를 추가하고, 해당 유저가 담당하는 프로젝트 그룹의 역할(Project-A-Builder 등)을 체크합니다.

권한 분리 예시 표

역할 구분 역할 이름 패턴 (Pattern) 주요 권한 비고
Global base-user N/A Overall: Read 로그인 허용용
Item Team-A-Role Team-A-.* Job: Build, Read A팀 전용 빌드 권한
Item Team-B-Role Team-B-.* Job: Build, Read B팀 전용 빌드 권한

 

(Optional) 권한 세부설정 예시 (w/ Gemini)

1. App 그룹: 여러 개의 프로젝트 패턴 처리하기

"AppProject"와 "AndroidSystem" 두 가지 패턴을 모두 포함해야 한다면, Item roles의 패턴 칸에 다음과 같이 입력하세요.

  • 패턴 예시: (AppProject.*|AndroidSystem.*)
  • 설명: * | : '또는(OR)'을 의미합니다.
    • () : 그룹을 묶어줍니다.
    • .* : 뒤에 어떤 글자가 와도 상관없다는 뜻입니다. (예: AppProject-build, AppProject-deploy 등 모두 포함)

만약 프로젝트가 더 늘어난다면 (ProjectA.*|ProjectB.*|ProjectC.*) 식으로 계속 추가할 수 있습니다.

2. Server 그룹: 전체 프로젝트 접근 설정

모든 프로젝트에 접근하게 하려면 가장 포괄적인 정규표현식인 .*을 사용합니다.

  1. Manage Roles > Item roles로 이동합니다.
  2. Role to add에 Server-Role 입력.
  3. Pattern에 .* 입력 (모든 문자열과 매칭됨).
  4. Permissions: Job, Run, View 등 모든 권한에 체크합니다.
반응형

댓글