Docker SBOM attestations: build, inspect and retain the evidenceDocker SBOM attestations: build, inspect and retain the evidence

Docker SBOM attestations: build, inspect and retain the evidence addresses one concrete problem: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. The guide works from the actual objects — Docker, BuildKit, SBOM, SPDX, attestation — and aims for a verifiable decision rather than a generic pattern.

The concrete problem: Docker meets BuildKit

The hard part appears when the happy path meets authorization, failures, and operational constraints.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c11 starts at attestation and treats Docker as an explicit boundary rather than an implicit assumption. The first control requires BuildKit to emit an observable result before SBOM can trigger the intended effect around SPDX. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns attestation into a reviewable decision point with a named input and a retained output. To test Docker, fixture docker-sbom-attestations-workflow-c11 contains both an allowed state and a rejected state; rejection must occur before any change attributed to BuildKit. Operations then observes the transition between BuildKit and SBOM, while security checks that SPDX receives neither implicit authority nor unnecessary data.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c12 starts at Docker and treats BuildKit as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SPDX can trigger the intended effect around attestation. If the SPDX verification fails, rollback restores the configuration around attestation, replays docker-sbom-attestations-workflow-c12, and compares the new state with the control evidence from Docker. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to BuildKit, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SBOM and attestation: anything not demonstrated by scenario docker-sbom-attestations-workflow-c12 is labeled as a limitation or inference, never promoted to fact.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c13 starts at BuildKit and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SPDX to emit an observable result before attestation can trigger the intended effect around Docker. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns BuildKit into a reviewable decision point with a named input and a retained output. To test SBOM, fixture docker-sbom-attestations-workflow-c13 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SPDX. Operations then observes the transition between SPDX and attestation, while security checks that Docker receives neither implicit authority nor unnecessary data.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c14 starts at SBOM and treats SPDX as an explicit boundary rather than an implicit assumption. The first control requires attestation to emit an observable result before Docker can trigger the intended effect around BuildKit. If the Docker verification fails, rollback restores the configuration around BuildKit, replays docker-sbom-attestations-workflow-c14, and compares the new state with the control evidence from SBOM. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to SPDX, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by attestation and BuildKit: anything not demonstrated by scenario docker-sbom-attestations-workflow-c14 is labeled as a limitation or inference, never promoted to fact.

Technical state of Docker for Docker SBOM attestations: build, inspect and retain the evidence
Context capture for The concrete problem: Docker meets BuildKit: locally produced state for control docker-sbom-attestations-workflow.
Evidence point: PHP documents that pHP 8.5 adds the URI extension, pipe operator, clone-with syntax and additional language/runtime improvements. This source anchors the concrete problem: docker meets buildkit but does not replace local verification. [S1]

Trust boundaries around SBOM

A robust implementation separates what the model proposes from what the application authorizes and verifies.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c21 starts at Docker and treats BuildKit as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SPDX can trigger the intended effect around attestation. The conclusion stays bounded by SBOM and attestation: anything not demonstrated by scenario docker-sbom-attestations-workflow-c21 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns Docker into a reviewable decision point with a named input and a retained output. To test BuildKit, fixture docker-sbom-attestations-workflow-c21 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SBOM.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c22 starts at BuildKit and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SPDX to emit an observable result before attestation can trigger the intended effect around Docker. Operations then observes the transition between SPDX and attestation, while security checks that Docker receives neither implicit authority nor unnecessary data. If the attestation verification fails, rollback restores the configuration around Docker, replays docker-sbom-attestations-workflow-c22, and compares the new state with the control evidence from BuildKit. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to SBOM, a concrete condition, and evidence instead of a generic assurance.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c23 starts at SBOM and treats SPDX as an explicit boundary rather than an implicit assumption. The first control requires attestation to emit an observable result before Docker can trigger the intended effect around BuildKit. The conclusion stays bounded by attestation and BuildKit: anything not demonstrated by scenario docker-sbom-attestations-workflow-c23 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns SBOM into a reviewable decision point with a named input and a retained output. To test SPDX, fixture docker-sbom-attestations-workflow-c23 contains both an allowed state and a rejected state; rejection must occur before any change attributed to attestation.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c24 starts at SPDX and treats attestation as an explicit boundary rather than an implicit assumption. The first control requires Docker to emit an observable result before BuildKit can trigger the intended effect around SBOM. Operations then observes the transition between Docker and BuildKit, while security checks that SBOM receives neither implicit authority nor unnecessary data. If the BuildKit verification fails, rollback restores the configuration around SBOM, replays docker-sbom-attestations-workflow-c24, and compares the new state with the control evidence from SPDX. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to attestation, a concrete condition, and evidence instead of a generic assurance.

Technical state of BuildKit for Docker SBOM attestations: build, inspect and retain the evidence
Context capture for Trust boundaries around SBOM: locally produced state for control docker-sbom-attestations-workflow.
Evidence point: SLSA documents that sLSA build levels progress from no guarantees to provenance, hosted signed builds and hardened build platforms. This source anchors trust boundaries around sbom but does not replace local verification. [S2]

Prepare the starting state and prerequisites

The starting point is not a feature; it is an observable decision boundary.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c31 starts at BuildKit and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SPDX to emit an observable result before attestation can trigger the intended effect around Docker. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to SBOM, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SPDX and Docker: anything not demonstrated by scenario docker-sbom-attestations-workflow-c31 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns BuildKit into a reviewable decision point with a named input and a retained output.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c32 starts at SBOM and treats SPDX as an explicit boundary rather than an implicit assumption. The first control requires attestation to emit an observable result before Docker can trigger the intended effect around BuildKit. To test SPDX, fixture docker-sbom-attestations-workflow-c32 contains both an allowed state and a rejected state; rejection must occur before any change attributed to attestation. Operations then observes the transition between attestation and Docker, while security checks that BuildKit receives neither implicit authority nor unnecessary data. If the Docker verification fails, rollback restores the configuration around BuildKit, replays docker-sbom-attestations-workflow-c32, and compares the new state with the control evidence from SBOM.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c33 starts at SPDX and treats attestation as an explicit boundary rather than an implicit assumption. The first control requires Docker to emit an observable result before BuildKit can trigger the intended effect around SBOM. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to attestation, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by Docker and SBOM: anything not demonstrated by scenario docker-sbom-attestations-workflow-c33 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns SPDX into a reviewable decision point with a named input and a retained output.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c34 starts at attestation and treats Docker as an explicit boundary rather than an implicit assumption. The first control requires BuildKit to emit an observable result before SBOM can trigger the intended effect around SPDX. To test Docker, fixture docker-sbom-attestations-workflow-c34 contains both an allowed state and a rejected state; rejection must occur before any change attributed to BuildKit. Operations then observes the transition between BuildKit and SBOM, while security checks that SPDX receives neither implicit authority nor unnecessary data. If the SBOM verification fails, rollback restores the configuration around SPDX, replays docker-sbom-attestations-workflow-c34, and compares the new state with the control evidence from attestation.

Technical state of SBOM for Docker SBOM attestations: build, inspect and retain the evidence
Context capture for Prepare the starting state and prerequisites: locally produced state for control docker-sbom-attestations-workflow.
  1. Step 1 — Configure Docker, run verification docker-sbom-attestations-workflow-step-1, and retain the observable result before continuing.
  2. Step 2 — Configure BuildKit, run verification docker-sbom-attestations-workflow-step-2, and retain the observable result before continuing.
  3. Step 3 — Configure SBOM, run verification docker-sbom-attestations-workflow-step-3, and retain the observable result before continuing.
  4. Step 4 — Configure SPDX, run verification docker-sbom-attestations-workflow-step-4, and retain the observable result before continuing.
  5. Step 5 — Configure attestation, run verification docker-sbom-attestations-workflow-step-5, and retain the observable result before continuing.
  6. Step 6 — Configure Docker, run verification docker-sbom-attestations-workflow-step-6, and retain the observable result before continuing.

Three failures and fixes

  • Input rejected after the side effect: move validation before external execution.
  • Missing evidence: log a decision identifier without the secret payload.
  • Partial rollback: restore both configuration and authorization, then replay the control fixture.
Evidence point: Docker documents that docker BuildKit can attach SBOM and provenance attestations so consumers can inspect image contents and build origin. This source anchors prepare the starting state and prerequisites but does not replace local verification. [S3]

Execute the procedure and observe the result

A production design should make it clear who decides, what evidence is available, and what can be rolled back.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c41 starts at SBOM and treats SPDX as an explicit boundary rather than an implicit assumption. The first control requires attestation to emit an observable result before Docker can trigger the intended effect around BuildKit. If the Docker verification fails, rollback restores the configuration around BuildKit, replays docker-sbom-attestations-workflow-c41, and compares the new state with the control evidence from SBOM. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to SPDX, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by attestation and BuildKit: anything not demonstrated by scenario docker-sbom-attestations-workflow-c41 is labeled as a limitation or inference, never promoted to fact.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c42 starts at SPDX and treats attestation as an explicit boundary rather than an implicit assumption. The first control requires Docker to emit an observable result before BuildKit can trigger the intended effect around SBOM. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns SPDX into a reviewable decision point with a named input and a retained output. To test attestation, fixture docker-sbom-attestations-workflow-c42 contains both an allowed state and a rejected state; rejection must occur before any change attributed to Docker. Operations then observes the transition between Docker and BuildKit, while security checks that SBOM receives neither implicit authority nor unnecessary data.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c43 starts at attestation and treats Docker as an explicit boundary rather than an implicit assumption. The first control requires BuildKit to emit an observable result before SBOM can trigger the intended effect around SPDX. If the SBOM verification fails, rollback restores the configuration around SPDX, replays docker-sbom-attestations-workflow-c43, and compares the new state with the control evidence from attestation. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to Docker, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by BuildKit and SPDX: anything not demonstrated by scenario docker-sbom-attestations-workflow-c43 is labeled as a limitation or inference, never promoted to fact.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c44 starts at Docker and treats BuildKit as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SPDX can trigger the intended effect around attestation. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns Docker into a reviewable decision point with a named input and a retained output. To test BuildKit, fixture docker-sbom-attestations-workflow-c44 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SBOM. Operations then observes the transition between SBOM and SPDX, while security checks that attestation receives neither implicit authority nor unnecessary data.

Technical state of SPDX for Docker SBOM attestations: build, inspect and retain the evidence
Context capture for Execute the procedure and observe the result: locally produced state for control docker-sbom-attestations-workflow.
Evidence point: Docker documents that docker can generate SPDX SBOM attestations during BuildKit builds and provides local inspection workflows. This source anchors execute the procedure and observe the result but does not replace local verification. [S4]

Failure modes, signals, and diagnosis

The hard part appears when the happy path meets authorization, failures, and operational constraints.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c51 starts at SPDX and treats attestation as an explicit boundary rather than an implicit assumption. The first control requires Docker to emit an observable result before BuildKit can trigger the intended effect around SBOM. Operations then observes the transition between Docker and BuildKit, while security checks that SBOM receives neither implicit authority nor unnecessary data. If the BuildKit verification fails, rollback restores the configuration around SBOM, replays docker-sbom-attestations-workflow-c51, and compares the new state with the control evidence from SPDX. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to attestation, a concrete condition, and evidence instead of a generic assurance.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c52 starts at attestation and treats Docker as an explicit boundary rather than an implicit assumption. The first control requires BuildKit to emit an observable result before SBOM can trigger the intended effect around SPDX. The conclusion stays bounded by BuildKit and SPDX: anything not demonstrated by scenario docker-sbom-attestations-workflow-c52 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns attestation into a reviewable decision point with a named input and a retained output. To test Docker, fixture docker-sbom-attestations-workflow-c52 contains both an allowed state and a rejected state; rejection must occur before any change attributed to BuildKit.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c53 starts at Docker and treats BuildKit as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SPDX can trigger the intended effect around attestation. Operations then observes the transition between SBOM and SPDX, while security checks that attestation receives neither implicit authority nor unnecessary data. If the SPDX verification fails, rollback restores the configuration around attestation, replays docker-sbom-attestations-workflow-c53, and compares the new state with the control evidence from Docker. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to BuildKit, a concrete condition, and evidence instead of a generic assurance.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c54 starts at BuildKit and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SPDX to emit an observable result before attestation can trigger the intended effect around Docker. The conclusion stays bounded by SPDX and Docker: anything not demonstrated by scenario docker-sbom-attestations-workflow-c54 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns BuildKit into a reviewable decision point with a named input and a retained output. To test SBOM, fixture docker-sbom-attestations-workflow-c54 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SPDX.

Technical state of attestation for Docker SBOM attestations: build, inspect and retain the evidence
Context capture for Failure modes, signals, and diagnosis: locally produced state for control docker-sbom-attestations-workflow.
Evidence point: NIST documents that nIST AI 600-1 is a generative-AI profile for integrating trustworthiness and risk actions across the AI lifecycle. This source anchors failure modes, signals, and diagnosis but does not replace local verification. [S5]

Progressive rollout and rollback

A robust implementation separates what the model proposes from what the application authorizes and verifies.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c61 starts at attestation and treats Docker as an explicit boundary rather than an implicit assumption. The first control requires BuildKit to emit an observable result before SBOM can trigger the intended effect around SPDX. To test Docker, fixture docker-sbom-attestations-workflow-c61 contains both an allowed state and a rejected state; rejection must occur before any change attributed to BuildKit. Operations then observes the transition between BuildKit and SBOM, while security checks that SPDX receives neither implicit authority nor unnecessary data. If the SBOM verification fails, rollback restores the configuration around SPDX, replays docker-sbom-attestations-workflow-c61, and compares the new state with the control evidence from attestation.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c62 starts at Docker and treats BuildKit as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SPDX can trigger the intended effect around attestation. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to BuildKit, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SBOM and attestation: anything not demonstrated by scenario docker-sbom-attestations-workflow-c62 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns Docker into a reviewable decision point with a named input and a retained output.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c63 starts at BuildKit and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SPDX to emit an observable result before attestation can trigger the intended effect around Docker. To test SBOM, fixture docker-sbom-attestations-workflow-c63 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SPDX. Operations then observes the transition between SPDX and attestation, while security checks that Docker receives neither implicit authority nor unnecessary data. If the attestation verification fails, rollback restores the configuration around Docker, replays docker-sbom-attestations-workflow-c63, and compares the new state with the control evidence from BuildKit.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c64 starts at SBOM and treats SPDX as an explicit boundary rather than an implicit assumption. The first control requires attestation to emit an observable result before Docker can trigger the intended effect around BuildKit. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to SPDX, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by attestation and BuildKit: anything not demonstrated by scenario docker-sbom-attestations-workflow-c64 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns SBOM into a reviewable decision point with a named input and a retained output.

Technical state of Docker for Docker SBOM attestations: build, inspect and retain the evidence
Context capture for Progressive rollout and rollback: locally produced state for control docker-sbom-attestations-workflow.
Evidence point: NIST documents that nIST positions the AI RMF as a voluntary framework for managing AI risks and is revising it while adding profiles for specific settings. This source anchors progressive rollout and rollback but does not replace local verification. [S6]

Production decision criteria

The starting point is not a feature; it is an observable decision boundary.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c71 starts at Docker and treats BuildKit as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SPDX can trigger the intended effect around attestation. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns Docker into a reviewable decision point with a named input and a retained output. To test BuildKit, fixture docker-sbom-attestations-workflow-c71 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SBOM. Operations then observes the transition between SBOM and SPDX, while security checks that attestation receives neither implicit authority nor unnecessary data.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c72 starts at BuildKit and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SPDX to emit an observable result before attestation can trigger the intended effect around Docker. If the attestation verification fails, rollback restores the configuration around Docker, replays docker-sbom-attestations-workflow-c72, and compares the new state with the control evidence from BuildKit. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to SBOM, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SPDX and Docker: anything not demonstrated by scenario docker-sbom-attestations-workflow-c72 is labeled as a limitation or inference, never promoted to fact.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c73 starts at SBOM and treats SPDX as an explicit boundary rather than an implicit assumption. The first control requires attestation to emit an observable result before Docker can trigger the intended effect around BuildKit. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns SBOM into a reviewable decision point with a named input and a retained output. To test SPDX, fixture docker-sbom-attestations-workflow-c73 contains both an allowed state and a rejected state; rejection must occur before any change attributed to attestation. Operations then observes the transition between attestation and Docker, while security checks that BuildKit receives neither implicit authority nor unnecessary data.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c74 starts at SPDX and treats attestation as an explicit boundary rather than an implicit assumption. The first control requires Docker to emit an observable result before BuildKit can trigger the intended effect around SBOM. If the BuildKit verification fails, rollback restores the configuration around SBOM, replays docker-sbom-attestations-workflow-c74, and compares the new state with the control evidence from SPDX. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to attestation, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by Docker and SBOM: anything not demonstrated by scenario docker-sbom-attestations-workflow-c74 is labeled as a limitation or inference, never promoted to fact.

Evidence point: OWASP documents that oWASP identifies its 2026 LLM Top 10 as the current release for major security risks in LLM applications. This source anchors production decision criteria but does not replace local verification. [S7]

Controls that remain after launch

A production design should make it clear who decides, what evidence is available, and what can be rolled back.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c81 starts at BuildKit and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SPDX to emit an observable result before attestation can trigger the intended effect around Docker. The conclusion stays bounded by SPDX and Docker: anything not demonstrated by scenario docker-sbom-attestations-workflow-c81 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns BuildKit into a reviewable decision point with a named input and a retained output. To test SBOM, fixture docker-sbom-attestations-workflow-c81 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SPDX.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c82 starts at SBOM and treats SPDX as an explicit boundary rather than an implicit assumption. The first control requires attestation to emit an observable result before Docker can trigger the intended effect around BuildKit. Operations then observes the transition between attestation and Docker, while security checks that BuildKit receives neither implicit authority nor unnecessary data. If the Docker verification fails, rollback restores the configuration around BuildKit, replays docker-sbom-attestations-workflow-c82, and compares the new state with the control evidence from SBOM. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to SPDX, a concrete condition, and evidence instead of a generic assurance.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c83 starts at SPDX and treats attestation as an explicit boundary rather than an implicit assumption. The first control requires Docker to emit an observable result before BuildKit can trigger the intended effect around SBOM. The conclusion stays bounded by Docker and SBOM: anything not demonstrated by scenario docker-sbom-attestations-workflow-c83 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Generate an SPDX SBOM during BuildKit, inspect it locally and retain it with the image release record. It turns SPDX into a reviewable decision point with a named input and a retained output. To test attestation, fixture docker-sbom-attestations-workflow-c83 contains both an allowed state and a rejected state; rejection must occur before any change attributed to Docker.

In “Docker SBOM attestations: build, inspect and retain the evidence”, scenario docker-sbom-attestations-workflow-c84 starts at attestation and treats Docker as an explicit boundary rather than an implicit assumption. The first control requires BuildKit to emit an observable result before SBOM can trigger the intended effect around SPDX. Operations then observes the transition between BuildKit and SBOM, while security checks that SPDX receives neither implicit authority nor unnecessary data. If the SBOM verification fails, rollback restores the configuration around SPDX, replays docker-sbom-attestations-workflow-c84, and compares the new state with the control evidence from attestation. This detail makes “Docker SBOM attestations: build, inspect and retain the evidence” reviewable because each operational statement points to Docker, a concrete condition, and evidence instead of a generic assurance.

Evidence point: OWASP documents that the 2025 OWASP LLM list provides the prior baseline for risks observed as LLMs became embedded in more production applications. This source anchors controls that remain after launch but does not replace local verification. [S8]

Operational checklist

  • The control around Docker has an input, a rule, a rejection behavior, and evidence.
  • The control around BuildKit has an input, a rule, a rejection behavior, and evidence.
  • The control around SBOM has an input, a rule, a rejection behavior, and evidence.
  • The control around SPDX has an input, a rule, a rejection behavior, and evidence.
  • The control around attestation has an input, a rule, a rejection behavior, and evidence.

Sources and control points

  1. [S1] PHP 8.5 Release Announcement — PHP 8.5 adds the URI extension, pipe operator, clone-with syntax and additional language/runtime improvements. source
  2. [S2] SLSA Build Track Basics — SLSA build levels progress from no guarantees to provenance, hosted signed builds and hardened build platforms. source
  3. [S3] Build attestations - Docker Docs — Docker BuildKit can attach SBOM and provenance attestations so consumers can inspect image contents and build origin. source
  4. [S4] SBOM attestations - Docker Docs — Docker can generate SPDX SBOM attestations during BuildKit builds and provides local inspection workflows. source
  5. [S5] Artificial Intelligence Risk Management Framework: Generative AI Profile — NIST AI 600-1 is a generative-AI profile for integrating trustworthiness and risk actions across the AI lifecycle. source
  6. [S6] AI Risk Management Framework — NIST positions the AI RMF as a voluntary framework for managing AI risks and is revising it while adding profiles for specific settings. source
  7. [S7] OWASP Top 10 for Large Language Model Applications — OWASP identifies its 2026 LLM Top 10 as the current release for major security risks in LLM applications. source
  8. [S8] OWASP Top 10 for LLM Applications 2025 — The 2025 OWASP LLM list provides the prior baseline for risks observed as LLMs became embedded in more production applications. source
  9. [S9] Tracing - OpenAI Agents SDK — Tracing records model generations, tool calls, handoffs, guardrails and custom events, and sensitive payload capture can be disabled. source
  10. [S10] Handoffs - OpenAI Agents SDK — Handoffs transfer the active conversation to a specialist agent and can filter or reshape the history passed to the destination. source
Publicité