Должен ли я добавить 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 не рекомендуется для запуска ненадежного кода.