应用程序网关前面的 Azure Front Door

Azure Front Door in the front of Application Gateway

我已经在应用程序网关前端部署了 Azure Front Door。 现在我想通过 Front Door 路由所有流量并限制对应用程序网关的 public IP 地址的直接访问。 怎么做?

Here's what I'm trying to do

我已从 Microsoft Azure 支持部门获得答复。 我需要向其中添加网络安全组 (NSG) 和 link 应用程序网关子网。 NSG 入站规则:


来源:服务标签
来源服务标签:AzureFrontDoor.Backend
源端口范围:*
目的地:任何
目标端口范围:*
协议:任何
操作:允许
优先级:200


来源:服务标签
源服务标签:GatewayManager
源端口范围:*
目的地:任何
目标端口范围:65200-65535
协议:任何
操作:允许
优先级:300


来源:服务标签
源服务标签:VirtualNetwork
源端口范围:*
目的地:任何
目标端口范围:*
协议:任何
操作:允许
优先级:400


来源:服务标签
源服务标签:AzureLoadBalancer
源端口范围:*
目的地:任何
目标端口范围:*
协议:任何
操作:允许
优先级:500


来源:任何
源端口范围:*
目的地:任何
目标端口范围:*
协议:任何
操作:拒绝
优先级:600

Here's how my NSG looks like

来自Microsoft docs,这些是N网络S安全G附加到您需要的 App Gateway 子网的组规则:

Azure CLI 示例:

   # Set up reusable variables
   app="myapp";                                 echo $app
   env="prod";                                  echo $env
   l="eastus2";                                 echo $l
   tags="env=$env app=$app";                    echo $tags
   app_rg="rg-$app-$env";                       echo $app_rg
   agic_nsg_n="nsg-agic-$app-$env";             echo $agic_nsg_n

   # Creates an AGW NSG with Default rules
   az network nsg create \
   --resource-group $app_rg \
   --name $agic_nsg_n \
   --location $l \
   --tags $tags

   # AllowGatewayManagerInbound
   az network nsg rule create \
   --name AllowGatewayManagerInbound \
   --direction Inbound \
   --resource-group $app_rg \
   --nsg-name $agic_nsg_n \
   --priority 300 \
   --destination-port-ranges 65200-65535 \
   --protocol TCP \
   --source-address-prefixes GatewayManager \
   --destination-address-prefixes "*" \
   --access Allow

   # AllowAzureFrontDoor.BackendInbound
   az network nsg rule create \
   --name AllowAzureFrontDoor.Backend \
   --direction Inbound \
   --resource-group $app_rg \
   --nsg-name $agic_nsg_n \
   --priority 200 \
   --destination-port-ranges 443 80 \
   --protocol TCP \
   --source-address-prefixes AzureFrontDoor.Backend \
   --destination-address-prefixes VirtualNetwork \
   --access Allow

假设是:

  1. 来自 Azure Front Door 的传入流量通过端口 80 HTTP 或 443 HTTPs。如果您需要,请更新端口或使用 Any。
  2. 我在应用程序网关后面有一个 Azure Kubernetes 服务,配置为应用程序网关入口控制器 (AGIC),因此目标是 VirtualNetwork。同样,根据您的具体情况,您可以更新它或将其保留为任何。

这里还有一个完整的 GitHub Azure 目录中的代码示例。