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