Bank 1 – QCM (Partie 2 : Configuration / Sécurité)¶
Instructions
Sélectionnez une seule réponse par question.
Le score se met à jour automatiquement.
Les bonnes réponses apparaissent en vert, les mauvaises en rouge, avec l’explication.
Quel objet Kubernetes est utilisé pour stocker des données de configuration non sensibles sous forme de paires clé-valeur et les injecter dans les conteneurs ?
Le ConfigMap permet de découpler les données de configuration du code de l'application sous forme de texte brut.
Quel type de ressource fournit une identité aux processus s'exécutant à l'intérieur d'un Pod afin qu'ils puissent s'authentifier auprès de l'API Kubernetes ?
Un ServiceAccount est géré par Kubernetes et fournit une identité aux applications qui tournent dans les pods pour dialoguer avec l'API server.
Les données d'un Secret Kubernetes stockées par défaut dans etcd ou SQLite sont-elles chiffrées au repos ?
L'encodage en Base64 n'est pas un chiffrement ; les secrets sont lisibles par quiconque a accès à l'API ou au stockage sous-jacent à moins d'activer explicitement le chiffrement au repos (EncryptionConfiguration).
Quel est le comportement par défaut d'un cluster Kubernetes concernant la communication réseau entre les pods si aucune NetworkPolicy n'est définie dans un namespace ?
Par défaut, le réseau Kubernetes est "non-isolé" (flat network) : tous les pods peuvent communiquer avec tous les autres pods et services par défaut tant qu'aucune NetworkPolicy restrictive n'est appliquée.
Quelle option de configuration permet de monter le contenu d'un Secret ou d'un ConfigMap sous forme de fichiers dans un répertoire d'un conteneur ?
En déclarant un volume basé sur un Secret ou un ConfigMap, puis en l'associant via volumeMounts, chaque clé devient un fichier dont le contenu est la valeur.
Comment peut-on restreindre le trafic entrant dans une NetworkPolicy pour qu'il provienne uniquement des pods situés dans un autre namespace spécifique ?
Le namespaceSelector permet de cibler des espaces de noms entiers pour autoriser ou bloquer les flux entrants.
Qu'advient-il des variables d'environnement injectées à partir d'un ConfigMap (via env ou envFrom) si ce ConfigMap est mis à jour après le démarrage du Pod ?
Contrairement aux volumes montés (qui se mettent à jour dynamiquement), les variables d'environnement injectées au lancement ne se mettent pas à jour dynamiquement sans redémarrer le pod.
Où les Secrets Kubernetes montés en tant que volumes (volumeMounts) sont-ils généralement stockés par le nœud au niveau du système de fichiers du conteneur ?
Par défaut, Kubernetes monte les secrets sous forme de volumes tmpfs, ce qui signifie qu'ils résident en RAM et ne sont jamais écrits de manière persistante sur le stockage physique du nœud.
Dans une NetworkPolicy, comment spécifier une politique de refus par défaut totale pour tout le trafic entrant (deny-all) ?
Une politique avec podSelector: {} (sélectionnant tous les pods du namespace) et un tableau ingress vide interdit tout trafic entrant non explicitement autorisé.
Quel mécanisme sous-jacent les plugins CNI (comme Calico ou Cilium) utilisent-ils généralement pour appliquer concrètement les règles des NetworkPolicies au niveau du noyau Linux ?
Les CNI traduisent les NetworkPolicies déclaratives de Kubernetes en règles de filtrage au niveau bas niveau du noyau (via iptables, nftables ou des programmes eBPF).
Comment empêcher de manière robuste qu'un conteneur ne s'exécute avec les privilèges root dans son propre namespace de conteneur ?
runAsNonRoot: true force le kubelet à rejeter le démarrage du conteneur si celui-ci s'exécute en tant qu'UID 0 (root), garantissant ainsi un niveau de sécurité accru.