Шифрование трафика в EKS

Я настраиваю EKS кластер на AWS и я хочу защитить все данные в полете в кластере Kuberentes (а также между EKS и внешними системами, но здесь это выходит за рамки).

В Kubernetes используются разные протоколы между разными модулями, в основном Rest/HTTP но и связь между microservice-pods with a KafkaBroker и JDBC между microservice-pods and database pods (Заландо Постгрес), между filebeat-pod and elasticsearch...

Я вижу несколько вариантов, но мне не нравится ни один из них.

  • Зашифруйте каждое сообщение индивидуально -> слишком много работы. операционный кошмар
  • Istio или LinkerD -> Работает только для Http и gRPC, а не для KafkaCommunication. Тяжелый самолет управления.
  • CNI, как WeaveNet -> нет поддержки групп безопасности, FlowLogs, ACL

Есть ли лучшие альтернативы? Вы бы порекомендовали какой-либо из этих вариантов?

1 ответ

Одним из возможных решений может быть использование обратного прокси-сервера nginx на всех ваших модулях для захвата всего исходящего трафика в сочетании с директивой nginx proxy_protocol для работы с ELB и другими балансировщиками нагрузки.

Это можно сделать, изменив iptables (или любой другой SDN/ шаблон, который вы выбрали для настройки), чтобы принудительно направлять весь исходящий трафик на обратный прокси-сервер вместо отправки его в Интернет. Затем вы используете директивы внутри proxy_protocol заставить все восходящие TCP-соединения использовать SSL, используя сертификат, определенный обратным прокси-сервером для шифрования.

Это должно работать для протоколов, которые вы определили, поскольку все они основаны на TCP.

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