티스토리 뷰

Jenkins 사용시 사용자별로 특정 Job만 보였으면 하는 요구사항이 있다. 즉 A user는 A project만, B user는 B project만 각각 빌드할 수 있어야 한다. 이에 대한 방법을 소개하고자 한다. 


필요 플러그인 설치

기본으로 Jenkins를 설치하면 Matrix Authorization Strategy Plugin 이 설치가 되어 있지 않다. 

사용자별/프로젝트별 프로젝트 관리를 위해서는 필요한 플러그인이다. 설치가 안되어 있다면 설치해준다. 


사용자 생성

일단 사용자 생성을 한다. 

Jenkins Manage Users

사용자 생성은 Jenkins 관리 > Manage Users 에서 할 수 있다. 

Jenkins Create Users

이렇게 A user와 B user를 생성하였다. 


Job 생성

Jenkins Create Job

이 글을 읽는 분들이라면 Jenkins에 이런 Job들은 있을것이다. 필자는 View로 나눠서 A user는 A-batch만 보이게 B user는 B-batch만 보이게 할 계획이다. 


권한 매핑

가장 중요한 user와 job간의 매핑을 해줄 차례다. 

Jenkins Configure Global Security

Jenkins 관리 > Configure Global Security 로 들어간다. 

 

Jenkins Configure Global Security

여기서 위의 빨간 네모 친 부분을 주의해서 작성한다. Project-based Matrix Authorization Strategy 를 클릭하고 위의 그림처럼 사용자를 추가하고 권한을 준다. 진짜 주의할점은 관리자는 모든 권한을 줘야한다. 권한을 주지 않고 저장하게되면.. 골치아프다. add를 할때는 이름이 아닌 ID로 add를 하면 이름으로 표에 들어가게 된다. A user, B user는 여기서는 일단 Overall에서 Read 권한만 주도록 하고 저장을 누른다. 

 

위의 작업이 다 되었으면 이제 권한을 적용시킬 Job으로 들어온다. 위에서는 View 단위로 설정을 한다고 했는데 엄밀히 말해서 View 단위로는 안되고 각각의 Job마다 권한을 설정해줘야한다. Job > 구성으로 들어간다. 

 

Jenkins Job별 권한 부여

구성으로 들어가면 맨 위쯤에 Enable project-based security 가 있다. 이것을 체크하면 위와 같은 matrix가 나온다. 

여기에서 아까 추가를 했던 User/group 중 이 Job이 필요한 user만 추가를 해준다. 이 A project는 A user만 사용하면 되므로 위와 같이 관리자와 A user를 추가해주고 A user는 Job과 관련된 일만 할수 있도록 권한을 주었다. 상황에 맞게 Delete라던지 이런 권한은 빼줘도 된다. 

각 Job마다 이렇게 작업을 해준다. 


테스트

테스트 방법은 간단하다. 로그아웃 해준다음에 A user든 B user든 접속을 해서 각각의 Job들이 잘 보이는지 확인하면 된다. 

 

Jenkins 권한관리

A user로 로그인을 하니 A-batch라는 View만 활성화 되었다. 왜냐면 B-batch에는 볼수있는 job이 하나도 없기 때문에 View도 나오지 않는다. Jenkins 사용자별/프로젝트별 권한관리가 잘 되었다. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
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