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


Обзор политики уровня 7 (L7) (предварительная версия)

Политики сети важны для защиты кластеров Kubernetes путем определения и управления обменом данными pod. Они устраняют несанкционированный доступ и потенциальные нарушения безопасности путем регулирования потока трафика. Расширенные сетевые службы контейнеров укрепляют безопасность с помощью сетевых политик на основе полного доменного имени (FQDN). Расширяя эту основу, расширенные сетевые службы контейнеров теперь предоставляют поддержку политики L7, обеспечивая подробную проверку и управление трафиком на уровне приложений. Это улучшение повышает безопасность и эффективность сетевого взаимодействия в кластерах AKS. Это предложение включает в себя комплексную поддержку широко принятых протоколов, включая HTTP, gRPC и Kafka.

Компоненты политики L7

Прокси-сервер Envoy: Envoy, часть агента безопасности ACNS, выполняет функцию точки принудительного применения политик L7. TPROXY проверяет трафик приложения, сравнивая его с определенными политиками L7. Чтобы повысить масштабируемость и управление ресурсами, Envoy развертывается как отдельный daemonSet, отделенный от агента Cilium.

Как работает политика L7

Если принудительное применение политики L7 включено для приложения или pod, исходящий сетевой трафик сначала оценивается, чтобы определить соответствие настроенным правилам уровня приложения. Проба eBPF, подключенная к сетевому интерфейсу исходного модуля pod, помечает пакеты, которые затем перенаправляются на локальный прокси-сервер Envoy узла. Это перенаправление происходит только для модулей pod, применяющих политики L7, что гарантирует, что принудительное применение политик применяется выборочно.

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

Снимок экрана: работа политик L7.

Мониторинг трафика L7 с помощью Hubble и Grafana

Чтобы получить аналитические сведения о потоках трафика L7, в частности HTTP, gRPC и Kafka, Azure CNI Powered by Cilium использует агент Hubble, который включен по умолчанию с расширенными сетевыми службами контейнеров. Hubble предоставляет подробные метрики уровня потока.

Чтобы упростить анализ этих метрик L7, мы предоставляем предварительно настроенные панели мониторинга Azure Managed Grafana. Их можно найти в папке >, с именами файлов, например, "Kubernetes/Networking/L7 (Пространство имен)" и "Kubernetes/Networking/L7 (Рабочая нагрузка)".

Эти панели мониторинга обеспечивают детализированную видимость данных потока L7 на уровне кластера, пространства имен и рабочих нагрузок.

Замечание

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

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

Гранулярный контроль Application-Level: политики L7 позволяют точно контролировать сетевой трафик на основе атрибутов конкретного приложения, таких как методы HTTP, пути gRPC и топики Kafka. Это выходит за рамки базового IP-адреса и управления на основе портов традиционных политик сети.

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

Грациозная обработка ошибок: в отличие от политик L3/L4, которые обычно удаляют несанкционированный трафик автоматически, политики L7 могут возвращать коды ошибок на уровне приложения (например, HTTP 403, сбои авторизации Kafka), что позволяет приложениям обрабатывать ошибки более корректно.

Наблюдаемость. С поддержкой наблюдения для расширенных сетевых служб контейнеров и политик L7, применяемых к кластеру AKS, можно отслеживать эффективность трафика и политики с помощью панелей мониторинга Grafana.

Ограничения и рекомендации

  • Текущая поддержка функций зависит от применения политик уровня 7 Cilium на основе HTTP, HTTPS, gRPC и Kafka.
  • В предварительной версии максимальный поддерживаемый размер кластера составляет до 1000 узлов или 40 000 модулей pod, в зависимости от того, что больше.
  • Трафик, проходящий через прокси-серверы Envoy, сопровождается задержкой. Пользователи могут столкнуться с заметной задержкой, превышающей 3000 запросов в секунду.
  • В рамках нашего решения для наблюдаемости мы предоставляем метрики envoy_http_rq_total. Эти метрики дают общее количество запросов, которые можно использовать для определения количества запросов в секунду.
  • Во время обновления или развертывания Cilium существующие сеансы можно плавно закрыть. Приложения должны обрабатывать эти прерывания корректно, как правило, путем реализации механизмов повторных попыток на уровне подключения или запроса. Новые подключения, инициированные во время развертывания, не затронуты.
  • Политика L7 через расширенные сетевые службы контейнеров (ACNS) несовместима с политиками L7, реализованными с помощью альтернативных методов, таких как Istio. В следующей таблице перечислены поддерживаемые сценарии.
Функция/Компонент Политики L7 с помощью AKS, Istio — управляемая надстройка
Политики сети K8s в Azure CNI на базе Cilium Поддерживается
Политики уровня L4 (FQDN) в Azure CNI на базе Cilium и ACNS Поддерживается
Политики L7 (HTTP(s)/GRPC/Kafka) в Azure CNI, осуществляемые с помощью Cilium и ACNS Не поддерживается

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

Это важно

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

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