Docker DevOpsMémo
TP
Chapitres
1 Architecture Docker, isolation et microservices
2 Installation Docker et environnement de travail
3 Images Docker : structure, construction et registres
4 Cycle de vie des conteneurs
5 Ressources Docker : stockage, réseau et configuration
6. Piloter Docker : CLI, daemon, socket et API
7. Docker Compose
8. Clients Docker
9. Sécurité Docker
Sécuriser une application conteneurisée : quel objectif ?9.1 Identifier les frontières de confiance9.1.1 Définition d’une frontière9.1.2 Frontière de confiance9.1.3 Règle du moindre privilège9.2 Protéger le daemon, le socket et les clients9.2.1 Contrôler les droits d’administration du moteur Docker9.2.2 Accès distant : transport et autorisation9.2.3 Les consoles et la CI/CD font partie du périmètre9.2.4 Comprendre un enchaînement de compromission9.3 Utilisateur non-root, rootless et remappage : trois notions9.3.1 Contexte : quel utilisateur exécute quoi ?9.3.2 Réponse aux problèmes : choisir la protection au bon niveau9.4 Capabilities et acquisition de privilèges9.4.1 Comprendre les capabilities : des pouvoirs séparés9.4.2 Choisir les pouvoirs accordés au conteneur9.4.3 Comprendre un refus avant d’ajouter des privilèges9.4.4 Réponse au problème : accorder uniquement les capabilities nécessaires9.4.5 Exemple : attribuer et lire les capabilities du conteneur web9.5 Seccomp, AppArmor et SELinux : limiter les actions possibles9.5.1 Que sont Seccomp, AppArmor et SELinux ?9.5.2 Quels problèmes ces protections peuvent-elles empêcher ?9.5.3 Comment ces protections se complètent-elles ?9.5.4 Exemples d’attribution de mécanismes de sécurité9.6 Images et chaîne de construction9.6.1 Choisir et identifier l’image9.6.2 Construire sans embarquer l’inutile9.6.3 Vérifier et maintenir9.6.4 Lire un scénario de mise à jour9.7 Registres : confidentialité, authentification et droits9.7.1 Contexte : à quoi sert un registre privé ?9.7.2 Problèmes : un registre privé ne suffit pas à protéger les images9.7.3 Réponses : protéger la connexion et séparer les droits9.8 Secrets et configuration sensible9.8.1 Contexte : reconnaître un secret9.8.2 Problèmes : les secrets peuvent être copiés et exposés9.8.3 Réponses : distribuer le secret au seul service concerné9.8.4 Exemple : limiter l’accès au mot de passe SQL9.9 Réseau : limiter ce qui est joignable9.9.1 Contexte : distinguer accès public et communication entre services9.9.2 Problèmes : ne pas publier un port ne suffit pas à isoler un service9.9.3 Réponses : ouvrir seulement les communications nécessaires9.9.4 Exemple : suivre une requête vers WordPress9.10 Fichiers, volumes et montages : limiter les dégâts9.10.1 Contexte : les montages donnent accès à des données9.10.2 Problèmes : un accès trop large augmente les dégâts possibles9.10.3 Réponses : limiter les chemins, les écritures et les droits9.10.4 Exemple : NGINX lit, MariaDB écrit9.11 Ressources, disponibilité et exploitation9.11.1 Contexte : les conteneurs partagent les ressources de l’hôte9.11.2 Problèmes : une application peut épuiser les ressources communes9.11.3 Réponses : limiter, surveiller et maintenir9.11.4 Comprendre la reprise après une compromission9.12 Lire une configuration durcie sans la recopier aveuglément9.12.1 Contexte : lire l’intention avant les options9.12.2 Problèmes : une configuration copiée peut être inadaptée9.12.3 Réponses : associer chaque réglage à son effet9.12.4 Comprendre ce que le fragment ne couvre pas9.13 Ce qu’il faut retenir9.13.1 Contexte : relier les protections entre elles9.13.2 Problèmes : éviter les fausses garanties9.13.3 Réponses : garder une grille de lecture commune9.13.4 Questions de mémorisation9.14 Documentation de référence9.14.1 Contexte : utiliser les références officielles9.14.2 Problèmes : un exemple peut concerner un autre environnement9.14.3 Réponses : choisir la référence correspondant au besoin9.15 Grille finale de lecture des risques9.15.1 Contrôle du moteur9.15.2 Image compromise ou vulnérable9.15.3 Fuite de secret9.15.4 Pouvoir excessif du processus9.15.5 Atteinte au noyau ou à l’hôte9.15.6 Altération ou lecture de fichiers hôte9.15.7 Exposition réseau9.15.8 Saturation9.15.9 Perte de données9.15.10 Configuration non fiable9.15.11 Compromission durable Cours stricts