서명 검증을 위한 공개 키 얻기

GPG 공개 키를 사용하여 CD(Continuous Deployment) 파이프라인에서 서명된 이미지의 서명을 확인합니다.

다음과 같이 GPG 공개 키를 얻을 수 있습니다.

  • CI(지속적인 통합) 파이프라인을 사용합니다.
  • 로컬 컴퓨터를 사용합니다.

CI(Continuous Integration) 파이프라인을 사용하여 GPG 공개 키 가져오기

  1. 공개 키를 얻으려면 CI 파이프라인에 환경 변수 print-code-signing-public-key 값 1로 추가합니다. CI 파이프라인을 실행한 후에는 GPG 공개 키가 콘솔의 build-sign-artifact 단계에 인쇄됩니다. 그런 다음 다음 명령을 실행하여 공개 키를 파일에 복사하고 base64 형식으로 인코딩할 수 있습니다.

    cat copied_key.txt | base64
    
  2. 인코딩된 키를 지속적인 배포(CD) 파이프라인에 복사합니다.

로컬 컴퓨터를 사용하여 GPG 공개 키 가져오기

키링에 GPG 개인 키가 있으면 공개 키를 직접 내보낼 수 있습니다.

  1. 귀하의 기기에 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]
    
  2. 컴퓨터에 GPG 키가 있으면 다음 명령을 실행하여 GPG 공개 키를 내보냅니다.

    gpg --armor --export  <Email Address>
    
    
        -----BEGIN PGP PUBLIC KEY BLOCK-----
        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
        ftfswLBW+es4fQ==
        =0FYC
        -----END PGP PUBLIC KEY BLOCK-----
    
  3. 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
    
  1. IBM Cloud 콘솔에서 생성한 GPG 키를 저장할 Key Protect 인스턴스를 선택합니다.

  2. 추가 아이콘 추가 아이콘을 클릭하여 인스턴스에 새 키를 추가합니다.

  3. 나만의 키 가져오기 옵션을 선택합니다.

  4. 키 유형을 표준 키로 선택합니다.

  5. 키 이름 필드에 적절한 이름을 입력합니다. 저장된 GPG 키는 나중에 이 이름을 사용하여 검색할 수 있습니다.

  6. 키 자료 필드에서 내보낸 키를 복사합니다.

    키를 복사하여 키 자료 필드에 붙여넣을 때 키 끝에 추가 줄이 없는지 확인하세요.

  7. 고급 옵션 섹션을 확장하고 기본값으로 키링 선택 옵션을 선택합니다.

  8. 키 추가를 클릭하여 키 보호에 키를 추가합니다.

    키 보호
    에 키를 추가합니다. 키 보호
    에 키를 추가합니다.

Key Protect 에 대한 자세한 내용 은 Key Protect 정보를 참조하세요.

Secrets Manager에 키를 저장하십시오.

Secrets Manager 인스턴스에 저장하기 전에 GPG 키를 단일 base64 로 인코딩해야 합니다.

  1. 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
      
  2. IBM Cloud 콘솔에서 이전 단계에서 생성한 GPG 키를 저장할 Secrets Manager 인스턴스를 선택합니다.

  3. 추가 아이콘 추가 아이콘을 클릭하여 인스턴스에 새 키를 추가합니다.

  4. 기타 비밀 유형 옵션을 선택합니다.

    다른 비밀 유형
    다른 비밀 유형

  5. 키 유형을 표준 키로 선택합니다.

  6. 이름 필드에 적절한 이름을 입력합니다. 저장된 GPG 키는 나중에 이 이름을 사용하여 검색할 수 있습니다.

  7. 비밀 값 으로 옵션을 선택하고 앞서 내보낸 키를 비밀 값 필드에 붙여넣습니다.

    키를 복사하여 비밀번호 필드에 붙여넣을 때 키 끝에 추가 줄이 없는지 확인하세요.

  8. 추가를 클릭하여 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