[Docker] Jenkins 사용자 관리
[Docker] Jenkins 사용자 관리
안녕하세요? 정리하는 개발자 워니즈입니다. 이번시간에는 Jenkins의 사용자 관리에 대해서 정리를 해보려고 합니다. 우선 필자는 애초에 Docker로 Jenkins를 올렸엇습니다. 이후에 진행하는 프로젝트에서 AWS EKS
를 사용하여 클러스터링 구성을 하였고, 그안에 Jenkins를 helm을 이용하여 설치를 했었습니다.
우선 헬름을 이용하여 젠킨스를 설치하는 방법은 다음을 참고 하시기 바랍니다.
젠킨스 관련 지난 포스팅은 아래를 참고 부탁드립니다.
helm에서 공식적으로 제공하는 chart로, PV, PVC, POD 등 한번에 설치가 가능하고 쿠버네티스에서 운영하기 편리하게 구성이 되어있습니다.
1. 젠킨스 사용자 관리
기본적으로 젠킨스를 helm으로 설치하게 되면 secret
object로 생성되기 때문에 비밀번호 자체가 난수화 처리가 됩니다. 처음에는 필자도 굉장히 당황을 했습니다. 운영자도 몰라볼만큼의 난수화가 되어서 접속할때 굉장히 어려움을 겪었습니다.
printf $(kubectl get secret --namespace default jenkins -o jsonpath="{.data.jenkins-admin-password}" | base64 --decode);echo
쿠버네티스 오브젝트중 secret에서 json값을 취득한뒤, 다시 디코딩 하는 방법이였습니다.
4ernu12bOx
이러한 난수 비밀번호가 출력이 되는데, 접속이 굉장히 어려워서 사용자 관리
를 통해서 변경하기로 했습니다.
Jenkins에는 다음과 같은 여러가지의 인증 방법이 지원되고 있습니다.
- Delegate to servlet container
- Jenkins own user database
- LDAP
- Unix user/group database
설정은 [Jenkins 관리] > [Configure Global Security] 의 Access Control에서 변경을 해줍니다.
Jenkins own user database
: 젠킨스 자체적인 사용자 관리 시스템을 사용하는 방법입니다. 사용자를 추가하는 방식과 일반 사용자가 가입을 하는 방식이 있습니다.
2. 사용자 추가
Jenkins의 사용자를 추가하기 위해서는 [Jenkins 관리] > [Manager Users] 메뉴로 이동한다. 왼쪽 메뉴에서 사용자 생성을 선택하고 적절한 정보를 입력한 후 [Create Users] 버튼을 클릭합니다.
2-1. 사용자 가입 허용
위의 그림에서 보시면, 사용자 가입 허용에 대해서 체크 표기를 했습니다. 그렇게 되면, 로그인 창에서 계정 가입에 대한 버튼이 생성되고, 가입 요청을 할 수 있습니다.
서두에 말했던, secret object를 사용해서 패스워드를 취득하여 로그인을 시도했지만 되지 않았습니다. 이유는 자체적인 database를 생성하기 떄문에 admin
유저에 대해서도 신규로 생성을 해주어야 합니다. 그래서 신규로 가입을 진행했고, 기존에 생성했던 job들도 모두 정상 노출이 되었습니다.
3. User 정보 변경 / 삭제
User의 정보를 변경하기 위해서는 admin 계정으로 접속해야 합니다. [Jenkins 관리] > [Manager Users] 를 클릭합니다.
변경 같은 경우, user 목록에서 톱니바퀴를 클릭하면됩니다.
개별 User에 대해서 이름/E-mail/패스워드를 변경할 수 있습니다.
개별 User에 대해서 삭제를 할 수 있습니다.
4. User 권한 관리
유저 권한을 부여 하기 위해서는 admin 계정으로 로그인 해야 합니다. [Jenkins 관리] > [Confgure Global Security]를 클릭합니다.
[Authorization] > [Matrix-based security] 또는 [Project-based Matrix Authorization Strategy] > [User/group to add]를 클릭하여 유저를 추가하고 권한을 부여한 뒤 save를 해줍니다.
5. 마치며…
이번시간에는 Jekins의 유저 관리에 대해서 알아보았습니다. 유저를 제어 함으로써 job의 수행혹은 삭제로부터 ACL을 제어 할 수 있습니다. 애초에 helm을 기본으로 설치하여 난수의 admin 패스워드를 어떻게 변경할지 알아보는데서 시작이 되었지만 jenkins의 유저관리를 알아 볼 수 있는 유익한 시간이였던 것 같습니다.
다음시간에는 jenkins의 유용한 플러그인들에 대해서 정리를 하는 시간을 갖도록 하겠습니다.