개발 이야기/Generals
Jenkins 빌드별 권한 분리하기 (2.528.3 버전 기준)
_ppuing
2026. 1. 13. 12:04
반응형
젠킨스에서 유저별로 빌드를 분리할 필요가 있을 때 블로그 글들을 찾아보는데, 버전에 따라 기능이 다르게 돼있어서 찾기가 어려웠다.
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 그룹: 전체 프로젝트 접근 설정
모든 프로젝트에 접근하게 하려면 가장 포괄적인 정규표현식인 .*을 사용합니다.
- Manage Roles > Item roles로 이동합니다.
- Role to add에 Server-Role 입력.
- Pattern에 .* 입력 (모든 문자열과 매칭됨).
- Permissions: Job, Run, View 등 모든 권한에 체크합니다.
반응형