Comment utiliser la commande docker swarm ca pour gérer le CA du Swarm

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 l'Autorité de Certification (CA - Certificate Authority) de Docker Swarm à l'aide de la commande docker swarm ca. Nous aborderons les opérations essentielles, notamment la visualisation du certificat CA actuel du Swarm pour comprendre ses détails et sa validité.

En outre, vous explorerez comment faire tourner le CA du Swarm. Cela inclut la rotation du CA avec un nouveau certificat généré pour les mises à jour de routine, la rotation avec un certificat et une clé personnalisés pour des exigences de sécurité spécifiques, et l'exécution de la rotation en mode détaché pour une exécution en arrière - plan. Ces étapes sont cruciales pour maintenir la sécurité et la santé de votre cluster Docker Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/info -.-> lab-555239{{"Comment utiliser la commande docker swarm ca pour gérer le CA du Swarm"}} docker/system -.-> lab-555239{{"Comment utiliser la commande docker swarm ca pour gérer le CA du Swarm"}} end

Afficher le certificat CA actuel du Swarm

Dans cette étape, nous apprendrons à afficher le certificat CA actuel du Swarm. L'Autorité de Certification (CA - Certificate Authority) du Swarm est responsable de l'émission de certificats aux nœuds d'un cluster Docker Swarm, qui sont utilisés pour une communication sécurisée entre les nœuds.

Pour afficher le certificat CA actuel du Swarm, vous pouvez utiliser la commande docker swarm ca avec le paramètre --cert-dir pour spécifier le répertoire où sont stockés les certificats du Swarm. Par défaut, ce répertoire est /var/lib/docker/swarm/certificates.

Tout d'abord, assurons - nous que vous êtes dans le bon répertoire. Votre répertoire de travail par défaut est ~/project.

pwd

Vous devriez voir une sortie similaire à ceci :

/home/labex/project

Maintenant, affichons le certificat CA actuel du Swarm. Nous utiliserons sudo car l'accès au répertoire /var/lib/docker nécessite des privilèges root.

sudo docker swarm ca --cert-dir /var/lib/docker/swarm/certificates

Cette commande affichera des informations sur le certificat CA du Swarm, y compris sa période de validité et son émetteur. La sortie ressemblera à ceci :

Certificate information:
------------------------
Common Name: swarm-ca
Organization:
Organizational Unit:
Country:
Province:
Locality:
Valid From: 2023-10-27 00:00:00 +0000 UTC
Valid Until: 2024-10-26 00:00:00 +0000 UTC
Issuer: CN=swarm-ca

Cette sortie montre les détails du certificat CA actuel du Swarm. Les champs Valid From et Valid Until indiquent la période de validité du certificat. Le champ Issuer montre qui a émis le certificat, qui dans ce cas est l'Autorité de Certification du Swarm elle - même.

Faire tourner le CA du Swarm avec un nouveau certificat généré

Dans cette étape, nous apprendrons à faire tourner le CA du Swarm avec un nouveau certificat généré. Faire tourner le CA du Swarm est une bonne pratique de sécurité pour garantir que les certificats utilisés pour la communication au sein du cluster Swarm sont régulièrement mis à jour.

Lorsque vous faites tourner le CA du Swarm, Docker génère un nouveau certificat et une nouvelle clé pour le CA, puis émet de nouveaux certificats à tous les nœuds du Swarm. Ce processus est généralement transparent et ne nécessite pas d'arrêt de vos services.

Pour faire tourner le CA du Swarm avec un nouveau certificat généré, vous pouvez utiliser la commande docker swarm ca --rotate. Cette commande générera automatiquement un nouveau CA et distribuera les nouveaux certificats aux nœuds.

Assurez - vous que vous êtes dans votre répertoire personnel ~/project.

pwd

Vous devriez voir /home/labex/project.

Maintenant, faisons tourner le CA du Swarm. Nous utiliserons sudo car cette opération nécessite des privilèges root.

sudo docker swarm ca --rotate

Vous verrez une sortie indiquant que le CA est en cours de rotation. La sortie sera similaire à ceci :

Swarm CA rotated.

Une fois la rotation terminée, le Swarm commencera à utiliser le nouveau certificat CA. Les nœuds du Swarm mettront automatiquement à jour leurs certificats pour qu'ils soient signés par le nouveau CA.

Pour vérifier que le CA a été tourné, vous pouvez afficher à nouveau le certificat CA du Swarm en utilisant la commande de l'étape précédente :

sudo docker swarm ca --cert-dir /var/lib/docker/swarm/certificates

Comparez les dates Valid From et Valid Until avec la sortie précédente. Vous devriez constater que la date Valid From est maintenant plus proche de la date actuelle, ce qui indique qu'un nouveau certificat a été généré.

Faire tourner le CA du Swarm avec un certificat et une clé personnalisés

Dans cette étape, nous apprendrons à faire tourner le CA du Swarm en utilisant un certificat et une clé personnalisés. Cela est utile si vous souhaitez utiliser votre propre infrastructure d'Autorité de Certification (CA) ou intégrer le Swarm à une infrastructure de clé publique (PKI - Public Key Infrastructure) existante.

Pour faire tourner le CA du Swarm avec un certificat et une clé personnalisés, vous devez fournir les chemins vers votre certificat et votre clé CA personnalisés en utilisant les options --cert et --key avec la commande docker swarm ca --rotate.

Tout d'abord, créons des fichiers de certificat et de clé factices à des fins de démonstration. Dans un scénario réel, vous utiliseriez votre certificat et votre clé CA réels.

Assurez - vous que vous êtes dans votre répertoire personnel ~/project.

pwd

Vous devriez voir /home/labex/project.

Maintenant, créons les fichiers de certificat et de clé factices. Nous utiliserons openssl pour générer un certificat auto - signé et une clé privée.

openssl req -x509 -nodes -newkey rsa:2048 -keyout ~/project/custom_ca.key -out ~/project/custom_ca.crt -days 365 -subj "/CN=custom-swarm-ca"

Cette commande génère une clé privée (custom_ca.key) et un certificat auto - signé (custom_ca.crt) valide pour 365 jours avec le nom commun "custom - swarm - ca".

Maintenant que nous avons notre certificat et notre clé personnalisés, nous pouvons faire tourner le CA du Swarm en utilisant ces fichiers.

sudo docker swarm ca --rotate --cert ~/project/custom_ca.crt --key ~/project/custom_ca.key

Vous verrez une sortie indiquant que le CA est en cours de rotation avec le certificat et la clé personnalisés. La sortie sera similaire à ceci :

Swarm CA rotated.

Une fois la rotation terminée, le Swarm commencera à utiliser votre certificat CA personnalisé. Les nœuds du Swarm mettront automatiquement à jour leurs certificats pour qu'ils soient signés par votre CA personnalisé.

Pour vérifier que le CA a été tourné avec votre certificat personnalisé, vous pouvez afficher à nouveau le certificat CA du Swarm :

sudo docker swarm ca --cert-dir /var/lib/docker/swarm/certificates

Examinez la sortie. Le champ Issuer devrait maintenant afficher le nom commun de votre CA personnalisé, qui est "CN=custom - swarm - ca".

Faire tourner le CA du Swarm en mode détaché

Dans cette étape, nous apprendrons à faire tourner le CA du Swarm en mode détaché. Le mode détaché vous permet de générer le nouveau certificat et la nouvelle clé du CA sans les distribuer immédiatement aux nœuds du Swarm. Cela peut être utile dans les scénarios où vous devez gérer manuellement la distribution des nouveaux certificats.

Pour faire tourner le CA du Swarm en mode détaché, vous utilisez la commande docker swarm ca --rotate --detach. Cette commande générera le nouveau certificat et la nouvelle clé du CA et les enregistrera dans le répertoire des certificats du Swarm (/var/lib/docker/swarm/certificates), mais ne mettra pas automatiquement à jour les nœuds.

Assurez - vous que vous êtes dans votre répertoire personnel ~/project.

pwd

Vous devriez voir /home/labex/project.

Maintenant, faisons tourner le CA du Swarm en mode détaché. Nous utiliserons sudo car cette opération nécessite des privilèges root.

sudo docker swarm ca --rotate --detach

Vous verrez une sortie indiquant que le CA a été tourné en mode détaché. La sortie sera similaire à ceci :

Swarm CA rotated in detached mode.

En mode détaché, le nouveau certificat et la nouvelle clé du CA sont générés et stockés, mais les nœuds du Swarm ne sont pas automatiquement mis à jour. Vous devrez ensuite distribuer manuellement le nouveau certificat CA aux autres nœuds de votre cluster Swarm et leur indiquer de recharger leurs configurations.

Pour vérifier que le CA a été tourné en mode détaché, vous pouvez afficher à nouveau le certificat CA du Swarm :

sudo docker swarm ca --cert-dir /var/lib/docker/swarm/certificates

Vous devriez constater que la date Valid From du certificat a été mise à jour, ce qui indique qu'un nouveau CA a été généré. Cependant, les nœuds du Swarm utilisent toujours l'ancien CA jusqu'à ce qu'ils soient mis à jour manuellement.

Résumé

Dans ce laboratoire (lab), nous avons appris à gérer l'Autorité de Certification (CA - Certificate Authority) du Swarm en utilisant la commande docker swarm ca. Nous avons commencé par afficher le certificat CA actuel du Swarm pour comprendre ses détails, tels que la période de validité et l'émetteur, en utilisant l'option --cert-dir.

Ensuite, nous avons exploré comment faire tourner le CA du Swarm avec un certificat nouvellement généré, une pratique de sécurité essentielle pour mettre à jour les certificats utilisés pour la communication sécurisée au sein du cluster Swarm.