Skip to content
← Production DevOps & SRE

Learning bite

SBOMs, signatures, and provenance

Distinguish inventory, artifact identity, and evidence about a build.

  • Kubernetes
Documentation reviewed2026-10-01 · 3 min read
  1. Why
  2. Predict
  3. Try
  4. Inspect
  5. Explain
  6. Save evidence

Predict before you try

Does a passing scanner or policy prove that the running artifact is both restricted and functional?

Try it: Follow one artifact without changing the question →
On this page

Follow one artifact without changing the question

A digest is a content-derived identifier. A tag is a name that a registry can move. An SBOM is a software bill of materials: an inventory of components found or declared for a particular artifact. A signature lets a verifier check that an allowed key or signing identity signed the intended object. Provenance describes build inputs and process. Together they answer inventory, authenticity, and build-history questions; they do not replace functional tests.

Work through an invented release: image digest A has an SBOM and a passing transaction test. Someone moves its tag to digest B. Verifying evidence for A while deploying the tag's new B checks the wrong object. Bind the deployment and evidence to the intended digest. Now suppose A is correctly signed but has a broken balance calculation: identity verification can still pass because it was not a balance test.

Small practice: create three columns labelled “which bytes?”, “who built/signed them?”, and “what behavior passed?”. Put the image digest in the first, restricted signing identity and verified provenance in the second, and the transaction result in the third. An SBOM helps inventory the first column's components, but cannot fill the third. Mark a missing piece as missing; do not infer it from another column.

Ask three separate questions

An SBOM inventories components. A signature associates a verified signing identity or key with an artifact. Provenance describes how an artifact was built. None alone establishes that the application behaves correctly or contains no vulnerabilities.

Generate an SBOM for the already-built Accounts image:

Run this from the MicroBank checkout after the scanning bite has created evidence/security/; use the same reviewed Trivy installation.

bash
: "${STUDY_TAG:?Select the built Accounts image tag}"
trivy image --image-src docker --format cyclonedx \
  --output evidence/security/accounts.cdx.json "microbank-study/accounts:$STUDY_TAG"

Keep the image ID alongside the SBOM. A local Docker image ID is not always interchangeable with a registry manifest digest; multi-platform indexes introduce another identity layer. When publishing becomes part of your own workflow, record the registry digest of the actual image selected for deployment.

Understand verification before adding signing

Cosign can sign and verify container images. With keyless signing, verification must restrict the expected certificate identity and OIDC issuer, as well as reference the intended digest. Merely checking that some signature exists is too weak.

Do the first identity review as a design exercise: identify the repository, workflow, allowed trigger/ref, expected issuer, and where verification would block deployment. Check the build-system and evidence requirements for a SLSA level before claiming it; a provenance JSON file alone is insufficient.

MicroBank release record

Create a table linking source commit → build invocation → image ID/digest → SBOM → test result → deployed Pod image ID. Mark any missing signature/provenance step as missing. With images loaded locally into kind, you can practise checking artifact consistency. An authenticated registry and admission enforcement require separate setup and verification.

Checkpoint: explain which evidence would detect an unexpected image and which evidence would detect a business-logic regression. Those are different checks.

Test a verification failure deliberately

Once your own signing/publishing workflow exists, verify a known artifact with the expected identity, then test a deliberately wrong allowed identity or issuer. The negative verification should fail for that reason. Do not weaken identity restrictions to make the exercise pass.

Keep this distinct from a vulnerability finding and a business-logic test. A signed artifact can contain a bug, an SBOM can be incomplete, and valid provenance can describe a build whose inputs were unsuitable. Later policy enforcement should name the evidence it requires and how missing evidence is handled.

Checkpoint answer: a digest mismatch detects different content; a failed allowed-identity check detects the wrong signer under that policy; a transaction assertion detects a tested behavior mismatch. A signed, inventoried artifact can still fail that assertion. Continue to workload hardening to limit what the correctly identified process may do after it starts.

Sources

Trivy SBOM generation↗, Cosign signing↗, Cosign verification↗, and SLSA specification↗.

Prove what you learned

Inspect the result

Record the finding/control, exact change, negative control and behaviour verification.

Explain it in your own words

Explain why your observation supports the stated outcome, and name one thing it does not prove.

Try a small variation

Use a labelled negative fixture that should fail, then explain why a green unrelated check is insufficient.

Your evidence should show

  • Record the context/revision or label the work as a paper or prepared fixture.
  • Compare the prediction with the actual result from “Follow one artifact without changing the question”.
  • Record the finding/control, exact change, negative control and behaviour verification.
  • Explain the transfer challenge and retain the same verification question.
Hint

Separate finding, selected bytes, configured restriction and behaviour after the change.

Answer guide: compare after predicting

No. Retain artifact identity and verify both the intended restriction and the application outcome.

Compare this with your actual observation. A paper answer is useful reasoning practice; record execution separately.

Recall least privilege and the difference between an image tag and digest. Revisit the previous lesson.

Save the prediction, result and explanation ↓

Your notes and evidence

Record observations, questions, or links to your work. Keep credentials out of your notes.

Loading saved progress…

Back up or restore this path

Progress and notes stay in this browser. A backup contains only this learning path.