Защита пользовательской виртуальной сети в приложениях контейнеров Azure с помощью групп безопасности сети
Группы безопасности сети (NSG), необходимые для настройки виртуальных сетей, похожи на параметры, необходимые Kubernetes.
Вы можете заблокировать сеть через группы безопасности сети с более строгими правилами, чем правила NSG по умолчанию, чтобы контролировать весь входящий и исходящий трафик для среды приложений контейнеров на уровне подписки.
В среде профилей рабочей нагрузки поддерживаются определяемые пользователем маршруты (UDR) и защита исходящего трафика с помощью брандмауэра . При использовании среды профилей внешней рабочей нагрузки входящий трафик в приложения контейнеров Azure направляется через общедоступный IP-адрес, который существует в управляемой группе ресурсов, а не через подсеть. Это означает, что блокировка входящего трафика через NSG или брандмауэр в среде внешних профилей рабочих нагрузок не поддерживается. Дополнительные сведения см. в разделе "Сеть" в средах приложений контейнеров Azure.
В среде потребления только экспресс-маршруты не поддерживаются, а пользовательские определяемые пользователем маршруты (UDR) имеют ограниченную поддержку. Дополнительные сведения о уровне поддержки UDR, доступной в среде только для потребления, см. в разделе часто задаваемых вопросов.
Разрешающие правила NSG
В следующих таблицах описано, как настроить коллекцию разрешающих правил NSG. Определенные правила зависят от типа среды.
Входящий трафик
Примечание.
При использовании профилей рабочей нагрузки правила Входящего NSG применяются только для трафика, который проходит через виртуальную сеть. Если для приложений-контейнеров настроено принимать трафик из общедоступного Интернета, входящий трафик проходит через общедоступную конечную точку вместо виртуальной сети.
Протокол | Источник | Исходные порты | Назначение | Конечные порты | Description |
---|---|---|---|---|---|
TCP | IP-адреса клиента | * | Подсетьприложения контейнера 1 | 80 , 31080 |
Разрешить IP-адресам клиента получать доступ к приложениям контейнеров Azure при использовании HTTP. 31080 — это порт, на который прокси-сервер среды приложений контейнеров отвечает на HTTP-трафик. Он находится за внутренней подсистемой балансировки нагрузки. |
TCP | IP-адреса клиента | * | Подсетьприложения контейнера 1 | 443 , 31443 |
Разрешить IP-адресам клиента получать доступ к приложениям контейнеров Azure при использовании HTTPS. 31443 — это порт, на котором прокси-сервер среды приложений контейнеров отвечает на трафик HTTPS. Он находится за внутренней подсистемой балансировки нагрузки. |
TCP | AzureLoadBalancer | * | Подсеть приложения контейнера | 30000-32767 2 |
Разрешить Azure Load Balancer пробовать серверные пулы. |
1 Этот адрес передается в качестве параметра при создании среды. Например, 10.0.0.0/21
.
2 Полный диапазон требуется при создании приложений контейнеров Azure в качестве порта в диапазоне, который будет динамически выделен. После создания необходимые порты являются двумя неизменяемыми, статическими значениями и можно обновить правила NSG.
Исходящие
Протокол | Источник | Исходные порты | Назначение | Конечные порты | Description |
---|---|---|---|---|---|
TCP | Подсеть приложения контейнера | * | MicrosoftContainerRegistry |
443 |
Это тег службы для реестра контейнеров Майкрософт для системных контейнеров. |
TCP | Подсеть приложения контейнера | * | AzureFrontDoor.FirstParty |
443 |
Это зависимость тега MicrosoftContainerRegistry службы. |
Любое | Подсеть приложения контейнера | * | Подсеть приложения контейнера | * | Разрешить обмен данными между IP-адресами в подсети приложения контейнера. |
TCP | Подсеть приложения контейнера | * | AzureActiveDirectory |
443 |
|
Если вы используете управляемое удостоверение, это необходимо. | |||||
TCP | Подсеть приложения контейнера | * | AzureMonitor |
443 |
Требуется только при использовании Azure Monitor. Разрешает исходящие вызовы к Azure Monitor. |
TCP и UDP | Подсеть приложения контейнера | * | 168.63.129.16 |
53 |
Позволяет среде использовать Azure DNS для разрешения имени узла. Примечание. Обмен данными DNS с Azure DNS не распространяется на группы безопасности сети, если они не предназначены для использования тега AzurePlatformDNS службы. Чтобы заблокировать трафик DNS, создайте правило исходящего трафика, чтобы запретить трафик тегу AzurePlatformDNS службы. |
TCP | Подсетьприложения контейнера 1 | * | Реестр контейнеров | Порт реестра контейнеров | Это необходимо для взаимодействия с реестром контейнеров. Например, при использовании ACR требуется AzureContainerRegistry и AzureActiveDirectory для назначения, а порт — порт реестра контейнеров, если не использует частные конечные точки.2 |
TCP | Подсеть приложения контейнера | * | Storage.<Region> |
443 |
Требуется только при использовании Azure Container Registry для размещения изображений. |
1 Этот адрес передается в качестве параметра при создании среды. Например, 10.0.0.0/21
.
2 Если вы используете Реестр контейнеров Azure (ACR) с группами безопасности сети, настроенными в виртуальной сети, создайте частную конечную точку в ACR, чтобы разрешить приложениям контейнеров Azure извлекать образы через виртуальную сеть. Не нужно добавлять правило NSG для ACR при настройке с частными конечными точками.
Рекомендации
- Если вы используете HTTP-серверы, может потребоваться добавить порты
80
и443
. - Не отрицайте явное отклонение DNS-адреса
168.63.129.16
Azure в исходящих правилах NSG или среда приложений контейнеров не работает.