Secrets pour les données sensibles
Stockez et gérez de manière sécurisée les informations sensibles, comme les mots de passe et les clés API, avec Secrets.
Secrets pour les données sensibles est une leçon Kubernetes Basics gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kubernetes Basics, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kubernetes Basics comprend 4 leçons au total.
Protection des informations sensibles
Lorsque vous développez des applications, vous manipulez souvent des informations sensibles telles que des mots de passe de bases de données, des clés d’API ou des certificats privés.
Stocker directement ces informations dans le code de votre application ou dans des fichiers de configuration représente un risque majeur pour la sécurité ! Cela peut entraîner des fuites de données et exposer votre système.
Présentation des secrets Kubernetes
Les secrets Kubernetes sont des objets conçus pour stocker des données sensibles de manière sécurisée au sein de votre cluster.
Ils vous aident à séparer les informations sensibles des définitions de vos Pods et du code de votre application, afin de rendre vos déploiements plus sûrs et plus faciles à gérer.
- Séparation : gardez les données sensibles en dehors des images de conteneurs et du YAML des Pods.
- Accessibilité : les Pods peuvent les utiliser comme variables d’environnement ou comme fichiers montés.
Secrets ou ConfigMaps
Vous vous souvenez peut-être des ConfigMaps d’une leçon précédente : ils servent à stocker des données de configuration non sensibles.
Les secrets sont similaires, mais sont spécifiquement destinés aux données sensibles. Les deux stockent des paires clé-valeur, mais les secrets sont adaptés à la nature sensible de ces données.
- ConfigMaps : pour les configurations générales non sensibles (par exemple, les niveaux de journalisation et les points d’accès d’API).
- Secrets : pour les données sensibles (par exemple, les mots de passe, les jetons et les clés privées).
N’oubliez pas que les secrets sont encodés en base64, et non chiffrés par défaut !
Créer un secret à partir d’une valeur littérale
La manière la plus simple de créer un secret consiste à utiliser une valeur littérale avec kubectl create secret generic.
C’est utile pour de petites données sensibles uniques, comme un mot de passe simple.
kubectl create secret generic my-db-secret \
--from-literal=username=admin \
--from-literal=password=SuperSecretP@ssw0rd!Créer un secret à partir de fichiers
Pour des données sensibles plus volumineuses ou réparties sur plusieurs lignes, comme une clé privée ou un fichier de configuration complet, il vaut mieux créer un secret à partir de fichiers.
Commencez par créer les fichiers localement, puis référencez-les. Kubernetes lira leur contenu et le stockera.
# Create local files first
echo "my-api-key-12345" > api-key.txt
echo "my-token-abcde" > auth-token.txt
# Create the Secret
kubectl create secret generic app-credentials \
--from-file=api-key.txt \
--from-file=auth-token.txtUtiliser les secrets comme variables d’environnement
Les Pods peuvent utiliser les données d’un secret en les injectant directement dans leurs variables d’environnement. Cette méthode est courante pour les paires clé-valeur simples.
Vous pouvez référencer des clés individuelles d’un secret, ou toutes les clés à l’aide de envFrom.
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-env
spec:
containers:
- name: my-app
image: nginx:latest
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: my-db-secret
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: my-db-secret
key: passwordUtiliser les secrets comme fichiers montés
Pour les fichiers sensibles, comme les certificats et les clés privées, ou lorsqu’une application attend une configuration à des chemins de fichiers précis, vous pouvez monter des secrets sous forme de fichiers dans un Pod.
Chaque clé du secret devient un fichier dans le répertoire monté, et sa valeur constitue le contenu du fichier.
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-vol
spec:
containers:
- name: my-app
image: nginx:latest
volumeMounts:
- name: app-secret-volume
mountPath: "/etc/secrets"
readOnly: true
volumes:
- name: app-secret-volume
secret:
secretName: app-credentialsSécuriser vos secrets
Bien que les secrets protègent les données contre un examen superficiel, ils ne constituent pas une solution miracle. Retenez les points suivants :
- Encodage base64 : les secrets sont encodés en base64, et non chiffrés. Toute personne ayant accès au secret peut le décoder.
- RBAC : utilisez le contrôle d’accès basé sur les rôles (RBAC) pour limiter les personnes autorisées à lire, créer ou modifier les secrets.
- Chiffrement au repos : pour une véritable sécurité, activez le chiffrement au repos des données de votre magasin etcd (le magasin utilisé par Kubernetes). Les fournisseurs cloud proposent souvent cette fonctionnalité.
Mettre à jour les secrets
Si vos données sensibles changent, vous devrez mettre à jour le secret. Il vous suffit de relancer kubectl create secret avec les nouvelles valeurs pour le mettre à jour, ou d’utiliser kubectl apply -f avec un YAML mis à jour.
Toutefois, les Pods en cours d’exécution qui utilisent le secret ne récupéreront pas automatiquement les modifications. Pour appliquer ces modifications, vous devez généralement redémarrer ou redéployer les Pods qui utilisent le secret.
Vérification rapide : secrets
Imaginez que vous disposez d’une clé d’API privée à laquelle votre application doit accéder. Quelle méthode est la plus sécurisée et la plus appropriée pour stocker cette clé et la fournir à un Pod Kubernetes ?
Récapitulatif : les secrets pour les données sensibles
Excellent travail ! Vous avez appris à gérer les données sensibles dans Kubernetes !
- Les secrets stockent des informations sensibles telles que les mots de passe et les clés d’API.
- Ils sont encodés en base64 et peuvent être utilisés comme variables d’environnement ou comme fichiers montés.
- Appliquez toujours le RBAC et envisagez le chiffrement au repos pour une sécurité maximale.
- N’oubliez pas que les Pods doivent être redémarrés pour récupérer les mises à jour des secrets.
Questions Fréquemment Posées
La leçon « Secrets pour les données sensibles » est-elle gratuite ?
Oui — le texte complet de « Secrets pour les données sensibles » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kubernetes Basics, passe à CoddyKit PRO. Le cours Kubernetes Basics comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Secrets pour les données sensibles » ?
Stockez et gérez de manière sécurisée les informations sensibles, comme les mots de passe et les clés API, avec Secrets. Tu pratiques Kubernetes Basics avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Kubernetes Basics ?
Aucune expérience préalable n'est requise. Kubernetes Basics sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Secrets pour les données sensibles » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Kubernetes Basics ?
Oui. Chaque leçon Kubernetes Basics inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- ConfigMaps pour la configuration
- Secrets pour les données sensibles
- Volumes persistants et revendications
- StorageClasses et approvisionnement dynamique