이미지 서명 및 검증

이미지 서명 및 검증 (Image Signing and Validation)

이 페이지에서는 Cosign을 사용해 Istio 이미지 아티팩트의 출처를 검증하는 방법을 배워요.

출처: Istio 문서

본문

이 페이지는 Cosign을 사용해 Istio 이미지 아티팩트의 출처(provenance)를 검증하는 방법을 설명해요.

Cosign은 sigstore 프로젝트의 일부로 개발된 도구로, 컨테이너 이미지 같은 서명된 Open Container Initiative(OCI) 아티팩트의 서명과 검증을 간소화해요.

Istio 1.12부터 모든 공식 게시 컨테이너 이미지는 릴리스 프로세스의 일부로 서명돼요. 그러면 최종 사용자들은 아래 설명된 프로세스로 이 이미지들을 검증할 수 있어요.

이 프로세스는 수동 실행 또는 아티팩트의 자동 검증을 위한 빌드·배포 파이프라인과의 통합에 모두 적합해요.

사전 요구사항

시작하기 전에 다음을 해주세요.

  1. 아키텍처에 맞는 최신 Cosign 빌드와 그 서명을 다운로드하세요.
  2. cosign 바이너리 서명을 검증하세요.
$ openssl dgst -sha256 \
    -verify <(curl -ssL https://raw.githubusercontent.com/sigstore/cosign/main/release/release-cosign.pub) \
    -signature <(cat /path/to/cosign.sig | base64 -d) \
    /path/to/cosign-binary
  1. 바이너리를 실행 가능하게 만들고(chmod +x) PATH의 위치로 옮기세요.

이미지 검증

버전 1.31.1 이상은 https://istio.io/misc/istio-key-v2.pub 공개 키로 서명돼요. 이전 릴리스에는 https://istio.io/misc/istio-key.pub을 사용하세요.

컨테이너 이미지를 검증하려면 다음을 수행하세요.

$ ./cosign-binary verify --key <public key url> docker.io/istio/pilot:1.31.0

이 프로세스는 Istio 빌드 인프라로 빌드된 모든 릴리스 이미지 또는 릴리스 후보에 대해 작동해요.

출력이 포함된 예시:

$ cosign verify --key "https://istio.io/misc/istio-key-v2.pub" docker.io/istio/pilot:1.31.1


Verification for docker.io/istio/pilot:1.31.1 --
The following checks were performed on each of these signatures:
  - The cosign claims were validated
  - The signatures were verified against the specified public key
  - Any certificates were verified against the Fulcio roots.

[{"critical":{"identity":{"docker-reference":"docker.io/istio/pilot"},"image":{"docker-manifest-digest":"sha256:c37fd83f6435ca0966d653dc6ac42c9fe5ac11d0d5d719dfe97de84acbf7a32d"},"type":"cosign container image signature"},"optional":null}]

더 알아보기 (Learn more)