Защита порта API Kubernetes
У нас есть кластер Kubernetes (kube-), распыленный на 4 узла, работающих под управлением CoreOS. Наши наиболее важные службы будут работать в этой среде Kubernetes, и мы стараемся сделать все возможное, чтобы сделать его максимально безопасным, однако мы собираемся предоставить порт API (6443) для Интернета.
Это считается безопасным?
Мы сделали следующее:
Мы отключили анонимный доступ (с флагом --anonymous-auth=false).
Проверка сертификатов, кажется, работает нормально, без предоставления данных сертификата клиента, я не могу получить доступ к чему-либо в кластере.
Мы планируем использовать авторизацию RBAC.
В настоящее время у нас установлена последняя версия kubernetes (и мы планируем быстро обновляться по мере выпуска новых исправлений).
У нас есть брандмауэр с ограничением скорости, настроенный для предотвращения атак методом перебора.
Коммутатор, который мы купили для сервера, поддерживает защиту от DDoS.
Есть ли какие-нибудь дальнейшие шаги, которые мы могли бы предпринять, чтобы сделать этот открытый порт безопасным? Или это совершенно не рекомендуется?
1 ответ
Предпринятые вами шаги кажутся достаточными для защиты порта API.
Единственное, что нужно проверить - если вы используете K8s до v1.10, вы можете отключить небезопасный порт, установив - insecure-port=0
, поэтому будет разрешен только зашифрованный трафик.
Иногда это невозможно из-за конфигурации проверки работоспособности или механизмов начальной загрузки. В этом случае брандмауэр порт из публичного и внутреннего доступа. Этот флаг устарел с v1.10.
Эта статья также может быть полезна с точки зрения рекомендаций по безопасности