Нарешті, ви настільки закохані в Docker, що хочете перенести свої критичні для бізнесу бізнес-системи з чутливими даними клієнтів у Docker Swarm. Деякі, можливо, навіть уже зробили це. Інша організація не може собі цього дозволити, застосовуючи політику, яка забороняє виробничі процеси, що працюють в кореневому режимі.
Що може бути контрольним списком будівельних блоків для продуктивного середовища Docker? Один не потребує всіх, але всі вони повинні мати важливе значення для оцінки.
Відмова: Я знаю, що існує політика SE для уникнення "великих нескінченних списків", але я думаю, що цей контрольний список не може бути дуже великим ... і нескінченним.
Отже - що це за будівельні блоки?
- Якщо це ще не розгорнуто, розгляньте запуск хост-системи Linux із розширеними налаштуваннями безпеки - загартованим ядром, SELinux тощо.
- Подумайте про використання крихітного базового зображення Docker, такого як альпійський, зайнятий або навіть подряпин, наприклад, почніть з порожнього базового зображення
- Використовуйте налаштування USER, крім root
- Ретельно оцініть, щоб додатково зменшити вже зменшений набір можливостей ядра, наданих контейнеру
- Подумайте, що для запуску вашого процесу є лише один виконуваний двійковий код на контейнер, ідеально пов'язаний статично
- Тим, хто хоче зламати вашу систему, щоб отримати доступ до оболонки, може задатися питанням, чи з’ясували, що у вашому контейнері вимкнено всі мушлі
- Монтуйте томи лише для читання, коли це можливо
Питання: що ще?
devsecops
?
Consider using a tiny Docker base image, like alpine, busybox or even scratch e.g. start with an empty base image
підвищує безпеку?