티스토리 뷰

Jenkins 기본 설치로는 사용자별 기능이나, Item 관리를 할 수 없다. 하지만 Jenkins는 많은 플러그인으로 확장 기능을 지원하고 있는데 그 중 Role-based Authorization Strategy Plugin을 설치해서 Jenkins에서 권한 관리를 하는법을 알아보겠다.

플러그인 설치

젠키스 플러그인 설치 페이지로 이동한다.

필터창에 Role 입력해서 플러그인 검색 후 아래 이미지와 같이 체크후 플러그인을 설치한다.

정상 설치가 되었다.

안정적인 사용을 위해서 젠키스를 재시작한다.

플러그인 사용

플러그인 설치 후 사용을 위해서는 Authorization 방법을 변경해야 한다. Jenkins 관리 > Congifure Golobal Security 로 이동해서 아래 그림과 같이 Role-Based Strategy를 체크한다.

이후 젠킨스 관리에서 Manage and Assign Roles 메뉴가 활성화 된다. 

권한관리

Manage And Assign Roles 메뉴로 들어가면 Manages Roles, Assign Roles, Role Stragegy Macros 세가지 메뉴가 있다.
Manage Roles 는 일종의 권한 그룹이고, Assign Roles는 사용자에게 권한 그룹을 할당하는 메뉴이다. Manage Roles 를 클릭해서 권한 그룹을 생성하겠다.

테스트 그룹 생성

Global group의 Role Add 에 그룹명을 입력하고 test_group을 생성한다. 여러 항목에 대해서 권한을 주거나 뺄수 있지만 Overall Read항목은 반드시 체크를 해야한다. 

Item Role 생성

Item Role은 Job별로 권한을 줄 수 있다. 이미 테스트를 위한 "test_job" 이라는 이름의 test_job을 만들었다. Role to add 에 Role 이름을 입력하고 Pattern 에 Job명을 입력한다. Pattern 이라는 명칭에서 알수 있듯이 정규식을 이용해서 다수의 Job을 설정할 수 있다. 우선 테스트에서는 한개의 job만 매칭하기 위해 "test_job" 이라고 입력하고 롤을 생성하겠다.

 User에 권한 추가

이제 생성한 권한을 사용자에 할당하겠다. 이미 test1이라는 사용자를 생성해놨다.

Global roles 과 Item roles 에 사용자 ID를 추가하고 각각의 권한을 체크해준다.

이제 test1계정으로 로그인을 해보면 해당 Job 목록을 확인할 수 있다. 물론 밑에 그림에서 확인 되듯이 빌드 버튼은 보이지 않는다. 위에서 Item Role 에서 Read에만 체크를 했기 때문이다. 빌드 권한을 추가로 주고 싶다면 Build 항목에도 체크를 하면된다.

참고

아주 간단한 예제를 살펴봤지만  Pattern 이나 Role 이나 Group을 이용하면  좀더 세밀한 권한 설정이 가능하다. 더 많은 정보는 아래 링크를 참고하면 된다.

'Web Development' 카테고리의 다른 글

Base64 Encoding  (0) 2020.09.16
Build Docker Image with Maven (java)  (0) 2020.06.25
Shiro JdbcRealm(Postgresql)  (0) 2020.03.20
OSGI for Java Bundle Programing  (0) 2020.03.16
Runnable Jar (Maven Shade)  (0) 2020.03.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크