Aller au contenu

GUIDE TECHNIQUE · KUBERNETES

Gérer ConfigMap et Secret Kubernetes

Créer une ConfigMap non sensible et un Secret fictif, les consommer effectivement dans un Pod puis vérifier les valeurs sans les afficher en clair dans les logs. Ajouter les limites de sécurité des Secrets Kubernetes.

Niveau Intermédiaire5 min de lecture— vuesKubernetes

L’ESSENTIEL EN BREF

Comment procéder ?

Créer une ConfigMap non sensible et un Secret fictif, les consommer effectivement dans un Pod puis vérifier les valeurs sans les afficher en clair dans les logs. Ajouter les limites de sécurité des Secrets Kubernetes.

Résultat à atteindre : ConfigMap créée avec données non sensibles.

Avant de commencer : Cluster de test autorisé et contexte kubectl vérifié.

01 · CADRAGE

Ce que vous allez mettre en place

Créer une ConfigMap non sensible et un Secret fictif, les consommer effectivement dans un Pod puis vérifier les valeurs sans les afficher en clair dans les logs. Ajouter les limites de sécurité des Secrets Kubernetes.

Pour qui : Administrateurs Kubernetes, équipes DevOps et SRE

Environnement et versions

Kubernetes stable avec kubectl compatible ; les images de laboratoire sont illustratives et doivent être validées avant usage réel.

Vérifiez la compatibilité avec votre environnement réel. Les versions ne sont jamais présumées identiques d’un tenant à l’autre.

02 · AVANT DE COMMENCER

Prérequis et points de contrôle

  • Cluster de test autorisé et contexte kubectl vérifié.
  • Droits de créer/supprimer un namespace de recette ; aucun workload client dans ce namespace.
  • Capacité à lire Pods, événements et logs après déploiement.

03 · VUE D’ENSEMBLE

Comprendre l’architecture et les flux

ARCHITECTURE TECHNIQUEComprendre la chaîne de bout en bout
01Contexte kubectl
02Manifest ou commande
03API Kubernetes
04Contrôleur
05Workload vérifié
Le contrôle doit couvrir la ressource Kubernetes et son comportement réel ; un manifeste accepté ne prouve pas seul la disponibilité.

04 · TUTORIEL

Procédure complète, étape par étape

Chaque étape explique l’action, sa raison, le contrôle attendu et les erreurs habituelles. Adaptez les exemples aux paramètres de votre propre environnement.

01

ÉTAPE 1 / 5

Créer un namespace dédié

La ConfigMap transporte des paramètres ordinaires ; Secret transporte des octets destinés à un traitement plus restreint mais n'est pas automatiquement chiffré de bout en bout.

  1. Choisir un cluster de recette avec RBAC limité.
  2. Créer un namespace dédié.
  3. Vérifier le contexte avant toute ressource.
Exemple techniqueÀ adapter à votre environnement
kubectl config current-context
kubectl create namespace adn-config-lab
Ce qui se passe à cette étape
1kubectl
2Créer un namespace dédié
3Résultat du cluster

À vérifier : Namespace créé dans le bon cluster.

Point de vigilance ADN : Limiter RBAC get/list/watch sur Secrets et activer le chiffrement au repos selon le cluster.

02

ÉTAPE 2 / 5

Créer une ConfigMap de test

Un paramètre public peut être fourni à un Pod par une ConfigMap.

  1. Créer adn-config avec mode=demo.
  2. Lire ses métadonnées sans données sensibles.
  3. Prévoir une référence explicite dans le manifeste de Pod.
Exemple techniqueÀ adapter à votre environnement
kubectl -n adn-config-lab create configmap adn-config --from-literal=mode=demo
kubectl -n adn-config-lab get configmap adn-config
Ce qui se passe à cette étape
1kubectl
2Créer une ConfigMap de test
3Résultat du cluster

À vérifier : adn-config existe avec une clé mode.

Point de vigilance ADN : Les ConfigMaps ne doivent contenir ni jetons ni mots de passe.

03

ÉTAPE 3 / 5

Créer un Secret fictif

Pour un vrai secret, éviter --from-literal sur la ligne de commande car les arguments peuvent être historisés ou visibles par d'autres processus.

  1. Dans le laboratoire, créer un fichier contenant une valeur fictive non sensible.
  2. Créer le Secret à partir du fichier de recette.
  3. Effacer le fichier de test après usage ; en production, utiliser un fournisseur sécurisé, des fichiers temporaires protégés ou une intégration de coffre.
Exemple techniqueÀ adapter à votre environnement
umask 077
printf 'EXEMPLE-VALEUR-FICTIVE' > demo-token.txt
kubectl -n adn-config-lab create secret generic adn-secret --from-file=api-key=demo-token.txt
rm demo-token.txt
kubectl -n adn-config-lab get secret adn-secret
Ce qui se passe à cette étape
1kubectl
2Créer un Secret fictif
3Résultat du cluster

À vérifier : Un Secret opaque nommé adn-secret existe.

Point de vigilance ADN : Ne pas exécuter kubectl get secret -o yaml ni afficher ses valeurs dans les comptes-rendus.

04

ÉTAPE 4 / 5

Vérifier les ressources sans révéler les valeurs

La création des ressources ne démontre rien tant qu'un Pod ne les consomme pas.

  1. Créer pod.yaml avec un Pod de recette lisant mode via ConfigMap et api-key via un volume Secret.
  2. Limiter l'affichage au nom des fichiers du volume et à la variable non sensible.
  3. Ne pas utiliser cat sur le chemin du Secret pendant la recette.
Exemple techniqueÀ adapter à votre environnement
apiVersion: v1
kind: Pod
metadata:
  name: demo-config
  namespace: adn-config-lab
spec:
  restartPolicy: Never
  containers:
    - name: demo
      image: busybox:1.36
      command: ["sh", "-c", "echo mode=$MODE; ls -l /etc/creds; sleep 300"]
      env:
        - name: MODE
          valueFrom:
            configMapKeyRef: {name: adn-config, key: mode}
      volumeMounts:
        - {name: creds, mountPath: /etc/creds, readOnly: true}
  volumes:
    - name: creds
      secret: {secretName: adn-secret}
# Enregistrer dans pod.yaml ; puis : kubectl apply -f pod.yaml
Ce qui se passe à cette étape
1kubectl
2Vérifier les ressources sans révéler les valeurs
3Résultat du cluster

À vérifier : Le Pod reçoit la variable non sensible MODE et le volume Secret monté sous /etc/creds.

Point de vigilance ADN : Le Pod est éphémère et ne doit pas être associé à un accès Internet externe.

05

ÉTAPE 5 / 5

Supprimer les ressources de recette

Valider la consommation sans afficher la valeur secrète est un prérequis sécurité.

  1. Appliquer pod.yaml et attendre Running.
  2. Vérifier que la ConfigMap apparaît sous mode=demo et que le fichier api-key existe.
  3. Supprimer seulement le namespace de test après vérification.
Exemple techniqueÀ adapter à votre environnement
kubectl apply -f pod.yaml
kubectl -n adn-config-lab wait --for=jsonpath='{.status.phase}'=Running pod/demo-config --timeout=90s
kubectl -n adn-config-lab logs pod/demo-config
# Attendu : mode=demo et fichier api-key listé, jamais sa valeur.
kubectl delete namespace adn-config-lab
Ce qui se passe à cette étape
1kubectl
2Supprimer les ressources de recette
3Résultat du cluster

À vérifier : Le Pod lit le mode et monte le fichier api-key sans afficher EXEMPLE-VALEUR-FICTIVE.

Point de vigilance ADN : La base etcd, le RBAC et les sauvegardes doivent être protégés ; un Secret ne remplace pas un gestionnaire de secrets.

SOURCES ET FIABILITÉ

Statut de validation du guide

Rédaction : ADN Consulting. Statut : procédure documentée, exécution en laboratoire non attestée.

Les exemples et versions indiqués doivent être vérifiés sur un environnement autorisé. Aucune validation individuelle par un consultant n’est revendiquée sans preuve.

Documentation officielle de référence

05 · RECETTE

Comment vérifier que tout fonctionne ?

Résultat attenduContrôles avant de considérer la procédure terminée
01

ConfigMap créée avec données non sensibles.

02

Secret créé depuis un fichier de recette, pas un véritable secret en argument CLI.

03

Pod consomme effectivement les deux objets.

04

Les sorties n'exposent pas la valeur du Secret.

05

Namespace de recette purgé et préconisations RBAC/chiffrement indiquées.

06 · DIAGNOSTIC

Problèmes fréquents et résolution

ImagePullBackOff

Cause probable : Image absente, accès registre ou tag incorrect

Que faire : Lire kubectl describe pod et les événements avant changement d'image.

CrashLoopBackOff

Cause probable : Conteneur instable ou configuration invalide

Que faire : Lire les logs --previous et livenessProbe ; corriger à la source.

Rollout bloqué

Cause probable : Pods non prêts ou capacité du cluster insuffisante

Que faire : Examiner rollout status, describe et quota du namespace.

Le conseil de l’expert ADN

Avant de généraliser cette configuration, validez-la sur un périmètre représentatif, documentez les critères de réussite et conservez une procédure de retour arrière. Une automatisation fiable se juge sur l’état final observé, les permissions maîtrisées et un retour arrière testé.

07 · QUESTIONS PRATIQUES

Questions fréquentes

Puis-je reprendre ces commandes en production ?

Non sans adaptation, revue de sécurité, approbation de changement et tests sur un environnement identique.

Pourquoi ne suffit-il pas d'appliquer le manifeste ?

Le contrôleur peut accepter l'objet alors que les Pods ne sont pas prêts ou que le service ne répond pas.

AUTRES TECHNOLOGIES

Guides complémentaires

Ce tutoriel s’inscrit dans une chaîne technique plus large. Retrouvez les méthodes associées aux technologies voisines.

Tous les guides Kubernetes

Pour aller plus loin