Signer une étiquette (tag) en tant que signataire
Dans cette étape, nous allons explorer comment un "signataire" désigné peut signer une étiquette (tag) d'image Docker. Dans un scénario réel, un dépôt peut avoir plusieurs signataires, chacun étant responsable de la signature d'étiquettes ou de versions spécifiques. Cela permet un processus de signature plus distribué et plus sécurisé.
Tout d'abord, assurez-vous que la Confiance dans le contenu Docker (Docker Content Trust) est activée :
export DOCKER_CONTENT_TRUST=1
Maintenant, créons une nouvelle étiquette pour notre image, simulant une version ou une mise à jour différente pour laquelle un signataire pourrait être responsable.
docker tag labexuser/my-signed-image:latest labexuser/my-signed-image:v1.0.0
Cela crée une nouvelle étiquette labexuser/my-signed-image:v1.0.0
qui pointe vers la même image.
Pour signer cette nouvelle étiquette en tant que "signataire" différent, nous utilisons la commande docker trust sign
. Cette commande vous permet de signer explicitement une étiquette spécifique avec une clé spécifique.
docker trust sign labexuser/my-signed-image:v1.0.0
Lorsque vous exécutez cette commande, Docker vous demandera la phrase de passe de la clé de signature que vous souhaitez utiliser. Si vous utilisez la même clé générée à l'Étape 2, entrez cette phrase de passe. Si vous étiez un signataire différent avec une clé différente, vous utiliseriez la phrase de passe de cette clé.
Après avoir entré avec succès la phrase de passe, Docker signera l'étiquette labexuser/my-signed-image:v1.0.0
. Vous devriez voir une sortie confirmant le processus de signature.
Enfin, nous devons pousser (push) les données de confiance mises à jour vers le registre. La commande docker push
pour l'étiquette signée inclura les nouvelles informations de signature.
docker push labexuser/my-signed-image:v1.0.0
Cette commande pousse l'étiquette v1.0.0
ainsi que sa signature associée vers le registre.