Должен ли я добавить DMZ перед Kubernetes?

Достаточно ли безопасен Kubernetes Ingress, чтобы избежать добавления DMZ перед Kubernetes для демонстрации модулей и служб? Что будет, если кто-то "взломает" стручок?

Благодарю.

2 ответа

Это вопрос мнения, поэтому я отвечу с опцией.

Это очень безопасно, если вы будете следовать стандартным правилам безопасности для вашего кластера. Но ничто не на 100% безопасно. Таким образом, добавление DMZ поможет уменьшить ваши векторы атаки.

С точки зрения защиты вашего Ingress извне, вы можете ограничить свой доступ к внешнему балансировщику нагрузки только HTTPS, и большинство людей делают это, но учтите, что HTTPS и само ваше приложение также могут иметь уязвимости.

Что касается ваших модулей и рабочих нагрузок, вы можете повысить безопасность (при некоторых затратах производительности), используя такие вещи, как хорошо продуманный профиль seccomp и / или добавив правильные возможности в контексте безопасности вашего модуля. Вы также можете добавить больше безопасности с AppArmor или SELinux, но многие люди этого не делают, поскольку это может быть очень сложно.

Есть и другие альтернативы Docker для более легкой песочницы ваших модулей (еще на раннем этапе их жизненного цикла на момент написания этой статьи): https://katacontainers.io/, Nabla Containers и gVisor.

Это довольно открытый вопрос. Я думаю, что в Google Cloud Ingress - это обычно Google Cloud Load Balancer. Предположительно, облачный балансировщик нагрузки будет очень безопасным по сравнению с DMZ, которой вы управляете. Вход k8s также обычно ограничивается трафиком HTTP, поэтому для "взлома" через вход, вероятно, потребуется использовать уязвимость уровня приложения. Это зависит от вашей конкретной настройки.

С точки зрения безопасности модуля, получение доступа к исполнению в модуле будет плохим. Докер не защищен по смыслу и не является песочницей. Опять же, это зависит от вашей настройки, но в качестве очевидной аналогии: Pod k8s не рекомендуется для запуска ненадежного кода.

Другие вопросы по тегам