Поделиться через


Общие сведения о фильтрации полного доменного имени

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

Фильтрация полного доменного имени обеспечивает эффективный и удобный подход к управлению политиками сети. Определив эти политики на основе доменных имен, а не IP-адресов, организации могут значительно упростить процесс управления политиками. Этот подход устраняет необходимость в частых обновлениях, которые обычно требуются при изменении IP-адресов, в результате снижения административного бремени и минимизации риска ошибок конфигурации.

В кластере Kubernetes IP-адреса pod часто могут изменяться, что затрудняет защиту модулей pod с помощью политик безопасности с помощью IP-адресов. Фильтрация полного доменного имени позволяет создавать политики уровня pod с помощью доменных имен, а не IP-адресов, что устраняет необходимость обновления политик при изменении IP-адреса.

Замечание

Azure CNI, работающий на базе Cilium, и Kubernetes версии 1.29 или выше необходимы для использования функций сетевой безопасности в рамках расширенных сетевых сервисов контейнеров.

Компоненты фильтрации FQDN

Агент Cilium: Агент Cilium является критически важным компонентом сети, который выполняется как DaemonSet в кластерах Azure CNI на базе Cilium. Он управляет сетями, балансировкой нагрузки и политиками сети для подов в кластере. Для Pod с обязательными политиками FQDN агент Cilium перенаправляет пакеты в агент безопасности ACNS для разрешения DNS и обновляет сетевую политику с использованием сопоставлений FQDN-IP, полученных от агента безопасности ACNS.

Агент безопасности ACNS: агент безопасности ACNS запускается как DaemonSet в Azure CNI, поддерживаемом кластером Cilium, с включенными расширенными службами сети контейнеров. Он обрабатывает разрешение DNS для подов и при успешном разрешении DNS обновляет агент Cilium с сопоставлениями между полными доменными именами и IP-адресами.

Как работает фильтрация FQDN

Если включена фильтрация полного доменного имени (FQDN), DNS-запросы сначала оцениваются, чтобы определить, следует ли их разрешать. После этого поды могут получать доступ только к указанным доменным именам в соответствии с политикой сети. Агент Cilium помечает пакеты DNS-запросов, исходящие из подов, перенаправляя их агенту безопасности ACNS. Это перенаправление происходит только для модулей pod, которые применяют политики полного доменного имени.

Затем агент безопасности ACNS решает, следует ли пересылать DNS-запрос на DNS-сервер на основе критериев политики. Если это разрешено, запрос отправляется на DNS-сервер, и после получения ответа агент безопасности ACNS обновляет агента Cilium с новыми сопоставлениями полных доменных имен (FQDN). Это позволяет агенту Cilium обновить сетевую политику в обработчике политик. На следующем рисунке показан высокоуровневый поток фильтрации полного доменного имени.

Снимок экрана: работа агента безопасности ACNS в фильтрации FQDN.

Ключевые преимущества

Управление масштабируемыми политиками безопасности. Администраторы кластера и безопасности не должны обновлять политики безопасности каждый раз, когда изменения IP-адреса делают операции более эффективными.

Улучшенное соответствие безопасности: фильтрация FQDN поддерживает модель безопасности "Нулевое доверие". Сетевой трафик ограничен доверенными доменами только для устранения рисков несанкционированного доступа.

Применение устойчивых политик: Агент безопасности ACNS, реализованный с фильтрацией FQDN (полного доменного имени), гарантирует, что разрешение DNS продолжается бесперебойно, даже если агент Cilium выходит из строя, и политики продолжают применяться. Эта реализация критически гарантирует, что безопасность и стабильность поддерживаются в динамических и распределенных средах.

Соображения:

  • Для функций безопасности сети контейнеров требуется Azure CNI на платформе Cilium и Kubernetes версии 1.29 и выше.

  • Поддерживается CiliumClusterwideNetworkPolicy (CCNP): фильтрация FQDN может применяться в масштабе всего кластера с помощью CiliumClusterwideNetworkPolicy.

Ограничения:

  • Политики полностью квалифицированного доменного имени (FQDN) с подстановочными знаками поддерживаются частично. Это означает, что вы можете создавать политики, соответствующие определенным шаблонам, с помощью ведущего подстановочного знака (например, example.com), но для сопоставления всех доменов в поле нельзя использовать универсальный подстановочный знак (). spec.egress.toPorts.rules.dns.matchPattern
  • Поддерживаемый шаблон:

    *.example.com — это позволяет трафику ко всем поддоменам под example.com.

    app*.example.com — Это правило более конкретное и разрешает трафик только поддоменам, начинающимся с "app" в example.com

  • Неподдерживаемый шаблон

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

  • Фильтрация полного доменного имени в настоящее время не поддерживается в узловом локальном DNS.
  • Имена служб Kubernetes не поддерживаются.
  • Другие политики L7 не поддерживаются.
  • Контейнеры FQDN могут демонстрировать снижение производительности при обработке свыше 1000 запросов в секунду.
  • Если безопасность расширенных сетевых служб контейнеров (ACNS) отключена, политики FQDN и L7 (HTTP), Kafka и gRPC будут заблокированы.
  • Образы контейнеров на основе Alpine могут столкнуться с проблемами разрешения DNS при использовании с сетевыми политиками Cilium. Это связано с ограниченной итерацией домена поиска musl libc. Чтобы обойти эту проблему, явным образом определите все домены поиска в правилах DNS политики сети с помощью шаблонов подстановочных знаков, как показано в приведенном ниже примере.
rules:
  dns:
  - matchPattern: "*.example.com"
  - matchPattern: "*.example.com.*.*"
  - matchPattern: "*.example.com.*.*.*"
  - matchPattern: "*.example.com.*.*.*.*"
  - matchPattern: "*.example.com.*.*.*.*.*"
- toFQDNs:
  - matchPattern: "*.example.com"

Ценообразование

Это важно

Расширенные услуги контейнерной сети предоставляются на платной основе. Дополнительные сведения о ценах см. в разделе "Расширенные сетевые службы контейнеров" — цены.

Дальнейшие шаги