Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

12.3. OpenShift CLI를 사용하여 이미지 서명 확인

oc adm verify-image-signature 명령을 사용하여 OpenShift Container Registry로 가져온 이미지의 서명을 확인할 수 있습니다. 이 명령은 공개 GPG 키를 사용하여 서명 자체를 확인하여 이미지 서명에 포함된 이미지 ID를 신뢰할 수 있는지 여부를 확인하고 제공된 예상 ID와 지정된 이미지의 ID(pull spec)와 일치시킵니다.

기본적으로 이 명령은 경로 ~/.gnupg 에 있는 공개 GPG 인증 키를 $GNUPGHOME/pubring.gpg 에 사용합니다. 기본적으로 이 명령은 확인 결과를 이미지 오브젝트로 다시 저장하지 않습니다. 이렇게 하려면 다음과 같이 --save 플래그를 지정해야 합니다.

참고

이미지 서명을 확인하려면 사용자에게 image-auditor 클러스터 역할이 있어야 합니다. 클러스터 관리자는 다음을 사용하여 이를 추가할 수 있습니다.

$ oc adm policy add-cluster-role-to-user system:image-auditor <user_name>
중요

잘못된 GPG 키 또는 유효하지 않은 ID와 함께 이미 확인된 이미지에 --save 플래그를 사용하면 저장된 확인 상태와 모든 서명이 제거되고 이미지가 확인되지 않습니다.

모든 서명을 실수로 삭제하지 않도록 하려면 --save 플래그 없이 명령을 실행하고 잠재적인 문제가 있는지 로그를 확인할 수 있습니다.

이미지 서명을 확인하려면 다음 형식을 사용합니다.

$ oc adm verify-image-signature <image> --expected-identity=<pull_spec> [--save] [options]

<pull_spec> 은 이미지 스트림을 설명하여 찾을 수 있습니다. 이미지 스트림 태그를 설명하여 <image> 를 찾을 수 있습니다. 다음 예제 명령 출력을 참조하십시오.

이미지 서명 확인 예

$ oc describe is nodejs -n openshift
Name:             nodejs
Namespace:        openshift
Created:          2 weeks ago
Labels:           <none>
Annotations:      openshift.io/display-name=Node.js
                  openshift.io/image.dockerRepositoryCheck=2017-07-05T18:24:01Z
Docker Pull Spec: 172.30.1.1:5000/openshift/nodejs
...

$ oc describe istag nodejs:latest -n openshift
Image Name:	sha256:2bba968aedb7dd2aafe5fa8c7453f5ac36a0b9639f1bf5b03f95de325238b288
...

$ oc adm verify-image-signature \
    sha256:2bba968aedb7dd2aafe5fa8c7453f5ac36a0b9639f1bf5b03f95de325238b288 \
    --expected-identity 172.30.1.1:5000/openshift/nodejs:latest \
    --public-key /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release \
    --save

참고

oc adm verify-image-signature 명령에서 알 수 없는 기관 오류로 서명된 x509: certificate signed 를 반환하는 경우 시스템에서 신뢰할 수 있는 CA 목록에 레지스트리의 CA(인증 기관)를 추가해야 할 수 있습니다. 다음 단계를 수행하여 이 작업을 수행할 수 있습니다.

  1. 클러스터에서 클라이언트 시스템으로 CA 인증서를 전송합니다.

    예를 들어 docker-registry.default.svc 의 CA를 추가하려면 /etc/docker/certs.d/docker-registry.default.svc\:5000/node-client-ca.crt 에 있는 파일을 전송합니다.

  2. CA 인증서를 /etc/pki/ca-trust/source/anchors/ 디렉터리에 복사합니다. 예를 들면 다음과 같습니다.

    # cp </path_to_file>/node-client-ca.crt \
        /etc/pki/ca-trust/source/anchors/
  3. update-ca-trust 를 실행하여 신뢰할 수 있는 CA 목록을 업데이트합니다.

    # update-ca-trust