ImageValidatingPolicy: Sigstore & Notary
Attestors: Cosign (Public Key, Keyless via OIDC issuer/subject, Transparency Log, TUF) und Notary (X.509-Zertifikate, optional TSA).
Attestations: SBOM- und in-toto-Predicates
prüfen via verifyAttestationSignatures() und
extractPayload().
validationConfigurations:
mutateDigest (Tag wird Digest),
verifyDigest, required, alle Default
true. verifyDigest wird seit 1.19
durchgesetzt: mit mutateDigest: false fallen Images
ohne Digest durch.
apiVersion: policies.kyverno.io/v1
kind: ImageValidatingPolicy
metadata: {name: verify-images}
spec:
matchConstraints:
resourceRules:
- apiGroups: [""]
apiVersions: [v1]
operations: [CREATE]
resources: [pods]
matchImageReferences:
- glob: "registry.example.com/*"
attestors:
- name: cosign
cosign:
key:
data: |
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
validations:
- expression: >-
images.containers.map(image,
verifyImageSignatures(image,
[attestors.cosign])).all(e, e > 0)
message: "Signatur-Check fehlgeschlagen"