Safeguard
Supply Chain•

Can Kubernetes admission control require an SBOM attestation?

Built-in CEL policies cannot fetch an attestation from a registry. A webhook can. How to enforce SBOM presence at admission and what to check first.

Safeguard Security Team
3 min read

Yes, but not with the built-in CEL policies alone. A ValidatingAdmissionPolicy evaluates the incoming object, and the pod spec does not contain an SBOM. To require one, you need a validating webhook that looks up the attestation for the image digest, or a pipeline step that records the result somewhere the policy can read.

What the built-in policy can see

The Kubernetes documentation describes validating admission policies as a declarative, in-process alternative to webhooks that uses the Common Expression Language. The expressions work on the request and optional parameters. A policy can say "every container image must come from this registry" or "must use a digest", because those facts are in the pod spec.

It cannot say "this digest has an SBOM attestation", because that fact lives in the registry, not in the object. This is a limitation of where the data is, not a bug.

Three ways to enforce

ApproachHow it worksTrade-off
Webhook checks the registryWebhook receives the pod, resolves each image digest, looks for an attestationReal time check, but adds a dependency and latency
Pipeline marks approved digestsCI verifies the SBOM, then labels or lists the digestSimple, but admission trusts the list
Policy parameter listPolicy reads an approved digest list as a parameterIn-process and fast, needs list upkeep

The dynamic admission documentation covers webhook configuration, including timeouts and failure policy. An external lookup makes both important, since a slow registry becomes a slow deploy.

What "has an SBOM" should mean

Presence alone is weak. A policy that only checks that some attestation exists will pass an empty file. Decide what you verify.

  1. The attestation is bound to the exact digest being deployed.
  2. It is signed by an identity you trust. See what an image signature proves.
  3. It parses and lists packages.
  4. It is recent enough for your policy.

How the artifacts are attached to images matters too. See attaching SBOMs through OCI referrers.

Should you gate on it at all

Many teams start by checking in CI, where failures are cheap, and add admission later for the images that are most sensitive. Admission enforcement catches things CI cannot, such as someone applying a manifest directly with an image that never went through the pipeline. That gap is the real argument for admission checks. See should a deploy gate require an SBOM or attestation.

Roll out in stages

  1. Audit mode first, so violations are logged without blocking.
  2. Fix the pipeline gaps the logs reveal.
  3. Enforce in a non-production cluster.
  4. Enforce in production with a break-glass route.

Before you enforce, plan for registry outages. Decide whether a lookup failure denies or allows, and write down why.

Where Safeguard fits

Safeguard generates SBOM and dependency data for images and supports policies and gates, so the evidence that an admission check looks for can exist in the first place. A free scan shows the SBOM output for an image.

Quick check

Can a ValidatingAdmissionPolicy read a registry?

Not by itself. It evaluates the request object and parameters. Anything that requires a registry lookup needs a webhook or a prior pipeline step.

Is checking in CI enough?

It covers the pipeline path. Admission also covers manifests applied outside the pipeline, which CI cannot see.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.