Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Контейнерные среды представляют уникальные проблемы безопасности. Традиционные методы безопасности сети, часто зависящие от фильтрации на основе 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 обновить сетевую политику в обработчике политик. На следующем рисунке показан высокоуровневый поток фильтрации полного доменного имени.
Ключевые преимущества
Управление масштабируемыми политиками безопасности. Администраторы кластера и безопасности не должны обновлять политики безопасности каждый раз, когда изменения 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"
Ценообразование
Это важно
Расширенные услуги контейнерной сети предоставляются на платной основе. Дополнительные сведения о ценах см. в разделе "Расширенные сетевые службы контейнеров" — цены.
Дальнейшие шаги
Узнайте, как применять политики фильтрации fqdn в AKS.
Узнайте, как сообщество открытого кода создает сетевые политики Cilium.
Дополнительные сведения о расширенных сетевых службах контейнеров для Службы Azure Kubernetes (AKS) см. в статье Что такое расширенные сетевые службы контейнеров для Службы Azure Kubernetes (AKS)?.
Изучите функции наблюдения за сетями контейнеров в расширенных сетевых службах контейнеров в разделе "Что такое наблюдаемость сети контейнеров?".