Azure 容器應用程式 環境與 Azure 防火牆 整合

本文說明如何透過使用者定義路由(UDR)將 Azure 容器應用程式 環境與 Azure 防火牆 整合的概念。 透過使用 UDR,你可以控制流量在虛擬網路中的路由方式。

你可以透過 Azure 防火牆 路由所有來自容器應用程式的外發流量,該系統提供一個中央節點來監控流量並套用安全政策。 此設定可協助保護您的容器應用程式免於潛在的威脅。 同時,它也透過提供詳細的日誌與監控功能,協助您符合合規要求。

使用者定義的路由

UDR 與透過 Azure NAT 閘道 的受控出口僅支援於工作負載設定環境。

使用 UDR 來限制容器應用程式經由 Azure 防火牆 或其他網路設備的外出流量。 如需詳細資訊,請參閱 使用使用者定義路由控制 Azure 容器應用程式 中的輸出流量。

你在容器應用程式環境範圍之外設定 UDR。

容器應用程式中使用者自訂路由的實作示意圖。

Azure 會在你建立虛擬網路時建立預設路由表。 您可以實作使用者定義的路由表,控制流量在您虛擬網路內的傳送方式。 舉例來說,你可以建立一個 UDR,透過將容器應用程式的外出流量路由到 Azure 防火牆 來限制。

當你在容器應用程式中使用 UDR 搭配 Azure 防火牆 時,根據你使用的資源,將應用程式或網路規則加入防火牆的允許清單。

備註

根據系統需求,設定應用程式規則或網路規則。 其實沒必要同時設定兩個。

應用程式規則

應用程式規則會根據應用程式層,允許或拒絕流量。 根據情境,需遵守以下外發防火牆應用規則及其完全限定的網域名稱(FQDN)。

案例 FQDN 說明
所有情境 mcr.microsoft.com、*.data.mcr.microsoft.com 容器應用程式使用這些 FQDN 來管理 Microsoft Artifact Registry。 當你使用 Azure 防火牆 的容器應用程式時,請將這些應用程式規則或 Artifact 登錄的網路規則加入允許清單。
所有情境 packages.aks.azure.com、acs-mirror.azureedge.net 底層的 Azure Kubernetes Service (AKS) 叢集需要這些 FQDN 來下載並安裝 Kubernetes 及 Azure 容器網路介面(CNI)二進位檔。 當你使用 Azure 防火牆 的容器應用程式時,請將這些應用程式規則或 Artifact 登錄的網路規則加入允許清單。 欲了解更多資訊,請參閱 Azure Global 必要 FQDN / 應用程式規則。
Azure Container Registry <your-Container-Registry-address>、*.blob.core.windows.net、login.microsoft.com 當你使用包含容器登錄檔和 Azure 防火牆 的容器應用程式時,這些 FQDN 是必須的。
Azure Key Vault <your-Key-Vault-address>、login.microsoft.com 除了 金鑰保存庫 網路規則所需的服務標籤之外,還需要這些 FQDN。
受管理的識別 *.identity.azure.net、login.microsoftonline.com、*.login.microsoftonline.com、*.login.microsoft.com 當你在容器應用程式中使用 Azure 防火牆 的管理身份時,這些 FQDN 是必須的。
Azure 服務匯流排 *.servicebus.windows.net 當你的容器應用程式透過 Azure 防火牆 與 服務匯流排(佇列、主題或訂閱)通訊時,這些 FQDN 是必須的。
Aspire儀表板 https://<YOUR-CONTAINER-APP-REGION>.ext.azurecontainerapps.dev 當您在已設定虛擬網路的環境中使用 Aspire 儀表板時,便需要此 FQDN。 更新 FQDN 以包含您的容器應用程式所在的區域。
Docker Hub 登錄檔 hub.docker.com、registry-1.docker.io、production.cloudflare.docker.com 如果你使用 Docker Hub 登錄檔並想透過防火牆存取,請將這些 FQDN 加入防火牆。
Azure 服務匯流排 *.servicebus.windows.net 當你使用 服務匯流排 搭配容器應用程式和 Azure 防火牆 時,這個 FQDN 是必須的。
由 21Vianet 營運的 Azure(中國的 Azure):Microsoft 構件登錄 mcr.azure.cn、*.data.mcr.azure.cn 這些產物登錄端點用於在中國 Azure 環境中拉取容器映像。
中國的 Azure:AKS 基礎架構 mcr.azk8s.cn、mirror.azk8s.cn 這些中國專用的 AKS 鏡像用於下載 Kubernetes 二進位檔和容器映像檔。
中國 Azure:Azure Container Registry *.azurecr.cn 當你在中國 Azure 環境中使用 Container Registry 時,必須有這個 FQDN。
中國 Azure:受控識別 *.identity.azure.cn、login.chinacloudapi.cn、*.login.chinacloudapi.cn 當你在中國 Azure 環境中使用受管理身份時,這些 FQDN 是必備的。
中國的 Azure:Azure 金鑰保存庫 *.vault.azure.cn、login.chinacloudapi.cn 當你在中國 Azure 環境中使用 金鑰保存庫 時,這些 FQDN 是必須的。
中國的 Azure:Azure 管理 management.chinacloudapi.cn、*.blob.core.chinacloudapi.cn 這些 FQDN 是 Azure Resource Manager API 呼叫及中國 Azure 環境中平台管理儲存帳號所必需的。
中國 Azure:監控 *.servicebus.chinacloudapi.cn、mooncake.warmpath.chinacloudapi.cn 這些 FQDN 是 Azure 中國環境中平台監控與遙測擷取所必需的。
Azure in China:容器應用平台 *.chinacloudsites.cn、*.ext.azurecontainerapps-dev.cn 這些 FQDN 是 Azure in China 環境中容器應用區域控制平面及擴充 API 所必需的。
中國 Azure:Aspire 儀表板 *.azurecontainerapps.cn 當您在中國 Azure 環境中使用 Aspire 儀表板或應用程式 FQDN 時,這些 FQDN 是必須的。

備註

Azure 中國版的 FQDN 僅適用於 Azure 中國版環境。 Docker Hub FQDN 在全球範圍內相同,但來自中國的存取可能不可靠。 請考慮改將映像鏡像到容器登錄 (*.azurecr.cn)。

網路規則

網路規則會根據網路和傳輸層來允許或拒絕流量。 當你在容器應用程式中使用 UDR 搭配 Azure 防火牆 時,請根據情境新增以下出站防火牆網路規則。

案例 服務標籤 說明
所有情境 MicrosoftContainerRegistry、AzureFrontDoorFirstParty 容器應用程式(Container Apps)在 Microsoft Artifact 登錄中使用這些服務標籤。 若要允許容器應用程式使用 Artifact Registry,請在使用 Azure 防火牆 的容器應用程式時,將這些網路規則或 Artifact 登錄的應用程式規則加入允許清單。
Azure Container Registry AzureContainerRegistry、AzureActiveDirectory 當你使用 Container Registry 搭配容器應用程式時,設定這些 Container Registry 所使用的網路規則。
Azure Key Vault AzureKeyVault、AzureActiveDirectory 除了金鑰保存庫網路規則所需的 FQDN 外,還需要這些服務標籤。
受管理的識別 AzureActiveDirectory 當你在容器應用程式中使用受管理身份時,請設定這些該管理身份所使用的網路規則。
Azure 服務匯流排 ServiceBus 當容器應用程式使用 Azure 防火牆 和服務標籤存取 服務匯流排 時,必須使用此服務標籤。

備註

關於你在Azure 防火牆中使用但本文未列出的Azure資源,請參考 service tags documentation。

後續步驟