Comment utiliser la commande docker trust signer remove pour supprimer des signataires

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, vous apprendrez à gérer les signataires pour les dépôts Docker en utilisant la commande docker trust signer remove. Nous commencerons par inspecter les signataires actuels d'un dépôt pour comprendre les relations de confiance existantes.

Après l'inspection, vous pratiquerez la suppression d'un signataire d'un seul dépôt, puis vous vérifierez que la suppression a été effectuée avec succès. Enfin, vous apprendrez à supprimer un signataire de plusieurs dépôts simultanément et à confirmer les modifications. Ce laboratoire vous offrira une expérience pratique de la gestion de la confiance des contenus dans Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") subgraph Lab Skills docker/inspect -.-> lab-555257{{"Comment utiliser la commande docker trust signer remove pour supprimer des signataires"}} docker/pull -.-> lab-555257{{"Comment utiliser la commande docker trust signer remove pour supprimer des signataires"}} docker/tag -.-> lab-555257{{"Comment utiliser la commande docker trust signer remove pour supprimer des signataires"}} end

Inspecter les signataires actuels d'un dépôt

Dans cette étape, nous apprendrons à inspecter les signataires actuels d'un dépôt Docker. Docker Content Trust vous permet de vérifier l'intégrité et l'émetteur de toutes les images que vous utilisez. Lorsque la confiance des contenus est activée, Docker s'assure que les images que vous téléchargez sont signées.

Tout d'abord, activons Docker Content Trust. Vous pouvez le faire en définissant la variable d'environnement DOCKER_CONTENT_TRUST sur 1.

export DOCKER_CONTENT_TRUST=1

Maintenant que la confiance des contenus est activée, lorsque vous interagissez avec les images, Docker vérifiera les signatures. Pour inspecter les signataires d'un dépôt, vous pouvez utiliser la commande docker trust inspect suivie du nom du dépôt.

Inspectons les signataires du dépôt ubuntu.

docker trust inspect ubuntu

Vous devriez voir une sortie similaire à celle-ci, affichant les signataires et leurs clés :

No signatures for ubuntu

Cette sortie indique qu'il n'y a actuellement aucune signature pour le dépôt ubuntu. C'est normal pour de nombreuses images officielles, sauf si elles ont explicitement activé la confiance des contenus et la signature.

Essayons d'inspecter un dépôt connu pour avoir des signatures, comme docker/trusttest. Nous devons d'abord télécharger l'image pour nous assurer d'avoir les métadonnées nécessaires.

docker pull docker/trusttest

Maintenant, inspectons les signataires de docker/trusttest.

docker trust inspect docker/trusttest

Vous devriez voir une sortie listant les signataires et leurs clés, indiquant que ce dépôt a été signé. La sortie affichera des informations sur les signataires des Targets et des Releases.

Signers of docker/trusttest:

ROLE         KEYS
----         ----
Releases     0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Signatures for docker/trusttest:

SIGNER     KEYS
------     ----
Releases   0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Cette sortie confirme que le dépôt docker/trusttest a été signé et liste les clés associées aux signataires.

Supprimer un signataire d'un seul dépôt

Dans cette étape, nous apprendrons à supprimer un signataire d'un seul dépôt Docker en utilisant Docker Content Trust. Cela est utile lorsque la clé d'un signataire est compromise ou qu'un utilisateur n'est plus autorisé à signer des images pour un dépôt spécifique.

Pour supprimer un signataire, nous utilisons la commande docker trust signer remove. Cette commande nécessite le nom du signataire à supprimer et le dépôt à partir duquel le supprimer.

Supprimons le signataire Releases du dépôt docker/trusttest. Rappelez-vous que dans l'étape précédente, docker/trusttest avait un signataire Releases.

docker trust signer remove Releases docker/trusttest

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

Removing signer "Releases" from docker/trusttest. Are you sure you want to continue? (y/n): y

Après avoir confirmé, le signataire sera supprimé du dépôt spécifié. Vous devriez voir une sortie indiquant que la suppression a été effectuée avec succès.

Successfully removed signer "Releases" from docker/trusttest

Cette commande supprime l'association de la clé publique du signataire Releases avec le dépôt docker/trusttest dans les données de confiance stockées sur le serveur notaire. Elle ne supprime pas la clé du signataire elle-même, seulement son autorisation à signer pour ce dépôt spécifique.

Vérifier la suppression du signataire

Dans cette étape, nous allons vérifier que le signataire a été correctement supprimé du dépôt. Nous pouvons le faire en utilisant à nouveau la commande docker trust inspect, tout comme nous l'avons fait dans la première étape.

Nous nous attendons à ce que, après avoir supprimé le signataire Releases de docker/trusttest dans l'étape précédente, l'exécution de docker trust inspect docker/trusttest ne montre plus Releases comme signataire.

Inspections à nouveau les signataires de docker/trusttest.

docker trust inspect docker/trusttest

Observez attentivement la sortie. Vous devriez maintenant constater que le signataire Releases n'est plus répertorié dans la section Signers de docker/trusttest.

Signers of docker/trusttest:

ROLE         KEYS
----         ----
Targets      0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Signatures for docker/trusttest:

SIGNER     KEYS
------     ----
Releases   0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Notez que bien que le signataire Releases soit supprimé de la liste des Signers autorisés, la section Signatures peut toujours afficher les signatures établies par Releases. En effet, la commande remove supprime l'autorisation du signataire à signer les futures images, mais elle n'élimine pas nécessairement immédiatement les signatures existantes du serveur notaire. Cependant, pour vérifier la suppression du rôle du signataire pour le dépôt, il suffit de vérifier la liste des Signers.

L'absence de Releases dans la section Signers of docker/trusttest confirme que le signataire a été correctement supprimé de ce dépôt spécifique.

Supprimer un signataire de plusieurs dépôts

Dans cette étape, nous apprendrons à supprimer un signataire de plusieurs dépôts Docker simultanément en utilisant Docker Content Trust. Cela est efficace lorsque l'autorisation d'un signataire doit être révoquée sur plusieurs dépôts.

La commande docker trust signer remove vous permet de spécifier plusieurs dépôts après le nom du signataire.

Supposons que nous ayons un autre dépôt, par exemple docker/another - trusttest, qui a également le signataire Releases. Pour supprimer le signataire Releases des dépôts docker/trusttest et docker/another - trusttest en une seule commande, vous devez lister les noms des deux dépôts.

Tout d'abord, téléchargeons l'image hello - world pour l'utiliser comme deuxième dépôt à des fins de démonstration. Nous allons ensuite lui attribuer une étiquette pour simuler un autre dépôt.

docker pull hello - world
docker tag hello - world docker/another - trusttest

Maintenant, supprimons le signataire Releases des dépôts docker/trusttest et docker/another - trusttest. Notez que dans un scénario réel, docker/another - trusttest n'a peut - être pas le signataire Releases, mais cette commande illustre la syntaxe pour supprimer un signataire de plusieurs dépôts.

docker trust signer remove Releases docker/trusttest docker/another - trusttest

Vous serez invité à confirmer la suppression pour chaque dépôt. Tapez y et appuyez sur Entrée pour chaque confirmation.

Removing signer "Releases" from docker/trusttest. Are you sure you want to continue? (y/n): y
Successfully removed signer "Releases" from docker/trusttest
Removing signer "Releases" from docker/another - trusttest. Are you sure you want to continue? (y/n): y
Successfully removed signer "Releases" from docker/another - trusttest

La sortie confirme que le signataire Releases a été supprimé des deux dépôts spécifiés. Cette commande est un moyen pratique de gérer les autorisations des signataires sur plusieurs dépôts en une seule action.

Vérifier la suppression du signataire de plusieurs dépôts

Dans cette étape, nous allons vérifier que le signataire a été correctement supprimé des deux dépôts spécifiés dans l'étape précédente. Nous allons à nouveau utiliser la commande docker trust inspect pour chaque dépôt.

Tout d'abord, examinons les signataires de docker/trusttest. Nous nous attendons à ce que le signataire Releases soit toujours absent de la liste des Signers, car nous l'avons supprimé dans une étape précédente et confirmé sa suppression.

docker trust inspect docker/trusttest

La sortie devrait montrer que Releases n'est pas répertorié dans la section Signers of docker/trusttest.

Signers of docker/trusttest:

ROLE         KEYS
----         ----
Targets      0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Signatures for docker/trusttest:

SIGNER     KEYS
------     ----
Releases   0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Maintenant, examinons les signataires de docker/another-trusttest. Étant donné que nous avons tenté de supprimer le signataire Releases de ce dépôt également, nous nous attendons à ce qu'il soit également absent de la liste des Signers de ce dépôt.

docker trust inspect docker/another-trusttest

La sortie pour docker/another-trusttest devrait indiquer qu'il n'y a pas de signataires, car hello-world (que nous avons étiqueté comme docker/another-trusttest) n'est pas signé par défaut, et nous avons tenté de supprimer le signataire Releases (qui n'était pas présent initialement pour cette étiquette spécifique).

No signatures for docker/another-trusttest

Cela confirme que la commande docker trust signer remove, lorsqu'elle est utilisée avec plusieurs noms de dépôts, tente de supprimer le signataire spécifié de chaque dépôt répertorié. La vérification pour docker/trusttest montre la suppression réussie d'un dépôt qui avait précédemment le signataire, et la vérification pour docker/another-trusttest montre l'état d'un dépôt qui n'avait pas le signataire (et donc, la tentative de suppression ne l'a pas ajouté).

Résumé

Dans ce laboratoire (lab), nous avons appris à gérer les signataires pour les dépôts Docker en utilisant la commande docker trust. Nous avons commencé par activer Docker Content Trust et par examiner les signataires actuels d'un dépôt à l'aide de docker trust inspect. Cela nous a permis de voir quelles clés étaient associées à la signature des images dans un dépôt donné.

Ensuite, nous avons pratiqué la suppression d'un signataire d'un seul dépôt et vérifié la suppression en utilisant à nouveau docker trust inspect. Enfin, nous avons étendu cette connaissance pour supprimer un signataire de plusieurs dépôts simultanément et confirmé la suppression réussie sur tous les dépôts spécifiés. Cette expérience pratique a démontré l'application concrète de la commande docker trust signer remove pour gérer la confiance des contenus dans un environnement Docker.