Build Provenance
Record verifiable metadata describing how, where and from what source an artefact was built.
AdvancedProvenanceSupply Chain
Where it fits in the lifecycle
- Plan
- Code
- Build
- Test
- Release
- Deploy
- Operate
- Monitor
- Build Dependency scanning, image scanning, SBOM generation and signing.
- Release Approval controls, artefact promotion and provenance.
Overview
Provenance is a signed statement about the build: source repository and commit, builder identity, parameters and dependencies. It answers 'where did this binary actually come from'.
Why it matters
Provenance turns build integrity from a policy claim into a verifiable fact, and is a prerequisite for higher SLSA levels.
How it works
- 01The build platform emits an in-toto statement describing the build.
- 02The statement is signed with the builder identity.
- 03Verification policy checks the source repo, ref and builder before deployment.
Common tools
in-totoSigstore CosignSLSA GitHub GeneratorGitHubGitLabSLSA
Implementation examples
bashVerify provenance attestation
cosign verify-attestation --type slsaprovenance \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ --certificate-identity-regexp '^https://github.com/acme/' \ $IMAGE_DIGESTBest practices
- Generate provenance on the build platform, not in a user-controlled step.
- Fail deployment when provenance is missing rather than warning.
Common mistakes
- Producing provenance in the same script an attacker could modify.
Hands-on labs
- Lab 07 — Sign and Verify an Artifact
Generate an SBOM, sign a container image with Cosign, and verify the signature.