8.3. 개인 키를 사용하여 sigstore 서명으로 컨테이너 이미지에 서명
Podman 버전 4.2부터 컨테이너 서명의 sigstore 형식을 사용할 수 있습니다.
사전 요구 사항
-
container-tools
모듈이 설치되어 있습니다.
프로세스
sigstore 공개/개인 키 쌍을 생성합니다.
skopeo generate-sigstore-key --output-prefix myKey
$ skopeo generate-sigstore-key --output-prefix myKey
Copy to Clipboard Copied! 공개 및 개인 키
myKey.pub
및myKey.private
이 생성됩니다.참고skopeo generate-sigstore-key
명령은 RHEL 8.8에서 사용할 수 있습니다. 그렇지 않으면 업스트림 Cosign 프로젝트를 사용하여 공개/개인 키 쌍을 생성해야 합니다.cosign 툴을 설치합니다.
git clone -b v2.0.0 https://github.com/sigstore/cosign cd cosign make ./cosign
$ git clone -b v2.0.0 https://github.com/sigstore/cosign $ cd cosign $ make ./cosign
Copy to Clipboard Copied! 공개/개인 키 쌍을 생성합니다.
./cosign generate-key-pair
$ ./cosign generate-key-pair ... Private key written to cosign.key Public key written to cosign.pub
Copy to Clipboard Copied!
/etc/containers/registries.d/default.yaml
파일에 다음 내용을 추가합니다.docker: <registry>: use-sigstore-attachments: true
docker: <registry>: use-sigstore-attachments: true
Copy to Clipboard Copied! use-sigstore-attachments
옵션을 설정하면 Podman 및 Skopeo에서 컨테이너 sigstore 서명을 이미지와 함께 읽고 쓸 수 있으며 서명된 이미지와 동일한 리포지토리에 저장할 수 있습니다.참고/etc/containers/registries.d/default.yaml
파일에서 시스템 전체 레지스트리 구성을 편집할 수 있습니다./etc/containers/registries.d
디렉터리의 YAML 파일에서 registry 또는 repository 구성 섹션을 편집할 수도 있습니다. 모든 YAML 파일을 읽고 파일 이름은 임의의 파일일 수 있습니다. 단일 범위(default-docker, registry 또는 namespace)는/etc/containers/registries.d
디렉터리 내의 하나의 파일에만 존재할 수 있습니다.현재 디렉터리에서
Containerfile
을 사용하여 컨테이너 이미지를 빌드합니다.podman build -t <registry>/<namespace>/<image>
$ podman build -t <registry>/<namespace>/<image>
Copy to Clipboard Copied! 이미지에 서명하고 레지스트리에 내보냅니다.
podman push --sign-by-sigstore-private-key ./myKey.private <registry>/<namespace>/image>
$ podman push --sign-by-sigstore-private-key ./myKey.private <registry>/<namespace>/image>
Copy to Clipboard Copied! podman push
명령은 <registry>/<namespace>/<image
> 로컬 이미지를 <registry>/<namespace>/<image>로 원격 레지스트리에
푸시합니다.--sign-by-sigstore-private-key
옵션은myKey.private
개인 키를 <registry>/<namespace>/<image
> 이미지에 사용하여 sigstore 서명을 추가합니다. 이미지 및 sigstore 서명이 원격 레지스트리에 업로드됩니다.
컨테이너 레지스트리에서 이동하는 동안 기존 이미지에 서명해야 하는 경우 skopeo copy
명령을 사용할 수 있습니다.
검증
- 자세한 내용은 공개 키를 사용하여 sigstore 이미지 서명 확인을 참조하십시오.