Une supply chain Docker pratique : signée, scannée, attestée
6 mai 2026 · 2 min de lecture · par Sudhanshu K.
« Mon image passe le scan » n'est pas une supply chain. Une supply chain, c'est une lignée prouvable depuis le commit source jusqu'au conteneur qui tourne. Voici le minimum que nous livrons pour chaque client.
Les quatre artefacts
Pour chaque image que nous construisons, nous produisons :
- L'image elle-même, taguée de façon immuable (SHA du commit, pas
latest) - Un SBOM (Software Bill of Materials) au format SPDX ou CycloneDX
- Un rapport de scan de vulnérabilités (Trivy ou Grype)
- Une signature (Cosign) sur le digest + une attestation signée liant l'image au SBOM + scan + commit
Tout cela est poussé aux côtés de l'image dans le registry selon les relations OCI standards.
Pipeline de build
Dans GitHub Actions :
- run: docker buildx build --output type=registry,name=${IMG} .
- run: syft ${IMG} -o cyclonedx-json > sbom.json
- run: trivy image --format json ${IMG} > scan.json
- run: cosign sign --yes ${IMG}
- run: cosign attest --predicate sbom.json --type cyclonedx --yes ${IMG}
- run: cosign attest --predicate scan.json --type vuln --yes ${IMG}La signature keyless via Fulcio + Rekor signifie que l'identité signataire est le token OIDC de GitHub Actions. Aucune clé longue à faire tourner.
Policy d'admission
Le cluster Kubernetes fait tourner Kyverno (ou OPA Gatekeeper) avec une policy qui refuse tout pod dont l'image :
- N'est pas signée par une identité attendue (la workload identity du pipeline de build)
- A une CVE critique dans son attestation de scan datant de plus de 7 jours
- N'a aucune attestation SBOM
Cela signifie qu'un développeur ne peut pas pousser une image non signée en prod, même s'il a les droits kubectl apply. Le cluster rejettera le pod avant son scheduling.
Ce que nous surveillons
- Nouvelles CVE qui affectent des images déjà déployées (la base Trivy est mise à jour quotidiennement ; nous re-scannons sur place)
- Images en production qui n'ont pas été rebuildées depuis N jours
- Échecs de vérification de signature (alertes vers PagerDuty)
- Drift entre le SBOM au build et ce qui tourne réellement (souvent un
apt installsournois)
Le post complet sur Medium contient les policies Kyverno mot pour mot, le setup Cosign keyless, et le dashboard que nous utilisons pour suivre la couverture des signatures sur toute la flotte.
Article complet disponible
Lire l'article complet