Comment utiliser la commande docker trust revoke pour supprimer les signatures d'images

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), nous allons explorer comment gérer les signatures d'images à l'aide de Docker Content Trust, en nous concentrant plus particulièrement sur la commande docker trust revoke. Nous commencerons par inspecter une image signée pour comprendre comment les signatures sont affichées et vérifiées.

Après l'inspection, nous apprendrons comment révoquer les signatures d'une étiquette (tag) signée spécifique d'une image. Nous vérifierons ensuite que la révocation a réussi en inspectant à nouveau l'image. Enfin, nous montrerons comment révoquer les signatures de toutes les étiquettes (tags) d'un dépôt (repository) et confirmer que toutes les signatures ont été supprimées. Ce laboratoire offre une expérience pratique dans la gestion de la confiance associée à vos images Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/inspect -.-> lab-555254{{"Comment utiliser la commande docker trust revoke pour supprimer les signatures d'images"}} docker/pull -.-> lab-555254{{"Comment utiliser la commande docker trust revoke pour supprimer les signatures d'images"}} docker/tag -.-> lab-555254{{"Comment utiliser la commande docker trust revoke pour supprimer les signatures d'images"}} docker/images -.-> lab-555254{{"Comment utiliser la commande docker trust revoke pour supprimer les signatures d'images"}} end

Inspecter une image signée pour voir ses signatures

Dans cette étape, nous allons apprendre à inspecter une image Docker signée pour afficher ses signatures. Docker Content Trust vous permet de vérifier l'intégrité et l'émetteur des images. Lorsqu'une image est signée, cela signifie que l'émetteur a signé cryptographiquement l'image, et vous pouvez vérifier cette signature pour vous assurer que l'image n'a pas été altérée.

Tout d'abord, nous devons activer Docker Content Trust. Cela se fait en définissant la variable d'environnement DOCKER_CONTENT_TRUST sur 1.

export DOCKER_CONTENT_TRUST=1

Maintenant, téléchargeons (pull) une image signée. Nous allons utiliser l'image docker/trusttest, qui est spécifiquement conçue pour tester Docker Content Trust.

docker pull docker/trusttest:latest

Lorsque vous téléchargez (pull) une image signée avec Docker Content Trust activé, Docker vérifie la signature. Si la signature est valide, le téléchargement (pull) réussira. Si la signature est invalide ou manquante, le téléchargement (pull) échouera.

Pour inspecter les signatures d'une image signée, nous utilisons la commande docker trust inspect suivie du nom de l'image.

docker trust inspect docker/trusttest:latest

Cette commande affichera des informations sur les signatures de l'image, y compris les signataires et leurs clés. Vous devriez voir des détails sur les signatures associées à l'étiquette (tag) latest de l'image docker/trusttest. Cette sortie confirme que l'image est signée et indique qui l'a signée.

Révoquer les signatures d'une étiquette (tag) signée spécifique

Dans cette étape, nous allons apprendre à révoquer les signatures d'une étiquette (tag) spécifique d'une image Docker signée. Révoquer une signature signifie invalider la signature existante pour une étiquette (tag) d'image particulière. Cela est utile si une clé est compromise ou si vous avez besoin de supprimer la confiance accordée à une version spécifique d'une image.

Pour révoquer les signatures d'une étiquette (tag) spécifique, nous utilisons la commande docker trust revoke suivie du nom de l'image et de l'étiquette (tag). Nous allons révoquer la signature de l'étiquette (tag) latest de l'image docker/trusttest.

docker trust revoke docker/trusttest:latest

Lorsque vous exécutez cette commande, vous serez invité à confirmer la révocation. Tapez y puis appuyez sur Entrée pour continuer.

Are you sure you want to revoke signature for docker/trusttest:latest? (y/n) y

Après avoir confirmé, Docker révoquera la signature de l'étiquette (tag) spécifiée. Cette action met à jour les données de confiance de l'image dans le registre (registry).

Inspecter à nouveau l'image pour vérifier la révocation

Dans cette étape, nous allons inspecter à nouveau l'image pour vérifier que la signature de l'étiquette (tag) latest a été correctement révoquée. Après avoir révoqué la signature à l'étape précédente, les données de confiance pour cette étiquette (tag) spécifique devraient être supprimées ou marquées comme invalides.

Nous allons utiliser la même commande docker trust inspect que précédemment pour vérifier les signatures de l'image docker/trusttest:latest.

docker trust inspect docker/trusttest:latest

Cette fois, la sortie devrait indiquer qu'il n'y a pas de signatures pour l'étiquette (tag) latest. Vous pourriez voir des informations sur d'autres étiquettes (tags) s'ils existent et sont signés, mais la section pour latest devrait montrer qu'il n'y a pas de signatures valides. Cela confirme que la révocation a réussi.

Si vous essayez de télécharger (pull) l'image docker/trusttest:latest avec DOCKER_CONTENT_TRUST=1 activé après avoir révoqué la signature, le téléchargement (pull) devrait échouer car l'image n'est plus approuvée pour cette étiquette (tag) spécifique.

Révoquer les signatures de toutes les étiquettes (tags) d'un dépôt (repository)

Dans cette étape, nous allons apprendre à révoquer les signatures de toutes les étiquettes (tags) au sein d'un dépôt (repository) d'images Docker spécifique. Cela est utile lorsque vous avez besoin de supprimer complètement la confiance accordée à un dépôt (repository) entier, peut - être en raison d'un incident de sécurité ou d'une décision de ne plus utiliser les images provenant de cette source.

Pour révoquer les signatures de toutes les étiquettes (tags) d'un dépôt (repository), nous utilisons la commande docker trust revoke suivie du nom du dépôt (repository), sans spécifier d'étiquette (tag). Nous allons révoquer toutes les signatures pour le dépôt (repository) docker/trusttest.

docker trust revoke docker/trusttest

Lorsque vous exécutez cette commande, vous serez invité à confirmer que vous souhaitez révoquer les signatures de toutes les étiquettes (tags) du dépôt (repository). Tapez y puis appuyez sur Entrée pour continuer.

Are you sure you want to revoke all signatures for docker/trusttest? (y/n) y

Après avoir confirmé, Docker révoquera les signatures de toutes les étiquettes (tags) associées au dépôt (repository) docker/trusttest. Cette action supprime effectivement les données de confiance pour l'ensemble du dépôt (repository) dans le registre (registry).

Inspecter le dépôt (repository) pour vérifier que toutes les signatures ont été supprimées

Dans cette étape finale, nous allons inspecter à nouveau le dépôt (repository) docker/trusttest pour vérifier que toutes les signatures ont été correctement supprimées de toutes ses étiquettes (tags). Après avoir révoqué toutes les signatures à l'étape précédente, les données de confiance pour l'ensemble du dépôt (repository) devraient être supprimées.

Nous allons utiliser la commande docker trust inspect, cette fois en spécifiant seulement le nom du dépôt (repository) sans aucune étiquette (tag).

docker trust inspect docker/trusttest

La sortie de cette commande devrait maintenant indiquer qu'aucune signature n'a été trouvée pour le dépôt (repository) docker/trusttest. Cela confirme que la révocation de toutes les signatures a réussi.

Ceci conclut le laboratoire (lab) sur la révocation des signatures d'images Docker à l'aide de Docker Content Trust. Vous avez appris à révoquer les signatures pour une étiquette (tag) spécifique et pour un dépôt (repository) entier.

Résumé

Dans ce laboratoire (lab), nous avons appris à gérer les signatures d'images à l'aide de Docker Content Trust. Nous avons commencé par activer Docker Content Trust et tirer (pull) une image signée (docker/trusttest:latest) pour comprendre comment Docker vérifie les signatures lors du processus de tirage (pull). Nous avons ensuite utilisé la commande docker trust inspect pour afficher les signatures associées à l'image, confirmant son statut de signature et identifiant les signataires.

Ensuite, nous avons exploré comment révoquer les signatures. Nous avons appris à utiliser la commande docker trust revoke pour supprimer les signatures d'une étiquette (tag) d'image spécifique (docker/trusttest:latest) et avons vérifié la révocation en inspectant à nouveau l'image. Enfin, nous avons étendu cette connaissance pour révoquer les signatures de toutes les étiquettes (tags) au sein d'un dépôt (repository) et avons confirmé la suppression complète des signatures par inspection. Ce laboratoire (lab) a fourni une expérience pratique dans l'inspection et la révocation des signatures d'images Docker, des compétences essentielles pour maintenir l'intégrité et la fiabilité des images de conteneurs.