Сетевые политики
Страница “Сетевые политики” содержит список политик (правил) для входящего и исходящего трафика к ресурсам кластера. В основе используется 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”.
- К некоторым неймспейсам;
- К некоторым подам;
- К сервисам;
- К хостам (выбирает локальный хост и все контейнеры, запущенные на этом хосте);
- К удаленным узлам (любой узел в любом из подключенных кластеров, кроме локального хоста. Также выбирает все контейнеры, работающие в режиме сети хоста на удаленных узлах).
Внутри неймспейса
Исходящий трафик к любому поду из конфигурируемого неймспейса будет запрещен, если не разрешен другими правилами.
Используйте селекторы подов, чтобы обеспечить минимальные привилегии безопасности, или разрешите весь входящий трафик в пределах неймспейса для начала работы с более простой политикой.
Типы правил:
- К любому поду;
- К сервисам;
- К некоторым подам.