반응형
젠킨스에서 유저별로 빌드를 분리할 필요가 있을 때 블로그 글들을 찾아보는데, 버전에 따라 기능이 다르게 돼있어서 찾기가 어려웠다.
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 등 모든 권한에 체크합니다.
반응형
'개발 이야기 > Generals' 카테고리의 다른 글
| Jenkins apt 로 설치된 서버에서 docker 기반 서버로 마이그레이션하기 (0) | 2026.01.13 |
|---|---|
| [Git] git push 할 때 RPC failed; HTTP 500 curl 22 The requested URL returned 에러 발생 (0) | 2025.06.16 |
| Kafka 클러스터에서 broker 가 죽었을 때 topic 생성 타임아웃 해결하기 (3) | 2024.10.25 |
| Elasticsearch Too many dynamic script compilations within, ~ 에러 해결하기 (0) | 2024.03.28 |
| Slack bot 세팅하기 (0) | 2023.07.18 |
댓글