Lion Cipher Lab

Verify image signatures at admission with Kyverno: make the cluster refuse any image not signed by who you trust

Why it matters

Signing an image proves who built it and that it has not been altered — but a signature that nobody is forced to check is a sticker on a box that no guard ever looks at. The gap this lab closes is the one between 'we sign our images' and 'our cluster will not run an image unless it is signed by us.' Picture the two failures it prevents. First: an attacker who has compromised a build account, a registry credential, or a developer laptop pushes their own image — malware wearing your repository's name — and a Deployment references it; if nothing verifies signatures, Kubernetes pulls it and runs…

What you'll learn

Steps in this lab

  1. The sticker nobody checks — signing produces provenance, admission is what enforces it
  2. The vocabulary, and the fork in Kyverno's API you must know about
  3. Install the four tools and build a throwaway kind cluster
  4. Install Kyverno into the cluster and wait for it to be genuinely ready
  5. Make three real images to test with — one signed, one unsigned, one signed by the WRONG key
  6. Write the ImageValidatingPolicy — pinned to your key, in AUDIT first
  7. Prove it — Audit blocks nothing, then Deny admits the signed image and rejects the other two
  8. The judgment: five ways this goes wrong, and where verification stops

Open the full interactive lab →