Conteneurs : Docker, Compose et Swarm

Avancé

Verrouiller les conteneurs exposés

Le test d'intrusion est revenu : par une faille dans une dépendance, les testeurs ont écrit un fichier dans le conteneur de l'API en marche, et ils relèvent que les deux conteneurs exposés à Internet gardent les capacités par défaut de Docker. Durcis frontend et api : un système de fichiers racine en lecture seule, toutes les capacités retirées, et aucun moyen d'obtenir de nouveaux privilèges. La boutique doit rester en ligne.

nginx sert le site et transmet /api/ à l'API ; l'API produit les factures dans un dossier de travail sous /tmp. Les capacités dont un conteneur a vraiment besoin peuvent être rajoutées une à une, mais seulement après les avoir toutes retirées. Le test lance docker compose up -d --build, vérifie frontend et api, et ouvre http://<serveur>/api/products chaque minute pendant une heure.

Ce que ton serveur doit tenir

  • security.writableRootfs = 0
  • security.defaultCapabilities = 0
  • security.newPrivileges = 0
  • Disponibilité ≥ 99 %

Ce que tu vas maîtriser