Правила исходящей сети и полного доменного имени для кластеров Служба Azure Kubernetes (AKS)

В этой статье содержатся необходимые сведения, позволяющие защитить исходящий трафик от службы Azure Kubernetes (AKS). Он содержит требования к кластеру для базового развертывания AKS и дополнительные требования к дополнительным надстройкам и функциям. Эти сведения можно применить к любому методу ограничения исходящего трафика или (модуль).

Чтобы просмотреть пример конфигурации с помощью Брандмауэр Azure, посетите трафик исходящего трафика с помощью Брандмауэр Azure в AKS.

Общие сведения

Кластеры AKS развертываются в виртуальной сети. Эта сеть может быть настроена и предварительно настроена вами, или ее можно создать и управлять с помощью AKS. В любом случае кластер имеет исходящие или исходящие зависимости от служб за пределами виртуальной сети.

Для управления и эксплуатации узлам в кластере AKS нужен доступ к определенным портам и полным доменным именам (FQDN). Эти конечные точки необходимы для взаимодействия узлов с сервером API или для скачивания и установки основных компонентов кластера Kubernetes и обновлений безопасности узлов. Например, кластеру необходимо извлечь образы контейнеров базовой системы из Реестра контейнеров Майкрософт (MCR).

Исходящие зависимости AKS практически полностью определяются полным доменным FQDN, у которых нет статических адресов. Отсутствие статических адресов означает, что группы безопасности сети (NSG) нельзя использовать для блокировки исходящего трафика из кластера AKS.

По умолчанию кластеры AKS имеют неограниченный исходящий доступ к Интернету. Такой уровень сетевого доступа позволяет работающим узлам и службам обращаться к внешним ресурсам по мере необходимости. Если вы хотите ограничить исходящий трафик, нужно сохранить доступ для ограниченного числа портов и адресов, чтобы обеспечить работоспособность для задач обслуживания кластера. Самое простое решение для защиты исходящих адресов — это устройство брандмауэра, которое может контролировать исходящий трафик на основе доменных имен. Брандмауэр Azure может ограничить исходящий трафик HTTP и HTTPS на основе FQDN назначения. Вы также можете настроить разрешения для этих портов и адресов в выбранном брандмауэре и в правилах безопасности.

Важно!

В этом документе рассматривается только блокировка трафика, выходящего из подсети AKS. Служба контейнеров Azure по умолчанию не имеет никаких требований к входящему трафику. Блокировка внутреннего трафика подсети с помощью групп безопасности сети (NSG) и брандмауэров не поддерживается. Чтобы контролировать и блокировать трафик в кластере, см. раздел "Безопасный трафик между модулями pod с помощью политик сети в AKS".

Необходимые правила исходящей сети и FQDN для кластеров AKS

Для кластера AKS требуются следующие правила сети и полное доменное имя или приложение. Их можно использовать, если вы хотите настроить решение, отличное от Брандмауэр Azure.

  • Зависимости IP-адресов предназначены для трафика, отличного от HTTP/S (как TCP, так и трафика UDP).
  • В устройство брандмауэра можно добавить FQDN конечных точек для протокола HTTP/HTTPS.
  • Произвольные конечные точки для HTTP/HTTPS — это зависимости, которые могут меняться вместе с кластером AKS в зависимости от количества квалификаторов.
  • AKS использует контроллер допуска для внедрения полного доменного имени в качестве переменной среды для всех развертываний в kube-system и gatekeeper-system. Это гарантирует, что все системные связи между узлами и сервером API используют полное доменное имя сервера API, а не IP-адрес сервера API. Вы можете получить то же поведение в собственных модулях pod в любом пространстве имен, заметив спецификацию pod с помощью заметки с именем kubernetes.azure.com/set-kube-service-host-fqdn. Если эта заметка присутствует, AKS установит переменную KUBERNETES_SERVICE_HOST имя домена сервера API вместо IP-адреса службы в кластере. Это полезно в случаях, когда исходящий трафик кластера осуществляется через брандмауэр уровня 7.
  • Если у вас есть приложение или решение, которое должно взаимодействовать с сервером API, необходимо добавить дополнительное правило сети, чтобы разрешить tcp-связь через порт 443 IP-адресасервера API или, если у вас есть брандмауэр уровня 7, настроенный для разрешения трафика на доменное имя сервера API, задайте kubernetes.azure.com/set-kube-service-host-fqdn в спецификациях pod.
  • В редких случаях, если есть операция обслуживания, IP-адрес сервера API может измениться. Запланированные операции обслуживания, которые могут изменить IP-адрес сервера API, всегда передаются заранее.
  • В определенных обстоятельствах может произойти, что требуется трафик к "md-*.blob.storage.azure.net". Эта зависимость обусловлена некоторыми внутренними механизмами Управляемые диски Azure. Вы также можете использовать тег службы служба хранилища.

Глобальные обязательные правила сети Azure

Целевая конечная точка Протокол Порт Использование
*:1194
Or
ServiceTag - AzureCloud.<Region>:1194
Or
Региональные CIDR - RegionCIDRs:1194
Or
APIServerPublicIP:1194 (only known after cluster creation)
UDP 1194 Для туннелирования безопасного взаимодействия между узлами и плоскостью управления. Это не требуется для частных кластеров или для кластеров с включенным агентом коннективности.
*:9000
Or
ServiceTag - AzureCloud.<Region>:9000
Or
Региональные CIDR - RegionCIDRs:9000
Or
APIServerPublicIP:9000 (only known after cluster creation)
TCP 9000 Для туннелирования безопасного взаимодействия между узлами и плоскостью управления. Это не требуется для частных кластеров или для кластеров с включенным агентом коннективности.
*:123 или ntp.ubuntu.com:123 (при использовании сетевых правил брандмауэра Azure) UDP 123 Требуется для синхронизации времени по протоколу NTP на узлах Linux. Это не обязательно для узлов, подготовленных после марта 2021 г.
CustomDNSIP:53 (if using custom DNS servers) UDP 53 Если вы используете пользовательские DNS-серверы, необходимо убедиться, что они доступны для узлов кластера.
APIServerPublicIP:443 (if running pods/deployments that access the API Server) TCP 443 Требуется при запуске модулей pod или развертываний, обращающихся к серверу API, эти модули и развертывания будут использовать IP-адрес API. Этот порт не требуется для частных кластеров.

Глобальное требуемое полное доменное имя или правила приложения Azure

Полное доменное имя назначения Порт Использование
*.hcp.<location>.azmk8s.io HTTPS:443 Необходим для обмена данными между узлом и сервером API. Замените заполнитель <расположение> значением для региона, в котором развернут кластер AKS. Это требуется для кластеров с включенным konnectivity-agent. Konnectivity также использует расширение ALPN для обмена данными между агентом и сервером. Блокировка или перезапись расширения ALPN приведет к сбою. Это не обязательно для частных кластеров.
mcr.microsoft.com HTTPS:443 Этот адрес необходим для доступа к образам в реестре контейнеров Майкрософт (MCR). Этот реестр содержит образы и диаграммы от сторонних производителей (например, coreDNS и т. д.). Эти образы необходимы для правильного создания и функционирования кластера, включая операции масштабирования и обновления.
*.data.mcr.microsoft.com HTTPS:443 Необходим для хранилища MCR, поддерживаемого сетью доставки содержимого (CDN) Azure.
management.azure.com HTTPS:443 Требуется для операций Kubernetes с API Azure.
login.microsoftonline.com HTTPS:443 Требуется для проверки подлинности Microsoft Entra.
packages.microsoft.com HTTPS:443 Этот адрес содержит репозиторий пакетов Майкрософт, которые используются для кэширования операций apt-get. Например, здесь хранятся пакеты для Moby, PowerShell и Azure CLI.
acs-mirror.azureedge.net HTTPS:443 Это адрес для репозитория, необходимого для загрузки и установки обязательных двоичных файлов, таких как kubenet и Azure CNI.

Microsoft Azure, управляемый правилами сети 21Vianet

Целевая конечная точка Протокол Порт Использование
*:1194
Or
ServiceTag - AzureCloud.Region:1194
Or
Региональные CIDR - RegionCIDRs:1194
Or
APIServerPublicIP:1194 (only known after cluster creation)
UDP 1194 Для туннелирования безопасного взаимодействия между узлами и плоскостью управления.
*:9000
Or
ServiceTag - AzureCloud.<Region>:9000
Or
Региональные CIDR - RegionCIDRs:9000
Or
APIServerPublicIP:9000 (only known after cluster creation)
TCP 9000 Для туннелирования безопасного взаимодействия между узлами и плоскостью управления.
*:22
Or
ServiceTag - AzureCloud.<Region>:22
Or
Региональные CIDR - RegionCIDRs:22
Or
APIServerPublicIP:22 (only known after cluster creation)
TCP 22 Для туннелирования безопасного взаимодействия между узлами и плоскостью управления.
*:123 или ntp.ubuntu.com:123 (при использовании сетевых правил брандмауэра Azure) UDP 123 Требуется для синхронизации времени по протоколу NTP на узлах Linux.
CustomDNSIP:53 (if using custom DNS servers) UDP 53 Если вы используете пользовательские DNS-серверы, необходимо убедиться, что они доступны для узлов кластера.
APIServerPublicIP:443 (if running pods/deployments that access the API Server) TCP 443 Требуется при запуске модулей Pod или развертываний, обращающихся к серверу API, эти модули и развертывания будут использовать IP-адрес API.

Microsoft Azure, управляемый 21Vianet, требуется полное доменное имя или правила приложения

Полное доменное имя назначения Порт Использование
*.hcp.<location>.cx.prod.service.azk8s.cn HTTPS:443 Необходим для обмена данными между узлом и сервером API. Замените заполнитель <расположение> значением для региона, в котором развернут кластер AKS.
*.tun.<location>.cx.prod.service.azk8s.cn HTTPS:443 Необходим для обмена данными между узлом и сервером API. Замените заполнитель <расположение> значением для региона, в котором развернут кластер AKS.
mcr.microsoft.com HTTPS:443 Этот адрес необходим для доступа к образам в реестре контейнеров Майкрософт (MCR). Этот реестр содержит образы и диаграммы от сторонних производителей (например, coreDNS и т. д.). Эти образы необходимы для правильного создания и функционирования кластера, включая операции масштабирования и обновления.
.data.mcr.microsoft.com HTTPS:443 Этот адрес необходим для хранилища MCR, поддерживаемого сетью доставки содержимого (CDN) Azure.
management.chinacloudapi.cn HTTPS:443 Требуется для операций Kubernetes с API Azure.
login.chinacloudapi.cn HTTPS:443 Требуется для проверки подлинности Microsoft Entra.
packages.microsoft.com HTTPS:443 Этот адрес содержит репозиторий пакетов Майкрософт, которые используются для кэширования операций apt-get. Например, здесь хранятся пакеты для Moby, PowerShell и Azure CLI.
*.azk8s.cn HTTPS:443 Это адрес для репозитория, необходимого для загрузки и установки обязательных двоичных файлов, таких как kubenet и Azure CNI.

Правила сети, необходимые для государственных организаций США

Целевая конечная точка Протокол Порт Использование
*:1194
Or
ServiceTag - AzureCloud.<Region>:1194
Or
Региональные CIDR - RegionCIDRs:1194
Or
APIServerPublicIP:1194 (only known after cluster creation)
UDP 1194 Для туннелирования безопасного взаимодействия между узлами и плоскостью управления.
*:9000
Or
ServiceTag - AzureCloud.<Region>:9000
Or
Региональные CIDR - RegionCIDRs:9000
Or
APIServerPublicIP:9000 (only known after cluster creation)
TCP 9000 Для туннелирования безопасного взаимодействия между узлами и плоскостью управления.
*:123 или ntp.ubuntu.com:123 (при использовании сетевых правил брандмауэра Azure) UDP 123 Требуется для синхронизации времени по протоколу NTP на узлах Linux.
CustomDNSIP:53 (if using custom DNS servers) UDP 53 Если вы используете пользовательские DNS-серверы, необходимо убедиться, что они доступны для узлов кластера.
APIServerPublicIP:443 (if running pods/deployments that access the API Server) TCP 443 Требуется при запуске модулей pod или развертываний, обращающихся к серверу API, эти модули и развертывания будут использовать IP-адрес API.

Для государственных организаций США требуются полные доменные имена и правила приложений

Полное доменное имя назначения Порт Использование
*.hcp.<location>.cx.aks.containerservice.azure.us HTTPS:443 Необходим для обмена данными между узлом и сервером API. Замените заполнитель <расположение> значением для региона, в котором развернут кластер AKS.
mcr.microsoft.com HTTPS:443 Этот адрес необходим для доступа к образам в реестре контейнеров Майкрософт (MCR). Этот реестр содержит образы и диаграммы от сторонних производителей (например, coreDNS и т. д.). Эти образы необходимы для правильного создания и функционирования кластера, включая операции масштабирования и обновления.
*.data.mcr.microsoft.com HTTPS:443 Необходим для хранилища MCR, поддерживаемого сетью доставки содержимого (CDN) Azure.
management.usgovcloudapi.net HTTPS:443 Требуется для операций Kubernetes с API Azure.
login.microsoftonline.us HTTPS:443 Требуется для проверки подлинности Microsoft Entra.
packages.microsoft.com HTTPS:443 Этот адрес содержит репозиторий пакетов Майкрософт, которые используются для кэширования операций apt-get. Например, здесь хранятся пакеты для Moby, PowerShell и Azure CLI.
acs-mirror.azureedge.net HTTPS:443 Это адрес для репозитория, необходимого для установки обязательных двоичных файлов, таких как kubenet и Azure CNI.

Для кластеров AKS рекомендуется использовать следующие полные доменные имена или правила приложения:

Полное доменное имя назначения Порт Использование
security.ubuntu.com, , azure.archive.ubuntu.comchangelogs.ubuntu.com HTTP:80 Этот адрес позволяет узлам кластера Linux скачивать необходимые исправления и обновления для системы безопасности.

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

Кластеры AKS с поддержкой GPU требуют полное доменное имя или правила приложения

Полное доменное имя назначения Порт Использование
nvidia.github.io HTTPS:443 Этот адрес используется для правильной установки и работы драйвера на узлах на основе GPU.
us.download.nvidia.com HTTPS:443 Этот адрес используется для правильной установки и работы драйвера на узлах на основе GPU.
download.docker.com HTTPS:443 Этот адрес используется для правильной установки и работы драйвера на узлах на основе GPU.

Пулы узлов на основе Windows Server требуют полное доменное имя или правила приложения

Полное доменное имя назначения Порт Использование
onegetcdn.azureedge.net, go.microsoft.com HTTPS:443 Для установки двоичных файлов, связанных с Windows.
*.mp.microsoft.com, www.msftconnecttest.com, ctldl.windowsupdate.com HTTP:80 Для установки двоичных файлов, связанных с Windows.

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

Надстройки и интеграции AKS

Microsoft Defender для Контейнеров

Требуемое полное доменное имя/правила приложения

Полное доменное имя Порт Использование
login.microsoftonline.com
login.microsoftonline.us(Azure для государственных организаций)
login.microsoftonline.cn (Azure, управляемый 21Vianet)
HTTPS:443 Требуется для проверки подлинности Azure Active Directory.
*.ods.opinsights.azure.com
*.ods.opinsights.azure.us(Azure для государственных организаций)
*.ods.opinsights.azure.cn (Azure, управляемый 21Vianet)
HTTPS:443 Требуется Microsoft Defender для передачи событий безопасности в облако.
*.oms.opinsights.azure.com
*.oms.opinsights.azure.us(Azure для государственных организаций)
*.oms.opinsights.azure.cn (Azure, управляемый 21Vianet)
HTTPS:443 Требуется для проверки подлинности в рабочих областях Log Analytics.

Хранилище секретов CSI

Требуемое полное доменное имя/правила приложения

Полное доменное имя Порт Использование
vault.azure.net HTTPS:443 Требуется, чтобы группы pod надстроек хранилища секретов CSI взаимодействовали с сервером Azure KeyVault.

Azure Monitor для контейнеров

Существует два варианта предоставления доступа к Azure Monitor для контейнеров:

  • Разрешить Azure Monitor ServiceTag.
  • Предоставьте доступ к необходимым правилам полного доменного имени или приложения.

Требуемые сетевые правила

Целевая конечная точка Протокол Порт Использование
ServiceTag - AzureMonitor:443 TCP 443 Эта конечная точка используется для отправки данных и журналов метрик в Azure Monitor и Log Analytics.

Требуемое полное доменное имя/правила приложения

Полное доменное имя Порт Использование
dc.services.visualstudio.com HTTPS:443 Эта конечная точка используется для метрик и мониторинга телеметрии с помощью Azure Monitor.
*.ods.opinsights.azure.com HTTPS:443 Конечная точка используется в Azure Monitor для приема данных Log Analytics.
*.oms.opinsights.azure.com HTTPS:443 Эта конечная точка используется агентом omsagent, который нужен для проверки подлинности службы Log Analytics.
*.monitoring.azure.com HTTPS:443 Эта конечная точка используется для отправки данных метрик в Azure Monitor.
<cluster-region-name>.ingest.monitor.azure.com HTTPS:443 Эта конечная точка используется управляемой службой Azure Monitor для приема метрик Prometheus.
<cluster-region-name>.handler.control.monitor.azure.com HTTPS:443 Эта конечная точка используется для получения правил сбора данных для определенного кластера.

Microsoft Azure, управляемый 21Vianet, требуется полное доменное имя или правила приложения

Полное доменное имя Порт Использование
dc.services.visualstudio.com HTTPS:443 Эта конечная точка используется для метрик и мониторинга телеметрии с помощью Azure Monitor.
*.ods.opinsights.azure.cn HTTPS:443 Конечная точка используется в Azure Monitor для приема данных Log Analytics.
*.oms.opinsights.azure.cn HTTPS:443 Эта конечная точка используется агентом omsagent, который нужен для проверки подлинности службы Log Analytics.
global.handler.control.monitor.azure.cn HTTPS:443 Эта конечная точка используется Azure Monitor для доступа к службе управления.
<cluster-region-name>.handler.control.monitor.azure.cn HTTPS:443 Эта конечная точка используется для получения правил сбора данных для определенного кластера.

Для государственных организаций США требуются полные доменные имена и правила приложений

Полное доменное имя Порт Использование
dc.services.visualstudio.com HTTPS:443 Эта конечная точка используется для метрик и мониторинга телеметрии с помощью Azure Monitor.
*.ods.opinsights.azure.us HTTPS:443 Конечная точка используется в Azure Monitor для приема данных Log Analytics.
*.oms.opinsights.azure.us HTTPS:443 Эта конечная точка используется агентом omsagent, который нужен для проверки подлинности службы Log Analytics.
global.handler.control.monitor.azure.us HTTPS:443 Эта конечная точка используется Azure Monitor для доступа к службе управления.
<cluster-region-name>.handler.control.monitor.azure.us HTTPS:443 Эта конечная точка используется для получения правил сбора данных для определенного кластера.

Политика Azure

Требуемое полное доменное имя/правила приложения

Полное доменное имя Порт Использование
data.policy.core.windows.net HTTPS:443 Этот адрес используется для извлечения политик Kubernetes и для сообщения о состоянии соответствия кластера службе политики.
store.policy.core.windows.net HTTPS:443 Этот адрес используется для извлечения артефактов встроенных политик.
dc.services.visualstudio.com HTTPS:443 Надстройка службы "Политика Azure", которая отправляет данные телеметрии в конечную точку Application Insights.

Microsoft Azure, управляемый 21Vianet, требуется полное доменное имя или правила приложения

Полное доменное имя Порт Использование
data.policy.azure.cn HTTPS:443 Этот адрес используется для извлечения политик Kubernetes и для сообщения о состоянии соответствия кластера службе политики.
store.policy.azure.cn HTTPS:443 Этот адрес используется для извлечения артефактов встроенных политик.

Для государственных организаций США требуются полные доменные имена и правила приложений

Полное доменное имя Порт Использование
data.policy.azure.us HTTPS:443 Этот адрес используется для извлечения политик Kubernetes и для сообщения о состоянии соответствия кластера службе политики.
store.policy.azure.us HTTPS:443 Этот адрес используется для извлечения артефактов встроенных политик.

Расширения кластера

Требуемое полное доменное имя/правила приложения

Полное доменное имя Порт Использование
<region>.dp.kubernetesconfiguration.azure.com HTTPS:443 Этот адрес используется для получения сведений о конфигурации из службы расширений кластера и для передачи службе состояния расширения отчетов.
mcr.microsoft.com, *.data.mcr.microsoft.com HTTPS:443 Этот адрес необходим для извлечения образов контейнеров для установки агентов расширения кластера в кластере AKS.
arcmktplaceprod.azurecr.io HTTPS:443 Этот адрес необходим для извлечения образов контейнеров для установки расширений Marketplace в кластере AKS.
arcmktplaceprod.centralindia.data.azurecr.io HTTPS:443 Этот адрес предназначен для конечной точки региональных данных Центральной Индии и требуется для извлечения образов контейнеров для установки расширений Marketplace в кластере AKS.
arcmktplaceprod.japaneast.data.azurecr.io HTTPS:443 Этот адрес предназначен для региональной конечной точки данных Восточной Японии и требуется для извлечения образов контейнеров для установки расширений Marketplace в кластере AKS.
arcmktplaceprod.westus2.data.azurecr.io HTTPS:443 Этот адрес предназначен для конечной точки региональных данных в западной части США 2 и требуется для извлечения образов контейнеров для установки расширений Marketplace в кластере AKS.
arcmktplaceprod.westeurope.data.azurecr.io HTTPS:443 Этот адрес предназначен для конечной точки региональных данных Западной Европы и требуется для извлечения образов контейнеров для установки расширений Marketplace в кластере AKS.
arcmktplaceprod.eastus.data.azurecr.io HTTPS:443 Этот адрес предназначен для конечной точки региональных данных восточной части США и требуется для извлечения образов контейнеров для установки расширений Marketplace в кластере AKS.
*.ingestion.msftcloudes.com, *.microsoftmetrics.com HTTPS:443 Этот адрес используется для отправки данных метрик агентов в Azure.
marketplaceapi.microsoft.com HTTPS: 443 Этот адрес используется для отправки пользовательского использования на основе счетчиков в API измерения торговли.

Для государственных организаций США требуются полные доменные имена и правила приложений

Полное доменное имя Порт Использование
<region>.dp.kubernetesconfiguration.azure.us HTTPS:443 Этот адрес используется для получения сведений о конфигурации из службы расширений кластера и для передачи службе состояния расширения отчетов.
mcr.microsoft.com, *.data.mcr.microsoft.com HTTPS:443 Этот адрес необходим для извлечения образов контейнеров для установки агентов расширения кластера в кластере AKS.

Примечание.

Для любых надстроек, которые не указаны явно здесь, основные требования охватывают его.

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

Из этой статьи вы узнали, какие порты и адреса нужно разрешить при ограничении исходящего трафика для кластера.

Если необходимо ограничить способ взаимодействия между собой и East-West ограничения трафика в кластере, см. раздел Защита трафика между модулями Pod с помощью сетевых политик в AKS.