GitLab Helm 차트 출처

GitLab Helm 차트의 무결성과 출처를 검증하려면 Helm provenance를 사용합니다.

GitLab Helm 차트는 GNUPG 키 페어로 서명됩니다. 키 페어의 공개 부분은 차트를 확인하기 전에 다운로드하고, 필요한 경우 내보내야 합니다. 자세한 GPG 키를 관리하는 방법은 GNU Privacy Handbook에 자세히 안내되어 있습니다.

GitLab Helm 차트 서명 키 다운로드 및 내보내기

GitLab Helm 차트의 공식 공개 서명 키를 사용하여 GitLab Helm 차트의 출처를 확인해야 합니다. 먼저 키를 다운로드한 다음 로컬 키링으로 내보내야 합니다.

공개 서명 키 다운로드

공식 GitLab Helm 차트 서명 키를 다운로드하려면 다음 명령을 실행합니다:

gpg --receive-keys --keyserver hkps://keys.openpgp.org '5E46F79EF5836E986A663B4AE30F9C687683D663'

예시:

$ gpg --receive-keys --keyserver hkps://keys.openpgp.org '5E46F79EF5836E986A663B4AE30F9C687683D663'
gpg: key E30F9C687683D663: public key "GitLab, Inc. Helm charts <distribution@gitlab.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1

이 명령은 키를 다운로드하고 기본 키링에 추가합니다. GitLab Helm 차트 서명 키를 별도의 키링에 넣어야 합니다. --no-default-keyring --keyring <keyring> gpg 옵션을 사용하여 GitLab 차트 서명 키만 담은 새로운 키링을 만들 수 있습니다.

예시:

$ gpg --keyring $HOME/.gnupg/gitlab.pubring.kbx --keyserver hkps://keys.openpgp.org --no-default-keyring --receive-keys '5E46F79EF5836E986A663B4AE30F9C687683D663'
gpg: keybox '$HOME/.gnupg/gitlab.pubring.kbx' created
gpg: key E30F9C687683D663: public key "GitLab, Inc. Helm charts <distribution@gitlab.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1

서명 키 내보내기

기본적으로 GnuPG v2는 Helm 차트 출처 확인과 호환되지 않는 형식으로 키링을 저장합니다. Helm 차트를 확인하기 전에 먼저 키링을 레거시 형식으로 내보내야 합니다. 적절한 형식으로 키링을 내보내려면 다음 중 하나를 사용합니다:

  • 기본 키링에서 내보내기:

    gpg --export --output gitlab.pubring.gpg '5E46F79EF5836E986A663B4AE30F9C687683D663'
    
  • 별도의 키링에서 키 내보내기를 위해 --no-default-keyring --keyring <keyring> 옵션 사용:

    gpg --export --output $HOME/.gnupg/gitlab.pubring.gpg  --keyring $HOME/.gnupg/gitlab.pubring.kbx  --no-default-keyring '5E46F79EF5836E986A663B4AE30F9C687683D663'
    

차트 확인

GitLab Helm 차트는 다음 중 하나로 확인할 수 있습니다:

  • 차트를 다운로드하고 helm verify를 실행합니다.
  • 차트 설치 중 --verify 옵션을 사용합니다.

다운로드한 차트 확인

helm verify 명령을 사용하여 다운로드한 차트를 확인할 수 있습니다. 검증 가능한 차트를 다운로드하려면 helm pull --prov 명령을 사용합니다. 예를 들어:

helm pull --prov gitlab/gitlab

--version 옵션을 사용하여 특정 차트 버전을 다운로드할 수 있습니다. 예를 들어:

helm pull --prov gitlab/gitlab --version 7.9.0

그런 다음 helm verify 명령을 사용하여 다운로드한 차트를 확인할 수 있습니다.

예를 들어:

helm verify --keyring $HOME/.gnupg/gitlab.pubring.gpg gitlab-7.9.0.tgz
Signed by: GitLab, Inc. Helm charts <distribution@gitlab.com>
Using Key With Fingerprint: 5E46F79EF5836E986A663B4AE30F9C687683D663
Chart Hash Verified: sha256:789ec56d929c7ec403fc05249639d0c48ff6ab831f90db7c6ac133534d0aba19

helm pull 명령에 --verify 옵션과 함께 helm pullhelm verify 명령을 결합할 수 있습니다.

예를 들어:

helm pull --prov gitlab/gitlab --verify --keyring $HOME/.gnupg/gitlab.pubring.gpg
Signed by: GitLab, Inc. Helm charts <distribution@gitlab.com>
Using Key With Fingerprint: 5E46F79EF5836E986A663B4AE30F9C687683D663
Chart Hash Verified: sha256:789ec56d929c7ec403fc05249639d0c48ff6ab831f90db7c6ac133534d0aba19

설치 중 차트 검증

helm install 또는 helm upgrade 명령에 --verify 옵션을 사용하여 설치 중에 차트를 검증할 수 있습니다.

  • 예를 들어, helm install:

    helm install --verify --keyring $HOME/.gnupg/gitlab.pubring.gpg gitlab gitlab/gitlab --set certmanager-issuer.email=<me@example.com> --set global.hosts.domain=<example.com>
    
  • 예를 들어, helm upgrade:

    helm upgrade --install --verify --keyring $HOME/.gnupg/gitlab.pubring.gpg gitlab gitlab/gitlab --set certmanager-issuer.email=<me@example.com> --set global.hosts.domain=<example.com>