Implement software supply chain integrity verification for container builds using the in-toto framework to create cryptographically signed attestations across CI/CD pipeline steps.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Implement software supply chain integrity verification for container builds using the in-toto framework to create cryptographically signed attestations across CI/CD pipeline steps.
in-toto is a CNCF graduated project that ensures the integrity of software supply chains from initiation to end-user installation. It creates a verifiable record of the entire software development lifecycle by generating cryptographically signed attestations (called "link metadata") at each step, proving what happened, who performed it, and what artifacts were produced. For container environments, in-toto verifies that images deployed to Kubernetes followed approved build processes and have not been tampered with.
When to Use
When deploying or configuring implementing supply chain security with in toto capabilities in your environment
When establishing security controls aligned to compliance requirements
When building or improving security architecture for this domain
When conducting security assessments that require this implementation
Common Misconfigurations & Verification
The most common in-toto failure is a supply chain that generates attestations nobody actually verifies at the gate:
Layout never verified at deploy: link metadata is collected in CI but in-toto-verify is not run before kubectl apply, or the admission webhook has failurePolicy: Ignore - so tampering is recorded, not blocked.
Wrong trust root: verifying with the layout's own embedded keys instead of an out-of-band owner.pub, or skipping signature verification of the layout itself - lets an attacker swap both the layout and its links.
Loose artifact rules:expected_materials/expected_products using broad globs (src/*) without MATCH ... WITH PRODUCTS FROM <step> break the hash chain, so a modified artifact between build and scan goes undetected.
Expired or threshold-1 layouts: an expired layout (set_relative_expiration) or threshold: 1 on every step removes the multi-party guarantee.
Verify: run in-toto-verify --layout root.layout --layout-key keys/owner.pub --link-dir ./link-metadata/ and confirm a non-zero exit fails the pipeline; then prove it catches tampering by mutating one byte of image-digest.txt and re-running - verification must fail. Confirm the inspection (verify-no-critical-vulns) actually executes and that the admission webhook is failurePolicy: Fail.
Prerequisites
Python 3.8+ or Go runtime for in-toto client libraries
GPG or Ed25519 keys for signing attestations
Container build pipeline (Docker, Buildah, or Kaniko)
Container registry (Docker Hub, ECR, GCR, or Harbor)
Kubernetes cluster for deployment verification
Core Concepts
Supply Chain Layout
The layout is the central policy document that defines:
Steps: Ordered operations in the supply chain (clone, build, test, package, push)
Functionaries: Authorized entities (people or CI systems) that perform each step
Inspections: Client-side verification checks performed at verification time
Expected artifacts: Input/output relationships between steps