Aller au contenu

Comment vérifier la signature Cosign des images Docker

Pour vérifier la signature des images Docker de SquashTM, vous devez :

  • installer Cosign (voir leur documentation d'installation) ou utiliser leur image Docker durcie dhi.io/cosign.
  • exécuter la commande suivante :
    cosign verify \
      --certificate-identity-regexp="^<PROJECT_URL>" \
      --certificate-oidc-issuer="https://gitlab.com" \
      "<IMAGE_NAME>@sha256:<IMAGE_DIGEST>"
    
    • <PROJECT_URL> est l'URL du projet (voir le tableau ci-dessous)
    • <IMAGE_NAME> est le nom de l'image
    • <IMAGE_DIGEST> est le digest SHA256 de l'image

Par exemple, pour vérifier squashtest/squash:nightly, exécutez les commandes suivantes (notez que, si vous souhaitez reproduire cela de votre côté, cette image nightly est mise à jour quotidiennement, son digest SHA256 change donc chaque jour) :

docker pull dhi.io/cosign:3
docker run --rm dhi.io/cosign:3 verify \
  --certificate-identity-regexp="^https://gitlab.com/henixdevelopment/squash/squash-tm/core/docker-squash-tm/" \
  --certificate-oidc-issuer="https://gitlab.com" \
  "squashtest/squash:nightly@sha256:aa0b95e031041dc776b48ca94770cea18b4ffaddf1ae34457eb92fd5bcf530f6"

Cela devrait afficher :

Verification for index.docker.io/squashtest/squash@sha256:aa0b95e031041dc776b48ca94770cea18b4ffaddf1ae34457eb92fd5bcf530f6 --
The following checks were performed on each of these signatures:
  - The cosign claims were validated
  - Existence of the claims in the transparency log was verified offline
  - The code-signing certificate was verified using trusted certificate authority certificates

[{"critical":{"identity":{"docker-reference":"index.docker.io/squashtest/squash@sha256:aa0b95e031041dc776b48ca94770cea18b4ffaddf1ae34457eb92fd5bcf530f6"},"image":{"docker-manifest-digest":"sha256:aa0b95e031041dc776b48ca94770cea18b4ffaddf1ae34457eb92fd5bcf530f6"},"type":"https://sigstore.dev/cosign/sign/v1"},"optional":{}}]

La liste des images Docker produites par le projet SquashTM est :

ImageContenuURL de l'image DockerURL du projet
squashtest/squashSquashTMhttps://hub.docker.com/r/squashtest/squashhttps://gitlab.com/henixdevelopment/squash/squash-tm/core/docker-squash-tm/
squashtest/squash-orchestratorSquashTM Orchestratorhttps://hub.docker.com/r/squashtest/squash-orchestratorhttps://gitlab.com/henixdevelopment/squash/squash-autom-devops/squash-orchestrator/
opentestfactory/maven-runnerEnvironnement d'exécution pour lancer des tests Cucumber et JUnithttps://hub.docker.com/r/opentestfactory/maven-runnerhttps://gitlab.com/henixdevelopment/open-source/opentestfactory/test-environments/maven_environment/
opentestfactory/robot-framework-runnerEnvironnement d'exécution pour lancer des tests Robot Frameworkhttps://hub.docker.com/r/opentestfactory/robot-framework-runnerhttps://gitlab.com/henixdevelopment/open-source/opentestfactory/test-environments/robotframework_environment/
opentestfactory/allinoneOrchestrateur OpenTestFactoryhttps://hub.docker.com/r/opentestfactory/allinone/https://gitlab.com/henixdevelopment/open-source/opentestfactory/images/otf-all-in-one-images/

† Il s'agit de l'orchestrateur sur lequel SquashTM Orchestrator est basé. Il est répertorié ici par souci d'exhaustivité, mais vous ne devez pas l'installer à moins de vouloir contribuer au projet open-source OpenTestFactory.