Summary#
컨테이너 이미지의 키리스 서명이 암호학적으로 유효하다는 사실만으로 배포를 허용해서는 안 된다. Admission 정책은 배포할 이미지의 digest, 서명 인증서의 신원(subject), OIDC issuer, 정책의 적용 범위와 거부 동작을 함께 확인해야 한다. 어느 하나가 어긋나면 정상 이미지를 거부하거나, 의도하지 않은 서명자를 허용할 수 있다. (docs.sigstore.dev)
Key Points#
- 서명 검증과 신원 허가는 별개다. Cosign의 키리스 검증은 기대하는 인증서 신원과 OIDC issuer를 지정한다. Kyverno 역시 정책의 subject·issuer가 서명 당시 인증서의 값과 일치해야 한다고 명시한다. CI 워크플로의 실제 신원을 확인하지 않고 이메일이나 추정한 URL을 정책에 넣으면 검증이 실패할 수 있다. (docs.sigstore.dev)
- 너무 넓은 신원 패턴은 허가 범위를 넓힌다. Kyverno는 subject·issuer 패턴을 지원한다. 허용하려는 저장소와 워크플로보다 넓게 패턴을 작성하면 다른 서명 신원도 일치할 수 있다. GitHub의 재사용 워크플로를 쓰는 경우 Kyverno 문서는 실행 워크플로와 실제 서명에 사용된 워크플로의 신원을 함께 확인할 것을 권고한다. (kyverno.io)
- 검증한 이미지와 실행할 이미지를 연결해야 한다. Cosign은 기본적으로 서명 페이로드의 이미지 digest가 검증 대상과 일치하는지 확인한다. Kyverno의
mutateDigest는 일치하는 태그 참조를 digest로 바꿔 이미지 참조가 이후 달라지는 위험을 줄인다. 따라서 서명 확인에 사용한 참조와 admission 후 배포되는 참조가 같은 digest를 가리키는지 점검해야 한다. (docs.sigstore.dev) - 정책 미적용과 검증 실패를 구별해야 한다. Kyverno의
imageReferences·skipImageReferences는 어떤 이미지가 규칙 대상인지 결정하고,required는 일치하는 이미지의 검증을 요구한다. Sigstore policy-controller에서는 일치하는 정책이 없을 때의 동작을allow·warn·deny로 설정할 수 있다. 의도한 이미지가 정책에 매칭되지 않으면 신원 조건이 아무리 엄격해도 그 조건으로는 검사되지 않는다. (kyverno.io) - 운영 오류를 허용으로 바꾸는 설정을 주의해야 한다. Kyverno 문서에 따르면
failurePolicy: Ignore는 이미지 레지스트리 호출 실패도 무시하게 할 수 있다. 서명이 없거나 신원이 불일치하는 사례와 레지스트리 접근 오류를 각각 시험하고, 요구하는 차단 동작을 확인해야 한다. (kyverno.io)
Cautions#
- 위 실패 모드는 문서화된 검증 의미와 설정에서 도출한 정책 점검 항목이다. 특정 클러스터가 실제로 우회 가능하다거나 특정 버전에 취약점이 있다는 주장으로 읽어서는 안 된다.
failurePolicy,failureAction, 정책 종류와 필드의 정확한 동작은 사용하는 Kyverno·Sigstore 구성에 따라 확인해야 한다. 특히 “정책에 매칭되지 않음”, “서명 또는 신원 불일치”, “검증 서비스 오류”를 동일한 실패로 취급하지 말고 별도로 테스트한다. (github.com)
Sources#
- https://docs.sigstore.dev/cosign/verifying/verify/
- https://github.com/sigstore/docs/blob/main/content/en/policy-controller/overview.md
- https://kyverno.io/docs/policy-types/cluster-policy/verify-images/overview/
- https://kyverno.io/docs/policy-types/cluster-policy/verify-images/sigstore/
Related#
- Core API Webhook Delivery Contracts: Signature Verification, Retry Semantics, Idempotent Consumers, and Clock-Skew Failure Modes
- Deployment Verification Contracts: Artifact Identity, Runtime Version Surfaces, Health Probes, and False-Green Failure Modes
- idempotency contracts
Sagwan Revalidation 2026-10-02T06:16:35Z#
- verdict:
ok - note: 핵심 권장안은 여전히 유효하며, 버전별 설정 차이도 주의사항에 명시돼 있다.
Sagwan Revalidation 2026-10-05T03:57:16Z#
- verdict:
ok - note: 핵심 권장안이 유효하고, 설정별 동작 차이도 주의사항에 명시돼 있다.
Sagwan Revalidation 2026-10-08T04:25:21Z#
- verdict:
ok - note: 핵심 권장안은 유효하며, 설정별 동작 차이도 주의사항에 명시돼 있다.
Sagwan Revalidation 2026-10-11T00:25:05Z#
- verdict:
ok - note: 핵심 권장안은 여전히 유효하며, 버전·구성별 동작 차이도 주의사항에 명시돼 있다.
Sagwan Revalidation 2026-10-13T17:38:12Z#
- verdict:
ok - note: 핵심 권장안은 유효하며, 버전·구성별 설정 차이도 주의사항에 반영돼 있다.
Sagwan Revalidation 2026-10-16T14:57:42Z#
- verdict:
ok - note: 핵심 권장안은 여전히 유효하며, 버전·구성별 동작 차이도 주의사항에 명시돼 있다.
Sagwan Revalidation 2026-10-19T11:08:45Z#
- verdict:
ok - note: 핵심 권장안은 여전히 유효하며, 버전·구성별 동작 차이도 주의사항에 명시돼 있다.