5.10. oc-mirror 플러그인 v2에서 이미지 시그니처 미러링 및 검증
OpenShift Container Platform 4.19부터 oc-mirror 플러그인 v2는 컨테이너 이미지에 대한 cosign 태그 기반 서명의 미러링과 검증을 지원합니다.
5.10.1. oc-mirror 플러그인 v2에 대한 서명 미러링 활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 서명 미러링은 비활성화되어 있습니다. oc mirror 명령에 --remove-signatures=false 플래그를 설정하면 모든 이미지에 대해 서명 미러링을 활성화할 수 있습니다.
활성화된 경우, oc-mirror 플러그인 v2는 다음 이미지에 대한 Sigstore 태그 기반 서명을 미러링합니다.
- OpenShift 컨테이너 플랫폼 릴리스 이미지
- 운영자 이미지
- 추가 이미지
- Helm 차트
구성 파일을 제공하지 않으면 oc-mirror 플러그인 v2는 --remove-signatures=false 플래그를 사용할 때 기본적으로 모든 이미지에 대한 서명 미러링을 활성화합니다.
사용자 정의 구성 디렉토리를 지정하려면 --registries.d 플래그를 사용합니다.
자세한 내용은 containers-registries.d(5) 매뉴얼을 참조하세요.
프로세스
모든 이미지에 대해 서명 미러링을 활성화하려면 다음 명령을 실행하세요.
$ oc mirror --remove-signatures=false전송 프로토콜, 레지스트리, 네임스페이스 또는 이미지와 같은 특정 요소에 대한 서명 미러링을 활성화하거나 비활성화하려면 다음 단계를 따르세요.
-
$HOME/.config/containers/registries.d/또는/etc/containers/registries.d/디렉토리에 YAML 파일을 만듭니다. 다음 예에서 볼 수 있듯이
use-sigstore-attachments매개변수를 지정하고 제어하려는 특정 요소에서 이를true또는false로 설정합니다.예:
quay.io레지스트리에 대한 서명 미러링 비활성화# ... docker: quay.io: use-sigstore-attachments: false # ...예: 모든 레지스트리에 대한 서명 미러링 활성화
# ... default-docker: use-sigstore-attachments: true # ...
-
5.10.2. oc-mirror 플러그인 v2에 대한 서명 검증 활성화 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 4.19부터 oc-mirror 플러그인 v2는 서명 검증을 지원하지만, 이는 기본적으로 비활성화되어 있습니다. 이 플러그인을 활성화하면 컨테이너 이미지가 서명과 일치하는지 확인하여 변경되지 않았고 신뢰할 수 있는 출처에서 왔는지 확인합니다. 서명 불일치가 감지되면 미러링 워크플로가 실패합니다.
프로세스
모든 이미지에 대해 서명 검증을 활성화하려면 다음 명령을 실행하세요.
$ oc mirror --secure-policy=true전송 프로토콜, 레지스트리, 네임스페이스 또는 이미지와 같은 특정 요소에 대한 서명 검증을 활성화하거나 비활성화하려면 다음 단계를 따르세요.
$HOME/.config/containers/또는/etc/containers/디렉토리에policy.json파일을 만듭니다.참고정책 구성 파일이 기본 디렉토리 외부에 있는 경우
oc mirror명령과 함께--policy플래그를 사용하여 해당 경로를 지정할 수 있습니다.자세한 내용은
containers-policy.json(5)을참조하세요.적절한 정책 구성을 사용하여 원하는 범위(예: 레지스트리 또는 이미지)에 대한 검증 규칙을 정의합니다. 각 요소 아래에 원하는 규칙을 지정하여 검증 요구 사항을 설정할 수 있습니다.
예: 특정 이미지에 대해서만 검증을 활성화하고 다른 모든 이미지는 거부합니다.
{ "default": [{"type": "reject"}], "transports": { "docker": { "hostname:5000/myns/sigstore-signed-image": [ { "type": "sigstoreSigned", "keyPath": "/path/to/sigstore-pubkey.pub", "signedIdentity": {"type": "matchRepository"} } ] } } }