Jenkins 복호화
저번 게시글에서 git-secret을 이용해 암호화한 파일을 Jenkins에서 빌드하기 전 복호화를 진행하는 방법에 대해 알아보겠습니다.
3. secret-keys export & Jenkins credentials 등록
$ gpg -a --export-secret-keys email@email.com > gpg-secret.key
$ gpg --export-ownertrust > gpg-ownertrust.txt
위 명령어로 복호화에 필요한 key파일과 ownertrust 파일을 export하고
Jenkins > Jenkins 관리 > Manage Credential > System 아이콘 클릭
Global credentials (unrestricted) 클릭 > Add Credentials 클릭
(1) gpg_secret
Kind : SSH Username with private key 선택
Private Key : Enter directly 선택 후 Add 선택 후 gpg에서 export한 gpg-secret.key 전문 복사 후 붙여넣기
(2) gpg_passphrase
Kind : SSH Username with private key 선택
Private Key : Enter directly 선택 후 Add 선택 후 앞서 gpg key 발급할 때 입력했던 비밀번호 입력하기
(3) gpg_trust
Kind : Secret file 선택
파일 선택 : gpg에서 export한 gpg-ownertrust.txt 파일 선택
(4) USER
Kind : Username with password 선택
Username : 앞서 gpg key 발급할 때 입력했던 Email address 입력하기
Password : 앞서 gpg key 발급할 때 입력했던 비밀번호 입력하기
4. Jenkins 빌드 시 Credentials 사용하여 복호화
(1) 빌드 환경 구성시 Use secret test(s) or file(s) 클릭 후 앞서 등록했던 Credentials 바인딩
(2) Build Steps에서 빌드 전 Execute shell 을 이용해서 바인딩된 변수로 암호화된 파일 복호화
위 쉘스크립트에서 주석처리된 부분은 처음 1번만 실행 후 이후에는 주석처리하시면 됩니다.( 주석처리 없을 시 이미 존재한다고 에러 발생 )
앞서 gpg export한 파일들을 모두 import 후 등록한 이메일로 사용자 등록(tell) 후 복호화(reveal)할 때 입력했던 비밀번호 사용해서 복호화 진행합니다.
복호화 이후 빌드 진행하시면 정상적으로 빌드됩니다.
이상입니다. 지금까지 읽어주셔서 감사합니다.