신뢰할 수 있는 콘텐츠에 대한 이미지 서명 Container Registry
IBM Cloud® Container Registry에서는 신뢰할 수 있는 컨텐츠 기술을 제공하므로 이미지에 서명하여 레지스트리 네임스페이스에 있는 이미지의 무결성을 보장할 수 있습니다.
서명된 이미지를 가져오고 푸시하여 CI(Continuous Integration) 도구와 같이 올바른 당사자가 이미지를 푸시했는지 확인할 수 있습니다.
Red Hat® 서명을 사용하여 이미지에 서명할 수 있습니다.
Red Hat 서명을 사용하여 이미지 서명
다양한 도구를 사용하여 이미지에 대한 Red Hat 서명을 만들 수 있습니다. IBM Cloud Container Registry에서 지원하는 Red Hat 서명 확장 API를 사용하여 신뢰할 수 있는 컨텐츠의 서명된 이미지를 저장할 수 있습니다.
다음 도구를 사용하여 Red Hat 서명을 작성할 수 있습니다.
Skopeo를 사용하여 이미지에 서명
사용하려면 Skopeo 를 사용하여 이미지에 서명하려면 비공개 GNU Privacy Guard(GnuPG 또는 GPG) ID를 생성한 다음 skopeo
명령을 실행해야 합니다.
다음 예제에 Skopeo 인증은 포함되어 있지 않습니다.
-
GnuPG ID를 작성하려면 다음 명령을 실행하십시오.
gpg --generate-key
-
이미지에 서명하려면 GnuPG ID를 사용하여 동시에 이미지를 푸시하고 서명하십시오. 여기서
YOUR_EMAIL
은 GnuPG, 에 가입할 때 사용한 이메일 주소이고REPOSITORY:TAG
은 리포지토리 및 태그이며IMAGE
은<region><namespace><repository>:<tag>
형식의 이미지 이름이고<region>
은 지역 이름,<namespace>
은 네임스페이스 이름,<repository>:<tag>
은 리포지토리 및 태그입니다.이미지의 이름을 찾으려면
ibmcloud cr image-list
를 실행하십시오. 저장소 열(repository
)과 태그 열(tag
)의 컨텐츠를 콜론(:
)으로 구분해서 조합하여<repository>:<tag>
형식으로 이미지 이름을 작성하십시오. 이미지 나열 명령이 시간 초과되는 경우 이미지를 나열할 때 시간 초과되는 이유는 무엇인가요? 를 참조하세요.skopeo --insecure-policy copy --sign-by YOUR_EMAIL docker-daemon:REPOSITORY:TAG docker://IMAGE
예를 들어
YOUR_EMAIL
은 GnuPG 이메일 주소(user@email.com
),bluebird:build1
은 리포지토리 및 태그,us.icr.io/birds/bluebird:build1
은 이미지 이름입니다.skopeo --insecure-policy copy --sign-by user@email.com docker-daemon:bluebird:build1 docker://us.icr.io/birds/bluebird:build1
macOS macOS, 에서
Error copying image to the remote destination: Error writing signatures: mkdir /var/lib/containers/sigstore: permission denied
오류가 발생하면--registries.d
옵션으로 명령을 실행하여 올바른 서명 저장소가 사용되도록 레지스트리 구성에 대한 내부 기본값을 재정의합니다.skopeo --registries.d . --insecure-policy copy --sign-by user@email.com docker-daemon:us.icr.io/birds/bluebird:build1 docker://us.icr.io/birds/bluebird:build1
LinuxmacOS Linux® 및 macOS, 에서 도구의 기본 구성은 서명을 로컬에 저장하는 것입니다. 서명을 로컬로 저장하는 경우 해당 서명이 레지스트리에 존재하지 않기 때문에 서명 확인에 실패할 수 있습니다. 이 문제점을 수정하기 위해 구성 파일을
수정하거나 삭제할 수 있습니다. 구성은 Linux® 에 저장되며 /etc/containers/registries.d/default.yaml
에 저장됩니다. macOS의 경우 구성 파일이 /usr/local/etc/containers/registries.d/default.yaml
에 저장됩니다. macOS, 홈브루 패키지 관리자를 사용하여 Skopeo 을 설치한 경우 구성 파일은 Apple silicon 의 경우 /opt/homebrew/Cellar/etc/containers/registries.d/default.yaml
, 인텔의 경우 /usr/local/Cellar/etc/containers/registries.d/default.yaml
에
있을 수 있습니다.
Podman을 사용하여 이미지 서명
Podman을 사용하여 이미지에 서명할 수 있습니다. 자세한 내용은 Podman.
Red Hat OpenShift CLI를 사용하여 이미지 서명
Red Hat OpenShift CLI를 사용하여 이미지에 서명할 수 있습니다. 자세한 내용은 Red Hat OpenShift CLI를 참조하세요. Red Hat® OpenShift® CLI는 oc
명령을 사용합니다.