Comment utiliser la commande docker trust signer add pour ajouter un signataire

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), vous apprendrez à gérer les signataires pour les dépôts Docker en utilisant Docker Content Trust. Nous commencerons par inspecter les signataires actuels d'un dépôt pour comprendre qui est autorisé à signer les images.

Après l'inspection, vous apprendrez à ajouter un nouveau signataire à un dépôt en utilisant la commande docker trust signer add. Enfin, vous vérifierez que le nouveau signataire a été ajouté avec succès, garantissant qu'une autre entité peut maintenant signer les images pour ce dépôt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") subgraph Lab Skills docker/inspect -.-> lab-555256{{"Comment utiliser la commande docker trust signer add pour ajouter un signataire"}} 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 des images que vous utilisez. Les signataires sont des entités autorisées à signer les images pour un dépôt spécifique.

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

export DOCKER_CONTENT_TRUST=1

Maintenant que Content Trust est activé, lorsque vous téléchargez (pull) une image, Docker vérifiera sa signature. Si l'image n'est pas signée ou si la signature est invalide, l'opération de téléchargement échouera.

Pour inspecter les signataires actuels d'un dépôt, nous utilisons la commande docker trust signer. Nous allons inspecter les signataires du dépôt library/ubuntu, qui est une image officielle bien connue.

docker trust signer library/ubuntu

Cette commande répertoriera les signataires associés au dépôt library/ubuntu. Vous verrez une sortie similaire à celle-ci, affichant le nom du signataire et son identifiant de clé :

Signers for library/ubuntu

SIGNER              KEYS
DOCKER OFFICIAL     7000000000000000000000000000000000000000000000000000000000000000

La sortie montre que le dépôt library/ubuntu est signé par "DOCKER OFFICIAL" avec un identifiant de clé spécifique. Cela confirme que l'image que vous téléchargez à partir de ce dépôt est officiellement signée par Docker.

Ajouter un nouveau signataire au dépôt

Dans cette étape, nous apprendrons à ajouter un nouveau signataire à un dépôt Docker. Cela est utile lorsque vous souhaitez autoriser une autre partie ou un autre système à signer les images pour votre dépôt.

Avant d'ajouter un signataire, vous devez disposer d'une clé de signature. Si vous n'en avez pas, vous pouvez générer une nouvelle paire de clés en utilisant la commande docker trust key generate. Pour ce laboratoire (lab), nous supposerons que vous avez une paire de clés.

Pour ajouter un nouveau signataire, nous utilisons la commande docker trust signer add. Cette commande nécessite le nom du nouveau signataire, le nom du dépôt et le chemin vers la clé publique du nouveau signataire.

Créons un fichier de clé publique factice à des fins de démonstration. Dans un scénario réel, il s'agirait de la clé publique fournie par le nouveau signataire.

echo "-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0AQICYQADggEPADRUb2tlbiBmb3IgYSB0ZXN0IHNpZ25lcg==
-----END PUBLIC KEY-----" > ~/project/new_signer.pub

Cette commande crée un fichier nommé new_signer.pub dans votre répertoire ~/project avec un contenu de clé publique factice.

Maintenant, ajoutons un nouveau signataire nommé my-new-signer à un dépôt hypothétique your-dockerhub-user/my-image. Remplacez your-dockerhub-user par votre nom d'utilisateur Docker Hub si vous effectuiez cela avec un dépôt réel. Pour ce laboratoire, nous utiliserons un espace réservé.

docker trust signer add my-new-signer your-dockerhub-user/my-image --key ~/project/new_signer.pub

Vous serez invité à entrer le mot de passe de la clé racine du dépôt. Il s'agit d'une mesure de sécurité pour garantir que seuls les utilisateurs autorisés peuvent ajouter des signataires. Étant donné que nous sommes dans un environnement de laboratoire et que nous n'interagissons pas avec un véritable registre Docker, vous pouvez entrer un mot de passe factice.

Après avoir entré le mot de passe, la commande ajoutera le nouveau signataire aux données de confiance (trust data) du dépôt. Vous devriez voir une sortie indiquant que le signataire a été ajouté.

Adding signer "my-new-signer" to your-dockerhub-user/my-image...
Successfully added signer "my-new-signer" to your-dockerhub-user/my-image

Cette commande met à jour les données de confiance pour le dépôt spécifié sur le registre Docker, en ajoutant la clé publique du nouveau signataire.

Vérifier que le nouveau signataire a été ajouté

Dans cette étape, nous allons vérifier que le nouveau signataire que nous avons ajouté à l'étape précédente a été correctement ajouté aux données de confiance (trust data) du dépôt.

Pour ce faire, nous allons de nouveau utiliser la commande docker trust signer, tout comme nous l'avons fait dans la première étape pour inspecter les signataires initiaux. Cette fois, nous allons inspecter les signataires du dépôt où nous avons ajouté le nouveau signataire.

Rappelez-vous que nous avons ajouté le signataire my-new-signer au dépôt hypothétique your-dockerhub-user/my-image. Inspectons les signataires de ce dépôt. N'oubliez pas de remplacer your-dockerhub-user par l'espace réservé que nous avons utilisé à l'étape précédente.

docker trust signer your-dockerhub-user/my-image

Cette commande interrogera le registre Docker pour obtenir les données de confiance associées au dépôt your-dockerhub-user/my-image et répertoriera tous les signataires.

Vous devriez maintenant voir une sortie qui inclut à la fois le signataire initial (s'il y en avait un) et le nouveau signataire my-new-signer que vous avez ajouté à l'étape précédente. La sortie affichera le nom de chaque signataire et leur identifiant de clé correspondant.

Signers for your-dockerhub-user/my-image

SIGNER              KEYS
my-new-signer       <key ID of the new signer>

La présence de my-new-signer dans la sortie confirme que le signataire a été ajouté avec succès aux données de confiance du dépôt. Cela signifie que les images signées avec la clé publique associée à my-new-signer seront désormais considérées comme fiables pour ce dépôt lorsque Docker Content Trust est activé.

Résumé

Dans ce laboratoire (lab), nous avons appris à gérer les signataires pour les dépôts Docker en utilisant Docker Content Trust. Nous avons commencé par activer Docker Content Trust pour garantir l'intégrité des images et la vérification de l'éditeur. Ensuite, nous avons pratiqué l'inspection des signataires actuels d'un dépôt, plus précisément de l'image library/ubuntu, en utilisant la commande docker trust signer, qui a affiché le signataire existant et son identifiant de clé.

Après l'inspection, nous sommes passés à la procédure d'ajout d'un nouveau signataire à un dépôt en utilisant la commande docker trust signer add. Cette étape est cruciale pour autoriser d'autres entités à signer les images pour un dépôt spécifique. Bien que les détails complets de l'ajout d'un signataire n'aient pas été fournis dans l'extrait, l'objectif du laboratoire est de démontrer cette capacité. La dernière étape, consistant à vérifier l'ajout du nouveau signataire, impliquerait de ré-inspecter les signataires du dépôt pour confirmer que le nouveau signataire est répertorié, garantissant ainsi la réussite du processus.