Azure 容器应用环境与Azure 防火墙集成

本文介绍使用用户定义的路由(UDR)将Azure 容器应用环境与Azure 防火墙集成的概念。 通过使用 UDR,可以控制如何在虚拟网络中路由流量。

可以通过 Azure 防火墙路由来自容器应用的所有出站流量,该防火墙提供监视流量和应用安全策略的中心点。 此设置有助于保护容器应用免受潜在威胁。 它还通过提供详细的日志和监视功能来帮助满足合规性要求。

用户定义路由

UDR 和通过Azure NAT 网关控制的出口仅在工作负荷配置文件环境中受支持。

使用 UDR 通过Azure 防火墙或其他网络设备来限制来自容器应用的出站流量。 有关详细信息,请参阅 使用用户定义的路由控制 Azure 容器应用 中的出站流量

你在容器应用环境范围之外配置 UDR。

容器应用中用户定义路由的实现示意图。

创建这些网络时,Azure为虚拟网络创建默认路由表。 通过实现用户定义的路由表,可以控制流量在虚拟网络中的路由方式。 例如,可以创建一个 UDR,通过将其路由到 Azure 防火墙来限制来自容器应用的出站流量。

在容器应用中将 UDR 用于Azure 防火墙时,请将应用程序或网络规则添加到防火墙的允许列表中,具体取决于所使用的资源。

注释

根据系统的要求配置应用程序规则或网络规则。 不需要同时配置这两个配置。

应用程序规则

应用程序规则基于应用程序层允许或拒绝流量。 根据具体场景,需要以下出站防火墙应用程序规则及其完全限定域名(FQDN)。

Scenarios FQDN Description
所有情景 mcr.microsoft.com*.data.mcr.microsoft.com 容器应用将这些 FQDN 用于 Microsoft Artifact Registry。 将容器应用用于Azure 防火墙时,请将这些应用程序规则或项目注册表的网络规则添加到允许列表中。
所有情景 packages.aks.azure.comacs-mirror.azureedge.net 底层的 Azure Kubernetes 服务 (AKS) 群集需要这些 FQDN 来下载和安装 Kubernetes 及 Azure 容器网络接口 (CNI) 二进制文件。 将容器应用用于Azure 防火墙时,请将这些应用程序规则或项目注册表的网络规则添加到允许列表中。 有关详细信息,请参阅 Azure 全局必需的 FQDN/应用程序规则
Azure 容器注册表 <your-Container-Registry-address>*.blob.core.windows.netlogin.microsoft.com 将容器应用与容器注册表和 Azure 防火墙配合使用时,需要这些 FQDN。
Azure 密钥保管库 <your-Key-Vault-address>login.microsoft.com 除 密钥保管库 网络规则所需的服务标记外,还需要这些 FQDN。
托管身份 *.identity.azure.netlogin.microsoftonline.com*.login.microsoftonline.com*.login.microsoft.com 在 Azure 容器应用中将托管标识与 Azure 防火墙配合使用时,需要这些 FQDN。
Docker Hub注册表 hub.docker.comregistry-1.docker.ioproduction.cloudflare.docker.com 如果使用 Docker Hub 注册表并希望通过防火墙访问它,请将这些 FQDN 添加到防火墙。
Azure 服务总线 *.servicebus.windows.net 在将 服务总线 与容器应用和 Azure 防火墙 配合使用时,需要此 FQDN。
由 21Vianet 运营的 Azure(中国区 Azure):Microsoft Artifact Registry mcr.azure.cn*.data.mcr.azure.cn 这些 Artifact Registry 端点用于在 Azure 中国环境中拉取容器映像。
中国Azure:AKS 基础设施 mcr.azk8s.cnmirror.azk8s.cn 这些中国特定的 AKS 镜像用于下载 Kubernetes 二进制文件和容器映像。
Azure 中国: Azure 容器注册表 *.azurecr.cn 在中国的Azure环境中使用容器注册表时,需要此 FQDN。
中国区 Azure:托管身份 *.identity.azure.cnlogin.chinacloudapi.cn*.login.chinacloudapi.cn 在“中国区 Azure”环境中使用托管身份时,需要这些 FQDN。
中国的 Azure:Azure 密钥保管库 *.vault.azure.cnlogin.chinacloudapi.cn 在 Azure 中国环境中使用 密钥保管库 时,需要以下完全限定域名 (FQDN)。
中国Azure:Azure管理 management.chinacloudapi.cn*.blob.core.chinacloudapi.cn 这些 FQDN 是 Azure 中国环境中的 Azure 资源管理器 API 调用和平台管理的存储账户所必需的。
中国Azure:监测 *.servicebus.chinacloudapi.cnmooncake.warmpath.chinacloudapi.cn 这些 FQDN 是 Azure 中国环境中进行平台监控和遥测数据引入所必需的。
中国Azure:容器应用平台 *.chinacloudsites.cn*.ext.azurecontainerapps-dev.cn 这些 FQDN 是 Azure 中国环境中容器应用区域控制平面和扩展 API 所必需的。
中国区 Azure:Aspire 仪表板 *.azurecontainerapps.cn 在“中国区 Azure”环境中使用 Aspire 仪表板或应用 FQDN 时,需要这些 FQDN。

网络规则

网络规则基于网络和传输层允许或拒绝流量。 在 Container Apps 中将 UDR 与 Azure 防火墙配合使用时,请根据具体场景添加以下出站防火墙网络规则。

Scenarios 服务标记 Description
所有情景 MicrosoftContainerRegistryAzureFrontDoorFirstParty 容器应用使用这些服务标记来访问 Microsoft Artifact Registry。 若要允许容器应用使用项目注册表,请在将容器应用用于Azure 防火墙时,将这些网络规则或项目注册表的应用程序规则添加到允许列表中。
Azure 容器注册表 AzureContainerRegistryAzureActiveDirectory 将容器注册表用于容器应用时,请配置容器注册表使用的这些网络规则。
Azure 密钥保管库 AzureKeyVaultAzureActiveDirectory 除了 密钥保管库 网络规则所需的 FQDN 之外,还需要这些服务标记。
托管标识 AzureActiveDirectory 将托管标识用于容器应用时,请配置托管标识使用的这些网络规则。
Azure 服务总线 ServiceBus 当容器应用使用Azure 防火墙和服务标记访问服务总线时,需要此服务标记。

注释

对于您使用 Azure 防火墙 配置的、但本文未列出的 Azure 资源,请参阅 service tags 文档

后续步骤