Comment créer un TLS secret dans Kubernetes

Comment Creer Un Tls Secret Dans Kubernetes



Kubernetes est un outil open source utilisé pour exécuter et gérer l'application conteneurisée à l'intérieur du cluster. Il effectue diverses tâches pour contrôler, exécuter et sécuriser les informations d’identification de l’application via le secret et l’entrée.

Ingress est utilisé pour gérer le trafic entrant des applications ainsi que pour la terminaison SSL. En revanche, les secrets sont utilisés pour stocker des informations confidentielles et des certificats TLS à des fins d'application.

Cet article illustrera :







Quels sont les secrets de Kubernetes ?

Les secrets sont l'une des ressources Kubernetes, utilisées pour stocker des informations confidentielles telles que les informations de connexion des utilisateurs, les clés, les certificats ou les jetons. Les secrets peuvent être créés individuellement et connectés aux pods. Cela empêche le développeur de fournir des données confidentielles dans le code et fournit également une couche de sécurité supplémentaire. Différents types de secrets peuvent être créés et utilisés. Les secrets les plus couramment utilisés sont :



Secret générique : Les secrets génériques sont utilisés pour stocker des informations de base telles que des mots de passe, des jetons, des clés API, des clés OAuth, etc.



Secret TLS : Les secrets TLS sont utilisés pour stocker les clés privées et les certificats signés par l'autorité de certification. Pour garantir la sécurité des applications exécutées dans Kubernetes et sécuriser la communication au sein du cluster, l'utilisateur doit généralement créer et intégrer des secrets TLS dans le pod.





Registre Docker : Il est utilisé pour stocker les informations d'identification du registre Docker afin d'extraire facilement les images du registre.

Condition préalable : générer une clé privée et un certificat

Pour créer le certificat et la clé privée pour améliorer la sécurité, utilisez OpenSSL qui crée le CSR (demande de signature de certificat) et la clé privée. Ensuite, utilisez CSR pour générer les certificats auto-signés ou CA.



Pour utiliser les commandes OpenSSL sous Windows, les utilisateurs doivent installer Git. A cet effet, suivez notre lien « Installer git sur Windows ' article.

Après avoir installé git, suivez les instructions ci-dessous pour générer une clé privée et un certificat signé.

Étape 1 : Lancer le terminal Git Bash

Faites une recherche sur ' Git-Bash » dans le menu Démarrer et lancez le terminal :

Pour vérifier le répertoire actuel, utilisez le ' mot de passe ' commande:

mot de passe

Actuellement, nous travaillons dans le répertoire %USERPROFILE% :

Étape 2 : Créer un nouveau répertoire

Créez un nouveau répertoire pour enregistrer les certificats et la clé privée :

mkdir certificat

Accédez au répertoire nouvellement créé en utilisant le «  CD ' commande:

CD certificat

Étape 3 : Générer une clé privée

Maintenant, générez la clé privée via la commande donnée. Ici, la clé privée générée sera enregistrée dans « moncert.key » :

clé genpopenssl -algorithme RSA -dehors moncert.key

Étape 4 : Générer une CSR

Pour générer le CSR (demande de service de certificat) pour obtenir un certificat signé, utilisez la commande donnée :

demande openssl -nouveau -clé moncert.key -dehors moncert.csr

Étape 5 : Générer un certificat

Enfin, à l'aide de la clé privée générée et du CSR, créez un certificat et enregistrez-le dans le dossier « moncert.crt ' déposer. Pour cela, exécutez la commande ci-dessous :

ouvre SSL x509 -req -dans moncert.csr -clé de signe moncert.key -dehors moncert.crt -jours 365

Après avoir généré les certificats TLS, l'utilisateur peut créer le TLS secret en suivant la section ci-dessous.

Comment créer un TLS secret dans Kubernetes ?

Pour garantir la sécurité des applications et sécuriser les communications au sein et à l'extérieur du cluster Kubernetes, les certificats TLS (Transport Layer Security) sont essentiels et sont utilisés dans le cryptage des données. Le secret Kubernetes nous permet d'intégrer le certificat TLS avec les pods en cours d'exécution via TLS secret. Pour créer un TLS secret dans Kubernetes, suivez les instructions suivantes.

Étape 1 : Démarrez le cluster Minikube

Pour démarrer le cluster minikube, lancez d’abord Windows PowerShell en tant qu’administrateur. Après cela, créez et exécutez le cluster à l'aide du ' démarrage du minikube ' commande:

démarrage du minikube

Étape 2 : obtenir des nœuds

Accédez au nœud Kubernetes pour vérifier si le cluster est démarré ou non :

minikube obtient des nœuds

Étape 3 : Créer un TLS secret

Créez le secret TLS dans Kubernetes en utilisant « kubectl crée un secret –cert= –key= ' commande. Ici, le type secret peut être « générique ', ' tls ', ou ' registre docker ». Pour créer un secret TLS, nous avons défini le type de secret sur « tls » :

kubectl crée un secret de démonstration tls --cert =C:\Utilisateurs\Dell\cert\mycert.crt --clé =C:\Utilisateurs\Dell\cert\mycert.key

Étape 4 : Obtenez des secrets

Pour confirmation, répertoriez le secret Kubernetes à l'aide de la commande donnée :

Kubectl devient secret

Ici, vous pouvez voir que nous avons effectivement créé un « démo-secret ' cela contient ' 2 ' Valeurs des données :

Étape 5 : Décrire le secret

Pour voir comment les données sont visualisées ou stockées en secret, décrivez le secret en utilisant le « kubectl décrit le secret ' commande:

kubectl décrit le secret de démonstration

Vous pouvez voir que les valeurs sont stockées en octets et ne peuvent pas être affichées directement contrairement aux ConfigMaps Kubernetes :

Comment créer un TLS secret via un fichier Yaml ?

Pour créer un TLS secret via un fichier yaml, créez d'abord un ' secret.yml ' fichier, ajoutez le certificat codé en base64 tls dans le ' tls.crt ', et ajoutez la touche clé codée en base64 dans le ' tls.clé ».

Pour une démonstration, suivez les étapes répertoriées.

Étape 1 : Créer un fichier Yaml

Créez un fichier nommé ' secret.yml » et collez le code donné :

VersionAPI : v1

données
:

tls.crt
: 'certificat encodé en base64'

tls.clé
: 'clé codée en base64'

gentil
: Secrète

métadonnées
:

nom
: Mytls-secret

espace de noms
: défaut

taper
: kubernetes.io/tls

Dans l'extrait ci-dessus, remplacez les valeurs de clé « tls.crt » et « tls.key » par votre certificat et vos valeurs de clé d'origine :

Étape 2 : Créer un secret

Maintenant, appliquez le fichier yaml secret via le ' kubectl apply -f ' commande:

Kubectl appliquer -F secret.yml

Le résultat montre que nous avons réussi à créer le «  Mytls-secret » en utilisant le fichier yaml :

Remarque : Affichez le certificat TLS et la clé privée

Pour afficher le certificat encodé en base64 et l'utiliser dans le fichier yaml, exécutez le ' cat | base64 » dans le terminal git bash :

chat moncert.crt | base64

Afin d'afficher la clé codée en base64, utilisez ' cat | base64 ' commande:

chat moncert.key | base64

Comment intégrer Secret TLS avec le pod Kubernetes ?

Après avoir créé le TSL secret, l'utilisateur peut l'intégrer au pod Kubernetes. Pour ce faire, suivez les instructions suivantes.

Étape 1 : Créer un fichier Yaml

Créez un fichier nommé ' pod.yml ' et collez l'extrait ci-dessous dans le fichier :

Version api : v1

genre : Gousse

métadonnées :

nom : démo-pod

spécification :

conteneurs :

- nom : html-cont

image : rafia098 / html-img : 1.0

envDe :

- SecretRef :

nom : démo-secret

Dans l'extrait ci-dessus :

  • ' gentil La clé ' spécifie la ressource Kubernetes que l'utilisateur crée.
  • ' nom La touche ' définira le nom du pod.
  • ' conteneurs ' La clé stockera les informations sur le conteneur.
  • ' nom ' sous la touche 'conteneurs' définira le nom du conteneur.
  • ' image La clé ' fournira l'image de l'application ou du conteneur pour créer et démarrer l'application à l'intérieur du conteneur.
  • ' envFrom La clé ' définira la variable d'environnement à partir d'autres ressources Kubernetes. Ici, pour embarquer le TLS secret dans un pod, « secretRef » est utilisé pour fournir une référence secrète. Pour intégrer le secret TLS ci-dessus, spécifiez le nom du secret dans la clé « nom ».

Étape 2 : Créer ou mettre à niveau le pod

Ensuite, ouvrez le dossier où se trouve le «  pod.yml ' Le fichier est créé :

CD C:\Utilisateurs\Dell\Documents\Kubernetes\Secret

Appliquez le fichier yaml pour créer ou reconfigurer le pod à l'aide du bouton « Kubectl appliquer ' commande:

Kubectl appliquer -F pod.yml

Étape 3 : accéder aux pods Kubernetes

Pour vérification, répertoriez les pods Kubernetes :

Kubectl récupère le pod

Ici, vous pouvez voir que nous avons créé le « module de démonstration ' avec succès:

Étape 4 : Décrire le pod

Pour vérifier si le pod a intégré le TLS secret ou non, décrivez le pod à l'aide de la commande ci-dessous :

kubectl décrit le pod de démonstration

Le résultat ci-dessous montre que nous avons intégré avec succès le secret TLS avec le pod :

Nous avons expliqué comment créer un TLS secret et l'intégrer à l'application Kubernetes exécutée dans le pod.

Conclusion

Pour créer le TLS secret dans Kubernetes, créez d’abord le certificat signé TLS et la clé privée. Après cela, démarrez le cluster Kubernetes et exécutez le «  kubectl crée un secret –cert= –key= ' commande. Les utilisateurs peuvent également créer le TLS secret à l'aide du manifeste yaml. Cet article a illustré comment créer le secret TLS et comment intégrer le secret avec une application ou un pod en cours d'exécution.