Aller au contenu principal

Quiz Module 5 - Configuration et Secrets

Instructions​

Ce quiz contient 30 questions à choix multiples.


Question 1​

Qu'est-ce qu'un ConfigMap?

Voir l'explication

Réponse correcte: Un objet Kubernetes qui stocke des données de configuration non sensibles

Explication: Les ConfigMaps permettent de séparer la configuration du code applicatif.


Question 2​

Qu'est-ce qu'un Secret dans Kubernetes?

Voir l'explication

Réponse correcte: Un objet Kubernetes qui stocke des données sensibles comme des mots de passe, tokens, ou clés

Explication: Les Secrets sont similaires aux ConfigMaps mais sont conçus pour stocker des données sensibles. Ils sont stockés en base64 (pas de chiffrement par défaut).


Question 3​

Comment créer un ConfigMap depuis un fichier?

Voir l'explication

Réponse correcte: kubectl create configmap [name] --from-file=[file]

Explication: La commande --from-file permet de créer un ConfigMap depuis un fichier, où la clé sera le nom du fichier et la valeur sera le contenu du fichier.


Question 4​

Quelle est la taille maximale d'une entrée dans un ConfigMap?

Voir l'explication

Réponse correcte: 1 MiB

Explication: Chaque entrée dans un ConfigMap ou Secret est limitée à 1 MiB. Pour des données plus grandes, utilisez des volumes.


Question 5​

Comment injecter un ConfigMap comme variable d'environnement dans un Pod?

Voir l'explication

Réponse correcte: envFrom: - configMapRef: name: [configmap-name]

Explication: envFrom permet d'injecter toutes les clés d'un ConfigMap comme variables d'environnement. Pour une clé spécifique, utilisez env avec valueFrom.configMapKeyRef.


Question 6​

Comment monter un ConfigMap comme volume dans un Pod?

Voir l'explication

Réponse correcte: volumes: - name: config configMap: name: [configmap-name]

Explication: Pour monter un ConfigMap comme volume, définissez-le dans la section volumes du Pod, puis utilisez volumeMounts pour le monter dans le conteneur.


Question 7​

Quelle est la différence principale entre un ConfigMap et un Secret?

Voir l'explication

Réponse correcte: Les Secrets sont conçus pour les données sensibles et sont stockés en base64, les ConfigMaps pour les données non sensibles

Explication: Les Secrets sont destinés aux données sensibles mais ne sont pas chiffrés par défaut (juste encodés en base64). Les ConfigMaps sont pour les données non sensibles.


Question 8​

Comment créer un Secret depuis des littéraux?

Voir l'explication

Réponse correcte: kubectl create secret generic [name] --from-literal=[key]=[value]

Explication: --from-literal permet de créer un Secret directement depuis des paires clé-valeur en ligne de commande.


Question 9​

Quelle est la bonne pratique pour gérer les secrets en production?

Voir l'explication

Réponse correcte: Utiliser des outils de gestion de secrets externes (Vault, AWS Secrets Manager) avec External Secrets Operator

Explication: Les secrets ne doivent jamais être commités dans Git. Utilisez des outils externes comme Vault ou les services cloud avec External Secrets Operator pour une gestion sécurisée.


Question 10​

Qu'est-ce que le chiffrement au repos (encryption at rest) pour les Secrets?

Voir l'explication

Réponse correcte: Une fonctionnalité qui chiffre les Secrets dans etcd en utilisant une EncryptionConfig

Explication: Le chiffrement au repos permet de chiffrer les Secrets dans etcd en configurant une EncryptionConfig avec des providers de chiffrement (AES, KMS, etc.).


Question 11​

Quelle commande permet de voir le contenu d'un Secret (décodé)?

Voir l'explication

Réponse correcte: kubectl get secret [name] -o jsonpath='{.data.[key]}' | base64 -d

Explication: Les Secrets sont stockés en base64. Pour voir le contenu décodé, utilisez jsonpath pour extraire la valeur et base64 -d pour décoder.


Question 12​

Qu'est-ce qu'External Secrets Operator?

Voir l'explication

Réponse correcte: Un opérateur Kubernetes qui synchronise les secrets depuis des systèmes externes (AWS Secrets Manager, Vault, etc.) vers Kubernetes

Explication: External Secrets Operator permet de gérer les secrets de manière centralisée dans des systèmes externes et de les synchroniser automatiquement vers Kubernetes.


Question 13​

Quelle est la méthode recommandée pour injecter un Secret dans un Pod?

Voir l'explication

Réponse correcte: Utiliser envFrom avec secretRef ou env avec valueFrom.secretKeyRef

Explication: Les Secrets doivent être injectés via envFrom (toutes les clés) ou env avec valueFrom.secretKeyRef (une clé spécifique), jamais hardcodés.


Question 14​

Quelle est la différence entre env et envFrom?

Voir l'explication

Réponse correcte: env permet d'injecter des variables individuelles, envFrom injecte toutes les clés d'un ConfigMap/Secret

Explication: env permet un contrôle précis sur chaque variable, tandis qu'envFrom injecte automatiquement toutes les clés comme variables d'environnement.


Question 15​

Quelle est la bonne pratique pour les permissions d'un volume Secret?

Voir l'explication

Réponse correcte: 0400 (lecture seule pour le propriétaire)

Explication: Les volumes Secrets doivent être montés en lecture seule (readOnly: true) avec des permissions restrictives (defaultMode: 0400) pour la sécurité.


Question 16​

Qu'est-ce qu'un ConfigMap immutable?

Voir l'explication

Réponse correcte: Un ConfigMap qui ne peut pas être modifié après sa création, améliorant les performances et la sécurité

Explication: Les ConfigMaps immutables (immutable: true) ne peuvent pas être modifiés, réduisant la charge sur l'API Server et améliorant la sécurité.


Question 17​

Comment mettre à jour un ConfigMap utilisé par un Pod en cours d'exécution?

Voir l'explication

Réponse correcte: Si monté comme volume, il faut redémarrer le Pod. Si injecté comme env, il faut recréer le Pod

Explication: Les ConfigMaps montés comme volumes sont mis à jour périodiquement, mais les variables d'environnement injectées ne changent pas sans recréer le Pod.


Question 18​

Quelle est la commande pour créer un Secret depuis un fichier?

Voir l'explication

Réponse correcte: kubectl create secret generic [name] --from-file=[key]=[file]

Explication: --from-file permet de créer un Secret depuis un fichier, où vous pouvez spécifier la clé et le fichier source.


Question 19​

Qu'est-ce que la rotation des secrets?

Voir l'explication

Réponse correcte: Le processus de remplacement périodique des secrets par de nouvelles valeurs pour la sécurité

Explication: La rotation des secrets est une bonne pratique de sécurité qui consiste à changer régulièrement les mots de passe, tokens, et clés pour limiter l'impact d'une compromission.


Question 20​

Quelle est la différence entre un Secret de type Opaque et un Secret de type TLS?

Voir l'explication

Réponse correcte: Opaque est pour les données arbitraires, TLS est spécifiquement pour les certificats TLS

Explication: Les Secrets de type TLS ont des clés spécifiques (tls.crt, tls.key) et sont utilisés par des outils comme cert-manager pour les certificats SSL/TLS.


Question 21​

Comment organiser les ConfigMaps par environnement?

Voir l'explication

Réponse correcte: Créer des ConfigMaps séparés par environnement (dev, staging, prod) avec des noms différents

Explication: La meilleure pratique est de créer des ConfigMaps distincts pour chaque environnement, permettant une gestion claire et évitant les erreurs de configuration.


Question 22​

Quelle est la limite de taille totale d'un ConfigMap ou Secret?

Voir l'explication

Réponse correcte: Limité par etcd (généralement 1.5 MiB par objet)

Explication: Bien que chaque entrée soit limitée à 1 MiB, la taille totale d'un ConfigMap ou Secret est limitée par etcd, généralement autour de 1.5 MiB.


Question 23​

Qu'est-ce qu'un volume de type Secret?

Voir l'explication

Réponse correcte: Un volume qui monte les données d'un Secret comme fichiers dans un Pod

Explication: Les Secrets peuvent être montés comme volumes, où chaque clé devient un fichier avec la valeur décodée comme contenu.


Question 24​

Quelle est la bonne pratique pour les secrets dans les YAML?

Voir l'explication

Réponse correcte: Ne jamais mettre les secrets en clair, utiliser des références (secretKeyRef) ou des outils externes

Explication: Les secrets ne doivent jamais être en clair dans les YAML, même en base64. Utilisez des références ou des outils de gestion de secrets.


Question 25​

Comment utiliser un ConfigMap dans un Deployment?

Voir l'explication

Réponse correcte: Dans le template Pod du Deployment, via env, envFrom, ou volumes

Explication: Les ConfigMaps sont référencés dans le template Pod (spec.template.spec) d'un Deployment, via env/envFrom pour les variables d'environnement ou volumes pour les fichiers.


Question 26​

Qu'est-ce qu'un Service Account dans le contexte des Secrets?

Voir l'explication

Réponse correcte: Une identité pour les Pods qui peut être associée à des Secrets pour l'accès à l'API Server

Explication: Les Service Accounts peuvent avoir des imagePullSecrets pour accéder aux registries privées, mais ne sont pas directement liés aux Secrets applicatifs.


Question 27​

Quelle est la commande pour supprimer un ConfigMap?

Voir l'explication

Réponse correcte: kubectl delete configmap [name]

Explication: kubectl delete est la commande standard pour supprimer n'importe quelle ressource Kubernetes, y compris les ConfigMaps.


Question 28​

Qu'est-ce qu'un Secret de type docker-registry?

Voir l'explication

Réponse correcte: Un Secret qui stocke les credentials pour accéder à un registre Docker privé

Explication: Les Secrets de type docker-registry sont utilisés comme imagePullSecrets pour permettre aux Pods de tirer des images depuis des registres privés.


Question 29​

Quelle est la bonne pratique pour versionner les ConfigMaps?

Voir l'explication

Réponse correcte: Utiliser des labels avec des numéros de version et créer de nouveaux ConfigMaps pour chaque version

Explication: Versionner les ConfigMaps avec des labels permet de suivre les changements et facilite les rollbacks en référençant différentes versions.


Question 30​

Quelle est la différence entre valueFrom.configMapKeyRef et valueFrom.secretKeyRef?

Voir l'explication

Réponse correcte: configMapKeyRef référence une clé d'un ConfigMap, secretKeyRef référence une clé d'un Secret

Explication: Ces deux références fonctionnent de la même manière mais pointent vers des types de ressources différents: ConfigMap pour les données non sensibles, Secret pour les données sensibles.


Résultat du Quiz​

Félicitations pour avoir complété le quiz du Module 5!

Score:

  • 25-30 bonnes réponses: Excellent! Vous maîtrisez la configuration et les secrets.
  • 20-24 bonnes réponses: Très bien! Revoyez les concepts où vous avez eu des difficultés.
  • 15-19 bonnes réponses: Bien! Revoyez les chapitres sur ConfigMaps et Secrets.
  • Moins de 15: Recommandé de revoir le module avant de continuer.

Quiz créé le: Décembre 2024