EN: Read in English
Dunia C2: Pipeline Container
SBOM dan provenance dalam CI
Anda akan belajar: hantar senarai ramuan dan label "dibuat di sini" yang ditandatangani.
Teks BM belum disemak oleh penutur asli.
Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026
Masalahnya
Seorang pelanggan tanya dua soalan. Apa ada dalam pek ini? Dan betulkah dapur anda yang buat?
Pilih satu jawapan.
Tengok
SBOM: Senarai bahan perisian: label ramuan. Ia senaraikan setiap pakej dan versi di dalamnya. ialah senarai ramuan: setiap pakej dan versinya. Provenance beritahu di mana dan bagaimana pek dibuat. Susun yang ini.
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Tengok
Ketik baris yang tandatangani label "dibuat di sini".
0 daripada 1 dijumpai
sbom: true bungkus senarai ramuan bersama image. actions/attest tandatangani kenyataan provenance: Label "dibuat di sini" yang ditandatangani: repo, commit dan workflow mana yang bina image ini. untuk image yang tepat itu. Ia disimpan di sebelah image dalam GHCR.
Cuba
Tekan Run. Tandatangan gagal. Beri job ini kunci yang tiada.
Tali sawat merah. Betulkan baris kuning, kemudian run semula.
Fail workflow .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
Kuning: baris 8–10. Anda boleh ubah baris ini.
Tali sawat
Push ke main · main
Petunjuk
Dua kunci: satu dapatkan kad pengenalan, satu simpan label.Teka
Kenapa tandatangan perlukan id-token: write?
Pilih satu jawapan.
Semak
Sesiapa boleh semak label itu. Bina arahannya.
Ketik kepingan ikut turutan yang betul.
Anda berjaya!
Kini anda boleh hantar SBOM dan provenance bertandatangan dengan setiap image.
Nak tahu lebih (pilihan)
Attestation sahaja capai SLSA Build Level 2. Build dalam reusable workflow boleh capai Level 3. Repo awam catat tandatangan dalam log awam Sigstore. Repo peribadi guna Sigstore milik GitHub. Untuk fail SBOM, actions/attest terima sbom-path.
Latihan sebenar (pilihan):
Misi sebenar
gh attestation verify oci://ghcr.io/YOUR-NAME/YOUR-REPO:main -R YOUR-NAME/YOUR-REPO
0 daripada 3 langkah siap · Tanda anda disimpan.
English
A customer asks two questions. What is inside this pack? And did your kitchen really make it?
An SBOM is the ingredients list: every package and version. Provenance says where and how the pack was made. Sort these.
sbom: true packs the ingredients list with the image. actions/attest signs a provenance statement for that exact image. It goes next to the image in GHCR.
Press Run. Signing fails. Give the job the keys it is missing.
Why does signing need id-token: write?
Anyone can check the label. Build the command.
You can now ship an SBOM and signed provenance with every image.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Using artifact attestations · Artifact attestations · Docker docs: build attestations · SLSA
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?