Enfin, vous êtes tellement amoureux de Docker que vous souhaitez transférer vos systèmes de production stratégiques en ligne avec des données clients sensibles vers un Docker Swarm. Certains pourraient même l'avoir déjà fait. L’autre organisation ne peut se permettre une politique interdisant aux processus de production de s’exécuter en mode racine.
Que pourrait être une liste de contrôle des blocs de construction à prendre en compte pour un environnement de production Docker? On n'a pas besoin de tous, mais tous devraient être importants pour être évalués.
Clause de non-responsabilité: Je sais qu'il existe une politique SE visant à éviter les "listes interminables sans fin", mais je pense que cette liste de contrôle ne peut être très longue ... et sans fin.
Alors, quels sont ces blocs de bâtiments?
- Si ce n’est pas déjà fait, envisagez d’exécuter un système hôte Linux avec des paramètres de sécurité avancés - noyau renforcé, SELinux, etc.
- Pensez à utiliser une petite image de base Docker, telle que alpine, busybox ou même scratch, par exemple, commencez par une image de base vide.
- Utiliser un paramètre USER autre que root
- Évaluez soigneusement pour réduire davantage l'ensemble des capacités du noyau déjà réduites accordées au conteneur
- Envisagez de n’avoir qu’un seul binaire exécutable par conteneur pour lancer votre processus, idéalement lié statiquement.
- Ceux qui veulent casser votre système pour obtenir un accès à un shell peuvent se demander s'ils ont découvert que votre conteneur a tous les shells désactivés
- Monter des volumes en lecture seule où seulement possible
Question: quoi d'autre?
devsecops
?
Consider using a tiny Docker base image, like alpine, busybox or even scratch e.g. start with an empty base image
améliore la sécurité?