BM: Baca dalam Bahasa Melayu
World C2: Container Pipelines
SBOM and provenance in CI
You will learn: to ship an ingredients list and a signed "made here" label.
Checked with GitHub Actions 2026-10 on 31 Oct 2026
The problem
A customer asks two questions. What is inside this pack? And did your kitchen really make it?
Pick one answer.
Watch
An SBOM: Software bill of materials: the ingredients label. It lists every package and version inside. is the ingredients list: every package and version. Provenance says where and how the pack was made. Sort these.
Drag a card into a box. Or tap the card, then tap the box.
Watch
Tap the line that signs the "made here" label.
0 of 1 found
sbom: true packs the ingredients list with the image. actions/attest signs a provenance: A signed "made here" label: which repo, commit and workflow built this image. statement for that exact image. It goes next to the image in GHCR.
Try it
Press Run. Signing fails. Give the job the keys it is missing.
The line is red. Fix the yellow lines, then run again.
Workflow file .github/workflows/publish.yml
name: Publish on: push: branches: [main] jobs: image: runs-on: ubuntu-latest permissions: contents: read packages: write steps: - uses: docker/setup-buildx-action@v4 - uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - id: push uses: docker/build-push-action@v7 with: push: true sbom: true tags: ghcr.io/${{ github.repository }}:${{ github.sha }} - uses: actions/attest@v4 with: subject-name: ghcr.io/${{ github.repository }} subject-digest: ${{ steps.push.outputs.digest }} push-to-registry: true
Yellow: lines 8–10. You can change these.
The line
Push to main · main
Hint
Two keys: one gets an ID card, one saves the label.Predict
Why does signing need id-token: write?
Pick one answer.
Check
Anyone can check the label. Build the command.
Tap the pieces in the right order.
You did it!
You can now ship an SBOM and signed provenance with every image.
Go deeper (optional)
Attestations alone reach SLSA Build Level 2. Building in a reusable workflow can reach Level 3. Public repos log signatures in Sigstore’s public log. Private repos use GitHub’s own Sigstore. For an SBOM file, actions/attest takes sbom-path.
Real rep (optional):
Real mission
gh attestation verify oci://ghcr.io/YOUR-NAME/YOUR-REPO:main -R YOUR-NAME/YOUR-REPO
0 of 3 steps done · Your ticks are saved.
Bahasa Melayu
Seorang pelanggan tanya dua soalan. Apa ada dalam pek ini? Dan betulkah dapur anda yang buat?
SBOM ialah senarai ramuan: setiap pakej dan versinya. Provenance beritahu di mana dan bagaimana pek dibuat. Susun yang ini.
sbom: true bungkus senarai ramuan bersama image. actions/attest tandatangani kenyataan provenance untuk image yang tepat itu. Ia disimpan di sebelah image dalam GHCR.
Tekan Run. Tandatangan gagal. Beri job ini kunci yang tiada.
Kenapa tandatangan perlukan id-token: write?
Sesiapa boleh semak label itu. Bina arahannya.
Kini anda boleh hantar SBOM dan provenance bertandatangan dengan setiap image.
You finished this before. Practice is always welcome!
Official docs: Using artifact attestations · Artifact attestations · Docker docs: build attestations · SLSA
You've learned for 25 minutes. A short break helps your brain.
Sprint done! Great focus. Stretch for a minute?