Comment utiliser la commande docker secret create pour gérer les données sensibles

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 efficacement les données sensibles dans votre environnement Docker en utilisant la commande docker secret create. Vous explorerez différentes méthodes pour créer des secrets, notamment en lisant des données depuis l'entrée standard (STDIN) et depuis un fichier.

Le laboratoire vous guidera tout au long du processus de création de secrets avec des noms spécifiques et à partir de différentes sources. Vous apprendrez également à ajouter des étiquettes (labels) à vos secrets pour une meilleure organisation et à inspecter les détails des secrets que vous avez créés afin de vérifier leur contenu et leur configuration. Cette expérience pratique vous dotera des compétences fondamentales nécessaires pour sécuriser les informations sensibles lors du déploiement d'applications avec Docker Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/inspect -.-> lab-555220{{"Comment utiliser la commande docker secret create pour gérer les données sensibles"}} docker/create -.-> lab-555220{{"Comment utiliser la commande docker secret create pour gérer les données sensibles"}} end

Créer un secret depuis l'entrée standard (STDIN)

Dans cette étape, vous apprendrez à créer un secret Docker en lisant des données depuis l'entrée standard (STDIN). Cela est utile pour fournir des informations sensibles à un conteneur sans les stocker directement dans un fichier sur le système hôte.

Tout d'abord, créons un simple secret contenant un mot de passe. Nous utiliserons la commande echo pour afficher le mot de passe et le rediriger (pipe) vers la commande docker secret create.

echo "mysecretpassword" | docker secret create my_password_secret -

Dans cette commande :

  • echo "mysecretpassword" affiche la chaîne de caractères "mysecretpassword" sur la sortie standard.
  • | est l'opérateur de redirection (pipe), qui envoie la sortie de la commande echo en tant qu'entrée pour la commande suivante.
  • docker secret create est la commande pour créer un nouveau secret Docker.
  • my_password_secret est le nom que nous donnons à ce secret.
  • - indique à docker secret create de lire les données du secret depuis l'entrée standard (STDIN).

Vous devriez voir l'ID du secret nouvellement créé en sortie.

Créer un secret à partir d'un fichier

Dans cette étape, vous apprendrez à créer un secret Docker à partir du contenu d'un fichier. C'est une méthode courante pour gérer des secrets tels que des clés API, des certificats ou des fichiers de configuration.

Tout d'abord, créons un simple fichier contenant des données sensibles. Nous allons créer un fichier nommé api_key.txt dans votre répertoire personnel (~/project).

echo "my_super_secret_api_key_12345" > ~/project/api_key.txt

Cette commande utilise echo pour écrire la chaîne de caractères "my_super_secret_api_key_12345" dans le fichier ~/project/api_key.txt.

Maintenant, nous allons créer un secret Docker en utilisant le contenu de ce fichier.

docker secret create my_api_key_secret ~/project/api_key.txt

Dans cette commande :

  • docker secret create est la commande pour créer un nouveau secret Docker.
  • my_api_key_secret est le nom que nous donnons à ce secret.
  • ~/project/api_key.txt est le chemin du fichier contenant les données du secret. Docker lira le contenu de ce fichier et le stockera en tant que secret.

Vous devriez voir l'ID du secret nouvellement créé en sortie.

Créer un secret avec des étiquettes (labels)

Dans cette étape, vous apprendrez à ajouter des étiquettes (labels) à un secret Docker lors de sa création. Les étiquettes sont des paires clé-valeur que vous pouvez attacher aux objets Docker pour faciliter leur organisation et leur identification. Cela est particulièrement utile dans les déploiements plus importants.

Nous allons créer un autre secret depuis l'entrée standard (STDIN), mais cette fois-ci nous allons lui ajouter des étiquettes.

echo "anothersecretvalue" | docker secret create --label env=production --label app=webserver my_labeled_secret -

Dans cette commande :

  • echo "anothersecretvalue" fournit les données du secret via l'entrée standard (STDIN).
  • docker secret create est la commande pour créer le secret.
  • --label env=production ajoute une étiquette avec la clé env et la valeur production.
  • --label app=webserver ajoute une autre étiquette avec la clé app et la valeur webserver. Vous pouvez ajouter plusieurs étiquettes en répétant le paramètre --label.
  • my_labeled_secret est le nom du secret.
  • - indique que les données du secret doivent être lues depuis l'entrée standard (STDIN).

Vous devriez voir l'ID du secret nouvellement créé en sortie. L'ajout d'étiquettes vous permet de catégoriser vos secrets, les rendant plus faciles à gérer et à filtrer par la suite.

Inspecter le secret créé

Dans cette étape, vous apprendrez à inspecter les détails d'un secret Docker en utilisant la commande docker secret inspect. Cette commande fournit des informations détaillées sur un secret, y compris son ID, son nom, la date de création et toutes les étiquettes (labels) associées.

Inspectons le secret que nous avons créé à l'étape précédente, my_labeled_secret.

docker secret inspect my_labeled_secret

Cette commande affichera un objet JSON contenant les détails du my_labeled_secret. Vous devriez voir des informations telles que l'ID du secret, son nom (my_labeled_secret), la date à laquelle il a été créé et les étiquettes que nous avons ajoutées (env=production et app=webserver).

Notez que les données réelles du secret ne sont pas affichées lors de l'inspection d'un secret pour des raisons de sécurité.

Vous pouvez également inspecter les autres secrets que nous avons créés :

docker secret inspect my_password_secret
docker secret inspect my_api_key_secret

L'inspection des secrets est un moyen utile de vérifier leur existence, de vérifier leur configuration et de confirmer que les étiquettes ont été correctement appliquées.

Résumé

Dans ce laboratoire (lab), vous avez appris à gérer efficacement les données sensibles au sein de Docker en utilisant la commande docker secret create. Vous avez pratiqué la création de secrets en lisant directement les données depuis l'entrée standard (STDIN), ce qui est utile pour éviter de stocker des informations sensibles dans des fichiers sur l'hôte. Vous avez également appris à créer des secrets à partir du contenu d'un fichier, une méthode courante pour gérer différents types de données sensibles telles que des clés API ou des certificats.

En outre, vous avez exploré comment améliorer la gestion des secrets en ajoutant des étiquettes (labels) lors de la création, permettant ainsi une meilleure organisation et identification des secrets. Enfin, vous avez appris à inspecter les détails des secrets créés pour vérifier leur configuration et leur contenu (bien que les détails de l'étape d'inspection complète n'aient pas été fournis dans le résumé). Ces techniques offrent des moyens sécurisés de gérer les informations sensibles dans votre environnement Docker.