소개
Jenkins 자격 증명을 사용하면 비밀번호, 토큰 및 키를 작업 스크립트에 직접 입력하는 대신 Jenkins 내부에 안전하게 저장할 수 있습니다. 작업 (Job) 은 ID 를 통해 해당 자격 증명을 참조할 수 있습니다.
이번 실습에서는 Jenkins 대시보드를 사용하여 전역 자격 증명 저장소를 열고, 사용자 이름/비밀번호 자격 증명을 생성하며, Jenkins 가 비밀 정보를 마스킹하고 암호화하는지 확인합니다. 또한, ID 를 변경하지 않고 자격 증명을 업데이트하는 방법도 실습합니다.
전역 자격 증명 저장소 열기
이 단계에서는 대시보드에서 Jenkins 자격 증명 저장소를 찾습니다. Jenkins 는 저장소와 도메인별로 자격 증명을 구성합니다. 초보자 워크플로우에서 가장 일반적으로 사용되는 곳은 System 저장소와 Global 도메인입니다.
데스크톱 인터페이스를 엽니다. Firefox 가 자동으로 Jenkins 를 엽니다. 만약 열리지 않는다면 http://localhost:8080으로 접속하세요.
Jenkins 대시보드에서 다음을 수행합니다:
왼쪽 사이드바에서 Manage Jenkins를 클릭한 다음 Credentials를 클릭합니다. 자격 증명 페이지에서 System을 클릭한 후 Global을 클릭합니다.
페이지 제목이 Global이어야 하며, 해당 자격 증명이 모든 곳에서 사용 가능하다는 설명이 표시되어야 합니다.

터미널에서 다음 명령어를 실행하여 전역 자격 증명 페이지에 접근 가능한지 확인합니다:
curl -fsS http://localhost:8080/manage/credentials/store/system/domain/_/ | grep -o 'Credentials that should be available everywhere' | tee /home/labex/project/credential-storage-page.txt
다음과 같은 결과가 출력되어야 합니다:
Credentials that should be available everywhere
사용자 이름 및 비밀번호 자격 증명 추가
이 단계에서는 Jenkins 양식을 사용하여 자격 증명을 생성합니다. 작업 및 파이프라인에서 나중에 이 ID 를 참조하므로 자격 증명 ID 는 매우 중요합니다.
Global 자격 증명 페이지에서 Add Credentials를 클릭합니다.
양식에 다음 값을 입력합니다:
Kind:Username with passwordScope:GlobalUsername:guided-userPassword:guided-password-v1ID:guided-credsDescription:Guided lab credential for Jenkins storage
Create를 클릭합니다.
Jenkins 가 Global 도메인 페이지로 돌아오면 guided-creds라는 이름의 자격 증명이 생성된 것을 볼 수 있습니다. Jenkins 는 사용자 이름은 표시하지만 비밀번호는 마스킹 처리합니다.

Jenkins 의 비밀 정보 저장 방식 확인
이 단계에서는 Jenkins 가 디스크에 기록한 내용을 검사합니다. 이는 일상적인 Jenkins 작업에서 자주 수행하는 작업은 아니지만, 왜 자격 증명이 작업 스크립트의 일반 텍스트 비밀번호보다 안전한지 이해하는 데 도움이 됩니다.
터미널에서 Jenkins 의 credentials.xml 파일 중 관련 행만 출력합니다:
docker exec jenkins sh -lc "grep -n -E '<id>guided-creds</id>|<username>guided-user</username>|<password>' /var/jenkins_home/credentials.xml" | tee /home/labex/project/credential-file-lines.txt
출력 결과에는 자격 증명 ID 와 사용자 이름이 포함되어야 합니다. 비밀번호 행에는 원본 텍스트인 guided-password-v1 대신 중괄호로 감싸진 암호화된 Jenkins 비밀 정보가 포함되어 있어야 합니다.
출력 예시:
...<id>guided-creds</id>
...<username>guided-user</username>
...<password>{...}</password>
Firefox 에서 Jenkins Global 도메인 페이지로 돌아갑니다. 자격 증명 행에서도 비밀번호가 실제 값이 아닌 마스킹된 텍스트로 표시되는 것을 확인할 수 있습니다.
ID 변경 없이 자격 증명 업데이트
이 단계에서는 동일한 자격 증명 ID 를 유지하면서 Jenkins 대시보드를 통해 자격 증명 설명을 업데이트합니다. 이는 초보자가 가장 먼저 알아야 할 핵심 개념을 보여줍니다. 즉, 작업은 guided-creds와 같은 안정적인 ID 를 참조해야 하며, 관리자는 나중에 자격 증명 메타데이터를 조정할 수 있다는 점입니다.
Global 자격 증명 페이지에서:
guided-creds 자격 증명을 클릭한 다음 Update credential을 클릭합니다. Username, Password, ID는 그대로 둡니다. Description을 Updated guided lab credential로 변경한 후 Save를 클릭합니다.
저장 후 Global 도메인 페이지로 돌아갑니다. 동일한 자격 증명 ID 가 유지되지만 설명이 Updated guided lab credential로 변경된 것을 확인할 수 있습니다.

다음 명령어를 실행하여 Jenkins 가 여전히 동일한 ID 를 유지하고 있고 설명이 업데이트되었는지 확인합니다:
docker exec jenkins sh -lc "grep -n -E '<id>guided-creds</id>|<description>Updated guided lab credential</description>|<password>' /var/jenkins_home/credentials.xml" | tee /home/labex/project/updated-credential-lines.txt
비밀번호는 여전히 암호화된 상태여야 하며, 원본 텍스트 guided-password-v1은 나타나지 않아야 합니다.
요약
Jenkins 대시보드를 사용하여 전역 자격 증명 저장소를 열고, 사용자 이름/비밀번호 자격 증명을 생성했으며, Jenkins 가 비밀 정보를 마스킹하고 암호화하는 것을 확인했습니다. 또한, 안정적인 ID 를 유지하면서 자격 증명 메타데이터를 업데이트하는 방법도 실습했습니다.