8장. 컨테이너 이미지에 서명
GPG(GNU Privacy Guard) 서명 또는 sigstore 서명을 사용하여 컨테이너 이미지에 서명할 수 있습니다. 두 서명 기술은 일반적으로 모든 OCI 호환 컨테이너 레지스트리와 호환됩니다. Podman을 사용하여 원격 레지스트리로 푸시하기 전에 이미지에 서명하고 서명되지 않은 이미지가 거부되도록 소비자를 구성할 수 있습니다. 컨테이너 이미지에 서명하면 공급망 공격을 방지하는 데 도움이 됩니다.
GPG 키를 사용하여 서명하려면 서명을 배포하기 위해 별도의 조회 서버를 배포해야 합니다. 조회 서버는 모든 HTTP 서버가 될 수 있습니다. Podman 버전 4.2부터 컨테이너 서명의 sigstore 형식을 사용할 수 있습니다. GPG 키와 비교하면 sigstore 서명이 컨테이너 레지스트리에 저장되므로 별도의 조회 서버가 필요하지 않습니다.
8.1. GPG 서명을 사용하여 컨테이너 이미지에 서명 링크 복사링크가 클립보드에 복사되었습니다!
GPG(GNU Privacy Guard) 키를 사용하여 이미지에 서명할 수 있습니다.
사전 요구 사항
-
container-tools
모듈이 설치되어 있습니다. - GPG 툴이 설치되어 있어야 합니다.
조회 웹 서버가 설정되고 여기에 파일을 게시할 수 있습니다.
/etc/containers/registries.d/default.yaml
파일에서 시스템 전체 레지스트리 구성을 확인할 수 있습니다.lookaside-staging
옵션은 서명 작성을 위해 파일 경로를 참조하며 일반적으로 서명을 게시하는 호스트에 설정됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
프로세스
GPG 키를 생성합니다.
gpg --full-gen-key
# gpg --full-gen-key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 공개 키를 내보냅니다.
gpg --output <path>/key.gpg --armor --export <username@domain.com>
# gpg --output <path>/key.gpg --armor --export <username@domain.com>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 현재 디렉터리에서
Containerfile
을 사용하여 컨테이너 이미지를 빌드합니다.podman build -t <registry>/<namespace>/<image>
$ podman build -t <registry>/<namespace>/<image>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
registry
> , <namespace
> , <image
>를 컨테이너 이미지 식별자로 바꿉니다. 자세한 내용은 컨테이너 레지스트리를 참조하십시오.이미지에 서명하고 레지스트리에 내보냅니다.
podman push \ --sign-by <username@domain.com> \ <registry>/<namespace>/<image>
$ podman push \ --sign-by <username@domain.com> \ <registry>/<namespace>/<image>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고컨테이너 레지스트리에서 이동하는 동안 기존 이미지에 서명해야 하는 경우
skopeo copy
명령을 사용할 수 있습니다.선택 사항: 새 이미지 서명을 표시합니다.
(cd /var/lib/containers/sigstore/; find . -type f)
# (cd /var/lib/containers/sigstore/; find . -type f) ./<image>@sha256=<digest>/signature-1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로컬 서명을 조회 웹 서버에 복사합니다.
rsync -a /var/lib/containers/sigstore <user@registry-lookaside.example.com>:/registry-lookaside/webroot/sigstore
# rsync -a /var/lib/containers/sigstore <user@registry-lookaside.example.com>:/registry-lookaside/webroot/sigstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서명은 lookaside-staging
옵션(이 경우 /var/lib/containers/sigstore
디렉터리)에 의해 결정된 위치에 저장됩니다.
검증
- 자세한 내용은 GPG 이미지 서명 확인을 참조하십시오.