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


Что такое безопасность сети контейнеров?

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

Функции безопасности сети контейнеров

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

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

Рекомендации:

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

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

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

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

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

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

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

  • Фильтрация полного доменного имени в настоящее время не поддерживается в локальном DNS узла.
  • Двойной стек не поддерживается.
  • Имена служб Kubernetes не поддерживаются.
  • Другие политики L7 не поддерживаются.
  • Модули pod FQDN могут привести к снижению производительности при обработке более чем 1000 запросов в секунду.
  • Образы контейнеров на основе Альпийской платформы могут столкнуться с проблемами разрешения 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"

Цены

Внимание

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

Следующие шаги