Aller au contenu

Attestation et Vérification

Cette page explique comment vérifier l’authenticité de nos images de conteneurs et inspecter leur Software Bill of Materials (SBOM).

Pour vérifier cryptographiquement qu’une image de conteneur a été signée par notre pipeline CI/CD :

Fenêtre de terminal
# API Proxy
cosign verify subnoto/api-proxy:v0.1.0 \
--certificate-identity https://gitlab.com/subnoto/subnoto-monorepo-public//.gitlab-ci.yml@refs/tags/v0.1.0 \
--certificate-oidc-issuer https://gitlab.com | jq
# MCP Server
cosign verify subnoto/mcp-server:v0.1.4 \
--certificate-identity https://gitlab.com/subnoto/subnoto-monorepo-public//.gitlab-ci.yml@refs/tags/v0.1.4 \
--certificate-oidc-issuer https://gitlab.com | jq

Pour vérifier l’attestation SBOM attachée à un conteneur :

Fenêtre de terminal
# API Proxy
cosign verify-attestation subnoto/api-proxy:v0.1.0 \
--certificate-identity https://gitlab.com/subnoto/subnoto-monorepo-public//.gitlab-ci.yml@refs/tags/v0.1.0 \
--certificate-oidc-issuer https://gitlab.com \
--type=spdxjson
# MCP Server
cosign verify-attestation subnoto/mcp-server:v0.1.4 \
--certificate-identity https://gitlab.com/subnoto/subnoto-monorepo-public//.gitlab-ci.yml@refs/tags/v0.1.4 \
--certificate-oidc-issuer https://gitlab.com \
--type=spdxjson

Notes importantes :

  • Le --certificate-identity doit correspondre exactement au chemin du fichier GitLab CI et à la référence du tag
  • Pour différentes versions, mettez à jour à la fois le tag de l’image et le tag de l’identité du certificat
  • Seules les versions taguées sont publiées sur DockerHub
  • La vérification nécessite l’outil cosign (installer depuis sigstore.dev)

Pour télécharger et inspecter l’attestation SBOM (Software Bill of Materials) :

Fenêtre de terminal
cosign download attestation subnoto/api-proxy:latest | \
jq -r .payload | \
base64 -d | \
jq '.predicate | fromjson'

Cette commande :

  1. Télécharge l’attestation depuis le registre de conteneurs
  2. Extrait le champ payload
  3. Décode le contenu encodé en base64
  4. Parse le JSON du prédicat doublement encodé

La sortie affichera un SBOM SPDX complet listant tous les packages et dépendances dans le conteneur.

Vous pouvez scanner les images localement en utilisant :

Fenêtre de terminal
# Utiliser Syft pour générer le SBOM
syft subnoto/mcp-server:latest -o json
# Utiliser Grype pour scanner les vulnérabilités
grype subnoto/mcp-server:latest