Сетевые политики

Страница “Сетевые политики” содержит список политик (правил) для входящего и исходящего трафика к ресурсам кластера. В основе используется Cilium.

Для создания политик реализован графический интерфейс. Он представлен в виде блоков, обозначающий компоненты, между которыми конфигурируется доступ, и линии, которые отображают связи между компонентами.

Есть 3 уровня компонентов:

  • вне кластера;
  • внутри кластера;
  • внутри неймспейса.

Центральным компонентом схемы является неймспейс, в рамках которого происходит настройка (далее - конфигурируемый неймспейс).

Правила сетевых политик

Для каждого компонента можно настроить правило взаимодействия с неймспейсом. Входящие потоки в конфигурируемый неймспейс регламентируются правилами Ingress, исходящие - правилами Egress. Для создания правила нажмите на + в блоке компонента и выберите параметры. Добавленные правила будут отображаться в нижней части блока компонента. Для удаления правила нажмите на правило, затем на значок корзины в открывшемся окне. От каждого созданного правила отображается связь до конфигурируемого неймспейса.

Правила могут быть:

  • Запрещающим (запрещает обращение одного объекта к другому по указанному порту)
  • Разрешающим (разрешает обращение одного объекта к другому по указанному порту)
  • Отключенным (правило неактивно, не выполняет разрешения или запрета).

Когда весь трафик по умолчанию разрешен и добавляется правило, накладывающее ограничение, то трафик вне этого правила запрещается.

Ingress правила (Входящий трафик)

Вне кластера

На этом уровне можно определить правила входящего в неймспейс кластера трафика:

  • Из любого эндпоинта. При установлении запрещающего правила трафик из любых эндпоинтов вне кластера к указанным портам объектов в конфигурируемом неймспейсе будет отбрасываться.
  • Из CIDR.

Если необходимо, чтобы поды конфигурируемого неймспейса получали входящий трафик, рассмотрите один из следующих вариантов:

  • разрешить входящий трафик только с любых эндпоинтов;
  • разрешить входящий трафик любым подам, но только к определенному порту(ам) (например, к порту 80);
  • разрешить входящий трафик только к любому поду конфигурируемого неймспейса с любых эндпоинтов.

Внутри кластера

Трафик из любого пода или неймспейса в кластере будет отброшен, если не разрешен другими правилами.

Если подам конфигурируемого неймспейса требуется получать входящий трафик от других подов в кластере, рассмотрите один из следующих вариантов:

  • разрешить входящий трафик только из выбранных неймспейсов;
  • разрешить входящий трафик только от подов, соответствующих выбранным лейблам;
  • разрешить весь входящий трафик от любого пода в кластере.

Типы правил:

  • Из всех ресурсов кластера;
  • Из некоторых неймспейсов;
  • Из некоторых подов;
  • Из хостов (выбирает локальный хост и все контейнеры, запущенные на этом хосте);
  • Из удаленных узлов (Любой узел в любом из подключенных кластеров, кроме локального хоста, все контейнеры, работающие в режиме сети хоста на удаленных узлах).

Внутри неймспейса

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

Типы правил:

  • Из любого пода;
  • Из некоторых подов;

Egress правила (Исходящий трафик)

Вне кластера

Исходящий трафик к любому эндпоинту вне кластера будет запрещен, если его не разрешают другие правила.

Если поды в конфигурируемом неймспейсе должны иметь возможность передавать трафик в эндпоинты за пределами кластера, рассмотрите одну из следующих опций:

  • Разрешить трафик к конкретным CIDR;
  • Разрешить трафик к конкретным FQDN;
  • Разрешить трафик к любому эндпоинту вне кластера.

Типы правил:

  • К любому эндпоинту;
  • До CIDR;
  • До FQDN.

Чтобы разрешить трафик до FQDN должен быть разрешен трафик до Kubernetes DNS и включен DNS proxy. Без соблюдения этих условий правило добавить можно, но оно не будет работать. Такая связь будет отображаться серым цветом.

Внутри кластера

Исходящий трафик к любому поду в любом неймспейсе кластера будет запрещен, если он не разрешен другими правилами.

Если необходимо отправлять исходящий трафик к другим подам в других неймспейсах внутри кластера, рассмотрите один из следующих вариантов:

  • разрешить исходящий трафик только к выбранным неймспейсам;
  • разрешить исходящий трафик только к подам, соответствующим выбранным лейблам.

Типы правил:

  • Ко всем ресурсам кластера (по умолчанию);
  • Kubernetes DNS (Когда разрешена: разрешает потоки Egress в Kubernetes DNS. Когда запрещена: Текущая политика не допускает передачу трафика на DNS Kubernetes. В результате запросы DNS от подов в конфигурируемый неймспейс будут игнорироваться, если не будет разрешено другими правилами). Когда Kubernetes DNS разрешен, есть возможность включить или отключить DNS proxy. Когда отключен, отображается тег “Разрешить DNS”.
  • К некоторым неймспейсам;
  • К некоторым подам;
  • К сервисам;
  • К хостам (выбирает локальный хост и все контейнеры, запущенные на этом хосте);
  • К удаленным узлам (любой узел в любом из подключенных кластеров, кроме локального хоста. Также выбирает все контейнеры, работающие в режиме сети хоста на удаленных узлах).

Внутри неймспейса

Исходящий трафик к любому поду из конфигурируемого неймспейса будет запрещен, если не разрешен другими правилами.

Используйте селекторы подов, чтобы обеспечить минимальные привилегии безопасности, или разрешите весь входящий трафик в пределах неймспейса для начала работы с более простой политикой.

Типы правил:

  • К любому поду;
  • К сервисам;
  • К некоторым подам.