IBM Cloud Docs
GPG키 생성

GPG키 생성

IBM Cloud DevSecOps 지속적 통합 툴체인에 의해 빌드되고 인벤토리에 기록된 아티팩트는 프로덕션에 배포하기 전에 서명을 받아야 합니다. 지속적 통합 파이프라인은 아티팩트 서명 기능을 제공하는 기본 도구로 Skopeo 을 기본 도구로 사용하여 아티팩트 서명 기능을 제공합니다.

자동 또는 수동으로 DevSecOps 지속적 통합 파이프라인에서 사용하는 GPG 키를 생성하고 저장합니다.

GPG 키 자동 생성

이 방법을 사용하여 템플리트는 GPG키를 생성합니다. 다음 단계를 완료하여 키 생성을 위한 이름이메일 을 입력하십시오.

  1. 아티팩트 서명 으로 이동하여 새로 작성을 클릭하십시오.

    이미지 서명
    아티팩트 서명

  2. 창에서 이름이메일 필드는 도구 체인 이름 및 이메일 ID로 미리 채워집니다. GPG키 요구사항을 반영하도록 이름 및 이메일 ID를 변경하십시오. 상자를 선택하여 비밀 정보 제공자에 키를 저장할 수도 있습니다.

    이름 및 이메일 변경
    이름 및 이메일 변경

  3. 키가 생성된 후 참조를 위해 복사할 수 있습니다.

    이미지 서명 인증서
    그림 3아티팩트 서명 인증서

복사된 키는 base64 형식입니다. 키를 키 링으로 가져오기 전에 키를 해독하세요. echo <encoded_gpg_key> | base64 --decode

수동으로 GPG 키 생성

GPG 명령행 도구 다운로드 및 설치

운영 체제에 맞는 GPG 명령줄 도구를 다운로드하여 설치합니다. GnuPG 바이너리 릴리스 섹션으로 이동하여 운영 체제용 도구를 다운로드하세요.

Mac OS X

  • Mac GPG를 다운로드하여 설치하십시오.
  • 설치된 GPG의 버전을 확인하십시오. 명령행에서 다음 명령을 실행하십시오.
$ gpg --version
gpg (GnuPG) 2.3.1
libgcrypt 1.9.3
Copyright (C) 2021 Free Software Foundation, Inc.
  • 2.3.1 이전 버전의 GPG의 경우 --passphrase='' 옵션을 사용하지 못할 수 있습니다. 이 경우 프롬프트가 표시되면 Enter 를 눌러 다음 대화 상자에서 비밀번호를 생략할 수 있습니다.

Windows™

  • 다운로드 및 설치 GitBash ( base64 인코딩에 필요).
  • 설치된 GPG의 버전을 확인하십시오. Git bash 명령 프롬프트에서 다음 명령을 실행하십시오.
$ gpg --version
gpg (GnuPG) 2.2.27
libgcrypt 1.8.7
Copyright (C) 2021 g10 Code GmbH

GPG 키 생성

generate-key 명령이 비밀번호 문구를 요청하는 대화 상자를 여는 경우 비밀번호 문구 및 필드를 비워 두십시오. 이는 이미지 서명의 (스코페오) 유틸리티의 제한 사항으로, 파이프라인이 암호로 보호되는 개인 키를 허용할 수 없는 경우입니다. 만드는 동안 암호를 제공하면 파이프라인이 인증서를 디코딩하지 못하고 이미지 서명 단계에서 파이프라인이 실패합니다. 이는 GIT 태그 서명에도 적용된다는 점에 유의하세요.

Mac OS X 그리고 Linux™

쉘 프롬프트에서 다음 명령을 실행하십시오.

gpg --pinentry-mode loopback --passphrase='' --generate-key
  • 이름 및 이메일 주소를 입력하십시오.
  • 키 생성을 시작하려면 O를 입력합니다.
  • 키가 생성되면 옵션 O를 선택합니다.

Windows™

GPG 버전 > 1.4

Git bash 명령 프롬프트에서 다음 명령을 실행하십시오.

gpg --pinentry-mode loopback --passphrase='' --generate-key
  • 실명 필드에 이름을 입력합니다.
  • 이메일 주소에 이메일 주소를 입력하십시오.
  • O를 입력하여 키 생성을 시작합니다.
  • 키가 생성되면 옵션 O를 선택합니다.

GPG 버전 < 1.4 (또는 이전 명령에서 실패한 경우)

Git bash 명령 프롬프트에서 다음 명령을 실행하십시오.

gpg --gen-key
  • 키 종류: 기본 옵션 선택 (1) RSA 및 RSA (기본값)
  • 키 크기: 기본값 유지(2048)
  • 키 유효성: 기본값을 0으로 유지하십시오. 이는 값 키 0이 만기되지 않기 때문입니다.
  • 선택 확인: Y를 입력합니다.
  • 실제 이름 필드에 사용자의 이름을 입력하십시오.
  • 이메일 주소에 이메일 주소를 입력하십시오.
  • 키 생성을 시작하려면 O를 입력합니다.
  • 키가 생성되면 옵션 O를 선택합니다.

키 작성 확인

gpg 키가 작성되었는지 확인하십시오. 명령 프롬프트에서 다음 명령을 실행합니다:

gpg --list-keys

키가 나열되어 있는지 확인하십시오. Windows의 예제 출력:

$ gpg --list-keys
/c/Users/FredSmith/.gnupg/pubring.gpg
-------------------------------------
pub   2048R/1BB354B5 2021-06-08
uid   Fred Smith <fred@company.com>
sub   2048R/F91C39A6 2021-06-08

키 내보내기

이 단계는 선택사항입니다. gpg 키를 내보낼 수 있도록 이 명령을 실행하십시오.

gpg --export-secret-key <Email Address>

반출되는 원시 키는 직접 복사되지 않아야 합니다. 이 단계에서 생성된 키는 Key Protect 인스턴스 또는 Secrets Manager 인스턴스에 안전하게 저장하는 것이 좋습니다. 세부사항은 다음 절을 참조하십시오.

키를 저장하십시오.

다음 방법 중 하나로 CI 파이프라인에 GPG 키를 제공해야 합니다.

  • IBM® Key Protect for IBM Cloud®에 저장됨
  • IBM Cloud® Secrets Manager에 저장됨
  • CI 도구 체인에 직접 저장됨

가져오기 실패로 인한 CI 파이프라인 서명 오류를 방지하기 위해 키가 올바른 형식으로 복사되었는지 확인하십시오. 다음 명령에서 pbcopy ( Mac OS X ) 또는 clip (Windows Git bash)를 사용하여 주요 콘텐츠를 클립보드에 복사합니다.

Key Protect에 키를 저장하십시오.

GPG 키를 클립보드로 내보내고 복사하십시오.

Key Protect 인스턴스에 저장하기 전에 GPG 키를 이중 base64 인코딩해야 합니다.

OS X

gpg --export-secret-key <Email Address> | base64 | base64 | pbcopy

Windows™

gpg --export-secret-key <Email Address> | base64 -w0 | base64 -w0 | clip

Linux™

gpg --export-secret-key <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 인코딩이 필요합니다.

GPG 키를 클립보드로 내보내고 복사하십시오.

OS X

gpg --export-secret-key <Email Address> | base64 | pbcopy

Windows™

gpg --export-secret-key <Email Address> | base64 -w0 | clip

Linux™

gpg --export-secret-key <Email Address> | base64
  1. IBM Cloud 콘솔에서 이전 단계를 통해 생성된 GPG 키를 저장할 Secrets Manager 인스턴스를 선택하십시오.

  2. 추가+ 아이콘을 클릭하여 인스턴스에 새 키를 추가하십시오.

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

    기타 비밀 유형
    기타 비밀 유형

  4. 키 유형 선택옵션에 대해 표준 키 유형을 선택하십시오.

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

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

    키를 복사하여 비밀값 필드에 붙여넣을 때 키 끝에 여분의 줄이 없는지 확인하세요.

  7. 추가 아이콘을 클릭하여 Key Protect 인스턴스에 키를 추가하십시오.

    키 추가
    키 추가

Secrets Manager에 관한 자세한 정보는 Secrets Manager 시작하기를 참조하십시오.

개인 키를 내보내고 CI 파이프라인에 직접 저장하십시오.

이 접근 방식은 권장되지 않으며 실험용으로만 사용해야 합니다. 키를 저장할 때는 Key Protect 또는 Secrets Manager 을 사용하세요. 자세한 정보는 시크릿 저장소 구성 을 참조하십시오.

보안 파이프라인 특성으로 저장하기 전에 GPG 키의 단일 base64 인코딩이 필요합니다.

Key Protect 또는 Secrets Manager 인스턴스에 GPG 키를 안전하게 저장하십시오.

Mac OS X / Linux™

gpg --export-secret-key <Email Address> | base64

Windows™

gpg --export-secret-key <Email Address> | base64 -w0