서명 검증을 위한 공개 키 얻기
GPG 공개 키를 사용하여 CD(Continuous Deployment) 파이프라인에서 서명된 이미지의 서명을 확인합니다.
다음과 같이 GPG 공개 키를 얻을 수 있습니다.
- CI(지속적인 통합) 파이프라인을 사용합니다.
- 로컬 컴퓨터를 사용합니다.
CI(Continuous Integration) 파이프라인을 사용하여 GPG 공개 키 가져오기
-
공개 키를 얻으려면 CI 파이프라인에 환경 변수
print-code-signing-public-key값 1로 추가합니다. CI 파이프라인을 실행한 후에는 GPG 공개 키가 콘솔의build-sign-artifact단계에 인쇄됩니다. 그런 다음 다음 명령을 실행하여 공개 키를 파일에 복사하고 base64 형식으로 인코딩할 수 있습니다.cat copied_key.txt | base64 -
인코딩된 키를 지속적인 배포(CD) 파이프라인에 복사합니다.
로컬 컴퓨터를 사용하여 GPG 공개 키 가져오기
키링에 GPG 개인 키가 있으면 공개 키를 직접 내보낼 수 있습니다.
-
귀하의 기기에 GPG 키링이 있는지 확인하세요. 키 링은 키를 그룹화하여 해당 그룹을 독립적으로 관리할 수 있도록 하는 것입니다. 자세한 내용은 키 링을 사용하여 키 그룹화를 참조하세요. 다음 명령을 실행하십시오.
gpg --list-keys /home/user/.gnupg/pubring.kbx ------------------------------- pub rsa3072 2021-04-15 [SC] [expires: 2023-04-15] 88DC11E8FDDF028F02E4184719D6C4C5990F144F uid [ unknown] user name <user.name@email.com> sub rsa3072 2021-04-15 [E] [expires: 2023-04-15] -
컴퓨터에 GPG 키가 있으면 다음 명령을 실행하여 GPG 공개 키를 내보냅니다.
gpg --armor --export <Email Address> -----BEGIN PGP PUBLIC KEY BLOCK----- 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 ftfswLBW+es4fQ== =0FYC -----END PGP PUBLIC KEY BLOCK----- -
GPG 공개 키를 내보낸 후
code-signing-certificate필드에 복사하기 전에base64형식으로 인코딩합니다.
키를 저장하십시오.
다음 방법 중 하나로 CD 파이프라인에 GPG 키를 제공합니다.
- IBM® Key Protect for IBM Cloud® 에 키를 저장합니다.
- IBM Cloud® Secrets Manager 에 키를 저장합니다.
- CI 툴체인에 키를 직접 저장합니다.
CI 파이프라인 서명 오류를 방지하기 위해 키가 올바른 형식으로 복사되었는지 확인하세요. 다음 섹션에 지정된 명령에서 pbcopy (OS X) 또는 clip (Windows Git bash)를 사용하여 주요 콘텐츠를 클립보드에 복사합니다.
Key Protect에 키를 저장하십시오.
Key Protect 인스턴스에 GPG 키를 저장하기 전에 base64 두 번 인코딩해야 합니다.
다음과 같이 GPG 키를 내보내고 클립보드에 복사합니다:
-
OS X
gpg --armor --export <Email Address> | base64 | base64 | pbcopy -
Windows
gpg --armor --export <Email Address> | base64 -w0 | base64 -w0 | clip -
Linux
gpg --armor --export <Email Address> | base64 | base64
-
IBM Cloud 콘솔에서 생성한 GPG 키를 저장할 Key Protect 인스턴스를 선택합니다.
-
추가 아이콘
클릭하여 인스턴스에 새 키를 추가합니다.
-
나만의 키 가져오기 옵션을 선택합니다.
-
키 유형을 표준 키로 선택합니다.
-
키 이름 필드에 적절한 이름을 입력합니다. 저장된 GPG 키는 나중에 이 이름을 사용하여 검색할 수 있습니다.
-
키 자료 필드에서 내보낸 키를 복사합니다.
키를 복사하여 키 자료 필드에 붙여넣을 때 키 끝에 추가 줄이 없는지 확인하세요.
-
고급 옵션 섹션을 확장하고 기본값으로 키링 선택 옵션을 선택합니다.
-
키 추가를 클릭하여 키 보호에 키를 추가합니다.
에 키를 추가합니다.
에 키를 추가합니다. 키 보호
Key Protect 에 대한 자세한 내용 은 Key Protect 정보를 참조하세요.
Secrets Manager에 키를 저장하십시오.
Secrets Manager 인스턴스에 저장하기 전에 GPG 키를 단일 base64 로 인코딩해야 합니다.
-
GPG 키를 클립보드로 내보내고 복사하십시오.
-
OS X
gpg --armor --export <Email Address> | base64 | pbcopy -
Windows
gpg --armor --export <Email Address> | base64 -w0 | clip -
Linux
gpg --armor --export <Email Address> | base64
-
-
IBM Cloud 콘솔에서 이전 단계에서 생성한 GPG 키를 저장할 Secrets Manager 인스턴스를 선택합니다.
-
추가 아이콘
클릭하여 인스턴스에 새 키를 추가합니다.
-
기타 비밀 유형 옵션을 선택합니다.
다른 비밀 유형 -
키 유형을 표준 키로 선택합니다.
-
이름 필드에 적절한 이름을 입력합니다. 저장된 GPG 키는 나중에 이 이름을 사용하여 검색할 수 있습니다.
-
비밀 값 으로 옵션을 선택하고 앞서 내보낸 키를 비밀 값 필드에 붙여넣습니다.
키를 복사하여 비밀번호 필드에 붙여넣을 때 키 끝에 추가 줄이 없는지 확인하세요.
-
추가를 클릭하여 Key Protect 인스턴스에 키를 추가합니다.
키 추가
키 추가
Secrets Manager에 대한 자세한 정보는 Secrets Manager 시작하기를 참조하십시오.
개인 키를 내보내고 CI 파이프라인에 직접 저장하십시오.
이 방법은 테스트에만 사용하세요. 키를 저장할 때는 keyprotect 또는 secrets manager 을 사용하세요.
보안 파이프라인 속성으로 저장하기 전에 GPG 키를 단일 base64 로 인코딩해야 합니다.
다음과 같이 Key Protect 또는 Secrets Manager 인스턴스에 GPG 키를 안전하게 저장합니다.
-
OS X 또는 Linux
gpg --armor --export <Email Address> | base64 -
Windows
gpg --armor --export <Email Address> | base64 -w0