AWS EKS를 사용하여 클러스터링 구성을 하였고, 그안에 Jenkins를 helm을 이용하여 설치를 했었습니다.
우선 헬름을 이용하여 젠킨스를 설치하는 방법은 다음을 참고 하시기 바랍니다. (2026년 기준: 이 글에서 처음 안내했던 helm/charts 저장소는 2020년 11월에 보관(archived) 처리됐습니다. 지금은 공식 저장소가 따로 있습니다.)
helm repo add jenkins https://charts.jenkins.io
helm repo update
helm install jenkins jenkins/jenkins
GITHUB 젠킨스 헬름 차트 (jenkinsci/helm-charts)
젠킨스 관련 지난 포스팅은 아래를 참고 부탁드립니다.
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값을 취득한뒤, 다시 디코딩 하는 방법이였습니다.
2026년 기준 변경 사항: 지금 공식 차트(jenkinsci/helm-charts)는 초기 비밀번호를 위 방식의 Secret jenkins-admin-password 키로 꺼내지 않고, 컨트롤러 파드에 마운트된 파일에서 바로 읽습니다. 지금 설치했다면 아래 명령을 먼저 시도해 보시기 바랍니다.
kubectl exec --namespace default -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo
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. 2026년 기준으로 다시 보면 달라진 점
이 글은 2020년에 썼고, 그 사이 젠킨스 helm 차트 쪽이 몇 가지 바뀌었습니다. jenkinsci/helm-charts 공식 README 를 직접 확인하고 정리합니다.- 차트 저장소: 당시 안내했던
github.com/helm/charts(stable 차트 모음)는 2020년 11월에 보관(archived) 처리됐습니다. 지금은jenkinsci/helm-charts저장소와https://charts.jenkins.io저장소 URL을 씁니다. - 초기 비밀번호 확인: 위 1번 섹션에서 정리했듯, Secret을 jsonpath로 직접 꺼내는 방식에서
kubectl exec로 마운트된 파일을 읽는 방식으로 바뀌었습니다. - 사용자 관리 방식: 이 글은 Jenkins 관리 화면에서 유저를 하나씩 추가하는 절차를 다뤘는데, 지금 공식 문서는 Jenkins Configuration as Code(JCasC)로 보안 영역(security realm)과 권한(authorization)을 values.yaml에 코드로 선언하는 방식을 권장합니다. 클러스터를 다시 설치해도 유저·권한 설정이 그대로 복원되길 원한다면 이쪽을 검토해 보시기 바랍니다.
6. 마치며…
이번시간에는 Jekins의 유저 관리에 대해서 알아보았습니다. 유저를 제어 함으로써 job의 수행혹은 삭제로부터 ACL을 제어 할 수 있습니다. 애초에 helm을 기본으로 설치하여 난수의 admin 패스워드를 어떻게 변경할지 알아보는데서 시작이 되었지만 jenkins의 유저관리를 알아 볼 수 있는 유익한 시간이였던 것 같습니다. 다음시간에는 jenkins의 유용한 플러그인들에 대해서 정리를 하는 시간을 갖도록 하겠습니다. AI 도구로 초안을 만들고 직접 실행·검증한 내용입니다.함께 보면 좋은 글
새 글이 올라오면 Threads @wonizz.ai 에도 올립니다. 팔로우해 두면 피드에서 바로 볼 수 있습니다.