Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

seoyyyy-dev

젠킨스 CI/CD - 사용자관리 본문

개발 독서 스터디/젠킨스로 배우는 CIㆍCD 파이프라인 구축

젠킨스 CI/CD - 사용자관리

seoyyyy 2025. 6. 16. 00:15

 

🙂 젠킨스 사용자 생성

젠킨스 사용자 생하는 방법에 대해서 알아보자

 

대시보드에서 Manage Jenkins(Jenkins 관리) > Users 링크를 클릭한다.

Users 화면에 들어가서 페이지 우측 성단의 Create User 버튼을 클릭한다.

 

Create User 화면에서 계정명, 암호, 암호 확인, 이름, 이메일 주소를 입력한다.

위 항목들은 대부분 필수 입력 항목으로 아무것도 입력하지 않으면 아래 오른쪽의 그림과 같은 붉은색의 메세지가 나타난다.

 

모든 항목을 입력하면 아래와 같이 새로 추가된 사용자가 목록에 나타난다. (testUser)

 

😍 젠킨스 사용자에게 역할 할당하기

 

사용자에게 역할을 할당하기 위해 역할, 권한을 생성해야하고 역할에 권한을 부여하는 과정이 필요하다.

그리고 권한을 생성하기 위해 Role-based Authorization Strategy(역할 기반 권한 부여 전략) 플러그인을 설치해야 한다.

 

역할-기반 전략 플러그인을 설치하기 위해 젠킨스 관리자 자격으로 로그인한 후 대시보드에서 Jenkins 관리(Manage Jenkins) > Plugins 링크를 클릭하자.

 

 

Plugins 화면에서 Available plugins 메뉴를 선택한 후 Role-based Authorization Strategy 를 검색한 후 해당 플러그인 선택하여 Install 버튼을 눌러 설치해준다. 

플러그인 설치가 종료되고 Success 상태가 뜨면 설치가 완료된 것이다. 

😚 역할-기반 전략 플러그인 활성화 방법

플러그인의 설치가 완료되면 Jenkins 관리 > Security 로 들어간다.

 

해당 화면에서 Authorization 섹션에서 Role-Based Strategy(약할-기반 전략)이라는 항목을 선택하고 Save 해준다.

😆 젠킨스에서 역할을 생성해보기

이제 플러그인을 활용해 역할을 생성해 보겠다.

대시보드 > Jenkins 관리로 돌아가보면 Manage and Assign Roles(역할 관리 및 할당) 이란 항목이 새롭게 추가 되어있다.

 

해당 메뉴를 선택하면 기본으로 Manage Roles 화면이 나타난다.

 

역할을 생성하기 위해 Role to add 항목에 역할명을 입력하고 Add 버튼을 클릭해준다. 

그러면 다음과 같이 Global roles에 역할이 추가되며 해당 역할에서 필요한 권한들을 체크하여 Save 해주면 된다.

View 섹션의 체크박스를 모두 선택하여 보기-전용 사용자 권한을 생성

😐 사용자에게 역할을 할당하기

이제 추가한 역할을 사용자에게 할당해보기 위해 동일한 화면의 Assign Roles 라는 하위메뉴를 선택해준다. 

 

Add User 를 선택하고 사용자 이름을 입력한 후 Add 버튼을 클릭한다. 

 

사용자 추가가 완료되면 다음과 같이 사용자 이름이 추가된다.

이 테스트 유저에게 위에서 생성한 TestRole(보기-전용 역할) 에 체크해주고 Save 버튼을 눌러준다.

 

이제 테스트 유저로 로그인하면 다음과 같이 권한이 제한(Access Denied)되어있는 것을 확인할 수 있다.

 

😖 프로젝트 - 기반 역할 생성 하기

젠킨스에서는 애플리케이션마다 각기 다른 CI/CD 작업을 수행하게끔 다양하게 생성할 수 있다.

특정 사용자에 대해 일부 작업에만 접속할 수 있도록 제한하기 위해 프로젝트-기반 역할(project-based role)을 생성하고 이를 사용자에게 할당하면 된다.

 

프로젝트-기반 역할을 생성하기 위해 대시보드 > Jenkins 관리 > Manage and Assign Roles > Manage Roles 로 이동해보자

그리고 특정 작업에만 접속할 수 있는 역할을 생성해보자

 

실습에서는 단위테스트와 E-E 테스트 작업에만 접속을 허용하는 역할을 생성한다.

Item roles 섹션에서 Role to add(추가할 역할) 필드에 역할 이름을 입력하고, Pattern(패턴) 필드에 .*Testing 을 입력하여

이러면 UnitTesting, e-e Testing처럼 작업명에 "Testing"이라는 단어가 포함된 작업에 접속할 수 있게 된다.

 

입력을 완료하면 Add 버튼을 클릭한다.

그러면 Item roles에 행이 하나 추가되는데 모든 체크박스를 선택해 모든 권한을 부여해주고 Save 해준다. 

 

🤗 프로젝트 - 기반 역할 할당하기

 

이제 사용자에게 역할을 할당하기 위해 대시보드 > Jenkins 관리 > Manage and Assign Roles > Assign Roles 링크를 클릭하자 

그러고 Item roles 섹션에서 Add User버튼을 클릭해 seoyyyy 사용자의 아이디를 추가해주었다.

 

추가된 seoyyyy 유저에게 좀전에 생성한 TestingOnlyRole 권한에 체크해주었다.

이제 Global roles 섹션에서 또 Add User를 선택하고 seoyyyy 유저를 추가해주자

 

그다음 이 유저에게 앞에서 View에대한 권한만 활성화해 놓았던 TestRole 권한을 부여해주자.

이제 seoyyyy 사용자에겐 Global roles의 View 역할과 Item roles 섹션의 TestingOnlyRole 이라는 2개의 역할이 할당되었다.

하지만 사용자가 overall 접속권한을 갖고 있지 않다면 대시보드에 접근하지 못하므로 ManageRole 화면에서 View 역할에 Overall 섹션의 Read 체크박스를 선택해 권한을 추가해주자.

 

🤗 프로젝트 - 기반 역할 검증하기

이제 프로젝트-기반 역할 검증을 해보기 위해 몇 개의 젠킨스 작업을 생성해보자

테스트를 위해 CreatAPIJar, E-E Testing, UnitTesting 세가지 작업을 생성했다.

이제 seoyyyy 계정으로 다시 로그인을 해보자

 

seoyyyy 계정으로 들어가보니 Testing 으로 끝나는 두가지 작업만 나타나는 것을 확인할 수 있다.


🤗 매트릭스-기반 보안 이해 

이제 매트릭스 기반 보안에 대해 살펴보자

실습을 위해 대쉬보드 > Jenkins 관리 > Security에 들어가 Authorization 섹션을 matrix-based security(매트릭스-기반 보안 옵션)로 변경해준다.

그렇게되면 화면에 다음과 같이 권한을 설정할 수 있는 영역이 나타난다. 

이옵션이 나타나지 않는다면 Matrix Authorization Strategy 플러그인을 설치하고 다시 시도하도록 한다.

이 섹션에는 Anonymous(익명 사용자)와 Authenticated Users(등록 사용자) 2개의 그룹이 있다.

 

Add User 또는 Add group 버튼을 통해 사용자나 그룹에게 권한을 할당할 수 있다.

 

그리고 사용자에게 할당하려는 권한에 체크박스를 선택해주고 Save 해주면 된다.

 

seoyyyy 유저에게 overall 섹션의 Read 체크박스와 Job 섹션내의 모든 체크박스를 선택해주었다.

그리고 seoyyy 유저로 다시 로그인을 하면 왼쪽 몇개의 메뉴옵션만 표시되며 Jenkins 관리 메뉴는 확인할 수 없다.


🤗 프로젝트-기반 매트릭스 권한 부여 전략 이해

이번엔 Security의 Authorization 섹션에서 Project-based Matrix Authorization Strategy 옵션을 선택해보자

이 모드는 Matrix-based security를 확장한 것으로 각 프로젝트에 대해 추가 매트릭스를 정의할 수 있다.

또 다시 실습을 위해 Add user 버튼을 눌러 seoyyyy 유저를 추가해본다

이번엔 seoyyyy 사용자에게 빌드 작업 권한을 부여하기 위해  Job 섹션에서 Build 체크박스를 선택해주고 Overall 섹션에서 read 체크박스를 선택한다.

 

이제 특정 작업에 대해 보안 설정을 하기 위해 젠킨스 대시보드로 이동해 작업목록을 확인해보자

그리고 작업 목록에서 CreateAPIJar 작업 우측 드롭다운 메뉴에서 구성(configure) 옵션을 선택한다.

그럼 아래와 같이 General 섹션이 나타나는데 아래 Enable project-based security 체크박스를 클릭하면 상세설정 메뉴가 나타난다.

이 설정은 Configure Globa Security 페이지의 Authorization 섹션이 Project-based Matrix Authorization Strategy를 사용하는 경우에만 표시된다.

여기서 Add user 버튼을 눌러 사용자 아이디를 입력한다.

 

그리고 Intheritance Strategy(상속 전략) 섹션에서 드롭다운 메뉴의 Do not inherit permission grants from other ACLs(다른 ACL에서 부여한 권한을 상속하지 않음) 옵션을 선택한다.


그러면 현재 작업에서 설정해둔 권한이 이 작업을 사용하는 사용자에게 부여된다.

 

이제 seoyyyy로 로그인을 해보자

seoyyyy 사용자에게 해당 작업에 대해 BuildRead 권한만 존재하고 작업 구성을 편집하거나 볼 수 없고, 삭제도 불가능한 것을 확인할 수 있다.