IBM Cloud Docs
신뢰할 수 있는 콘텐츠에 대한 이미지 서명 Container Registry

신뢰할 수 있는 콘텐츠에 대한 이미지 서명 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 인증은 포함되어 있지 않습니다.

  1. GnuPG ID를 작성하려면 다음 명령을 실행하십시오.

    gpg --generate-key
    
  2. 이미지에 서명하려면 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 명령을 사용합니다.