Docker·57 питань

Які найкращі практики безпеки при написанні Dockerfile та запуску контейнерів?

Відповідь

Безпека контейнеризованих додатків починається на етапі створення Dockerfile і триває при налаштуванні середовища виконання. За умолчанию багато процесів всередині контейнерів запускаються з правами суперкористувача root. Це створює серйозну вразливість, оскільки в разі зламу додатка зловмисник отримує повний контроль над усім простором імен ядра Linux і може спробувати вийти за межі ізольованого середовища на хост-машину.

Першим і найважливішим правилом безпеки є відмова від використання користувача root за замовчуванням. Всередині Dockerfile необхідно створювати непривілейованого системного користувача та перемикатися на нього за допомогою інструкції user перед запуском додатка. Також слід уважно підходити до вибору базових образів, віддаючи перевагу офіційним мінімальним збіркам або спеціалізованим образам без зайвих утиліт, таким як distroless.

Для підтримання високого рівня захищеності інфраструктури рекомендується застосовувати такі заходи.

Завжди фіксуйте версії базових образів за тегами або цифровими хешами digests, замість того щоб використовувати плаваючий тег latest.
Регулярно скануйте зібрані образи на наявність відомих вразливостей за допомогою спеціалізованих утиліт інтеграції.
Мінімізуйте кількість шарів і стежте за тим, щоб у фінальний образ не потрапляли секретні ключі, паролі або токени доступу.
Використовуйте механізм read-only для кореневої файлової системи контейнера там, де це можливо, щоб запобігти модифікації файлів зловмисниками.

Дотримання цих простих правил дозволяє суттєво знизити ризики компрометації даних і забезпечити відповідність сучасним стандартам інформаційної безпеки при розгортанні мікросервісної архітектури на базі Docker.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем