- Authors

- Name
- Youngju Kim
- @fjvbn20031
- 1. verifyImages Rule Overview
- 2. Cosign Signature Verification
- 3. Attestation Verification
- 4. SBOM Verification
- 5. Image Mutation
- 6. Summary
1. verifyImages Rule Overview
Kyverno's verifyImages rule verifies container image signatures and attestations to strengthen supply chain security.
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: verify-images
spec:
validationFailureAction: Enforce
rules:
- name: verify-signature
match:
any:
- resources:
kinds:
- Pod
verifyImages:
- imageReferences:
- 'ghcr.io/myorg/*'
attestors:
- entries:
- keys:
publicKeys: |-
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
2. Cosign Signature Verification
2.1 Static Key
verifyImages:
- imageReferences:
- 'ghcr.io/myorg/*'
attestors:
- entries:
- keys:
publicKeys: |-
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
2.2 Keyless Signing (Fulcio)
verifyImages:
- imageReferences:
- 'ghcr.io/myorg/*'
attestors:
- entries:
- keyless:
url: https://fulcio.sigstore.dev
rekor:
url: https://rekor.sigstore.dev
subject: 'https://github.com/myorg/*'
issuer: 'https://token.actions.githubusercontent.com'
2.3 KMS Keys
verifyImages:
- attestors:
- entries:
- keys:
kms: awskms:///arn:aws:kms:us-east-1:123456789:key/abc-123
3. Attestation Verification
3.1 SLSA Provenance
verifyImages:
- imageReferences:
- 'ghcr.io/myorg/*'
attestations:
- type: https://slsa.dev/provenance/v1
attestors:
- entries:
- keyless:
url: https://fulcio.sigstore.dev
subject: 'https://github.com/myorg/*'
issuer: 'https://token.actions.githubusercontent.com'
conditions:
- all:
- key: '{{ buildDefinition.buildType }}'
operator: Equals
value: 'https://slsa-framework.github.io/github-actions-buildtypes/workflow/v1'
4. SBOM Verification
verifyImages:
- attestations:
- type: https://cyclonedx.org/bom/v1.4
conditions:
- all:
- key: "{{ components[?name=='log4j-core'].version | [0] }}"
operator: NotEquals
value: '2.14.1'
5. Image Mutation
verifyImages:
- imageReferences:
- 'ghcr.io/myorg/*'
mutateDigest: true # Auto-convert tags to digests
required: true # Signature must exist
verifyDigest: true # Verify digest
6. Summary
- cosign verification: Static key, Keyless (Fulcio), KMS support
- Attestation verification: in-toto, SLSA provenance condition-based verification
- SBOM verification: Check vulnerable components in CycloneDX/SPDX attestations
- Digest mutation: Ensure image immutability with mutateDigest
- Comprehensive policies: Combine registry restrictions + tag policies + signature verification