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