NetworkPolicy Kubernetes

Простыми словами

Можно разрешить веб-приложению обращаться к базе данных, но запретить такое обращение остальным нагрузкам. Один YAML-файл не гарантирует результат: сеть кластера должна реально применять эти правила.

Как применяется

Политики используют для сегментации приложений и сокращения путей распространения атаки. Ingress и egress настраивают отдельно, а разрешения нескольких политик складываются. Если на Pod не действует изолирующая политика нужного направления, он по умолчанию не изолирован в этом направлении.

Пример применения

Для базы разрешают входящие подключения только от backend на нужный порт. В тесте backend подключается, а Pod из тестового namespace — нет. Дополнительно проверяют исходящие запросы приложения, в том числе DNS: слишком широкий запрет может незаметно нарушить разрешение имён.

Не путать с

  • IngressПравила публикации HTTP-сервисов; это не сетевое ограничение всех соединений Pod.
  • Security groupМеханизм облачной сети с собственной областью применения, не объект Kubernetes API.
  • Service meshМожет задавать идентичности и политики уровня приложения; базовая NetworkPolicy работает с сетевыми связями.

Как это работает

  1. Проверить реализацию сетиПодтверждают поддержку NetworkPolicy выбранным сетевым компонентом.
  2. Выбрать PodЗадают selectors и отдельно решают, нужны ingress, egress или оба направления.
  3. Разрешить нужные связиОписывают источники, назначения и порты, включая служебные зависимости.
  4. Испытать запретыПроверяют соединения из разрешённых и посторонних нагрузок после применения политик.

Продолжить изучение

Связанные термины

Частые вопросы

Создал политику, а трафик проходит — почему?

Проверьте сетевой плагин, selectors и другие разрешающие политики. Объект без исполнения не меняет трафик.

Можно фильтровать URL?

Стандартная NetworkPolicy не является HTTP-фильтром. Для URL нужны другие средства.

Одна политика запрещает разрешение другой?

Нет. Разрешения применимых политик объединяются.

NetworkPolicy Kubernetes — объект, описывающий разрешённые входящие и исходящие сетевые соединения выбранных Pod. Правила используют селекторы Pod и namespaces, IP-диапазоны, протоколы и порты. Исполняет их сетевой компонент, поддерживающий NetworkPolicy.