Azure前门位于应用程序网关的前面

tquggr8v  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(140)

我已在应用程序网关的前端部署了Azure前门。现在我希望通过前门路由所有流量,并限制对应用程序网关的公共IP地址的直接访问。如何操作?
Here's what I'm trying to do

woobm2wo

woobm2wo1#

我已从Microsoft Azure支持部门获得答案。我需要添加网络安全组(NSG)并将应用程序网关子网链接到它。NSG入站规则:
来源:服务标签
源服务标签:AzureFrontDoor.Backend
源端口范围:*
目的地:任何
目标端口范围:*
方案:任何
操作:允许
优先级:200
来源:服务标签
源服务标签:网关管理器
源端口范围:*
目的地:任何
目标端口范围:65200-65535
方案:任何
操作:允许
优先级:300
来源:服务标签
源服务标签:虚拟网络
源端口范围:*
目的地:任何
目标端口范围:*
方案:任何
操作:允许
优先级:400
来源:服务标签
源服务标签:Azure负载平衡器
源端口范围:*
目的地:任何
目标端口范围:*
方案:任何
操作:允许
优先级:500
来源:任何
源端口范围:*
目的地:任何
目标端口范围:*
方案:任何
操作:拒绝
优先级:600
Here's how my NSG looks like

bwleehnv

bwleehnv2#

Microsoft文档中列出了您需要的附加到App Gateway子网的N网络S安全G组规则:

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 HTTP。如果需要,请更新端口或使用“任意”。
1.我在应用程序网关后配置了Azure Kubernetes服务作为应用程序网关入口控制器(AGIC),因此目标是VirtualNetwork。同样,根据您的特定方案,您可以更新它或将其保留为“任意”。
这里也是Azure目录中的一个完整的GitHub代码示例。

评论中的问题:

我不明白这是如何阻止FD以外的任何人通过AG的公共IP地址访问AKS应用程序的。你能澄清一下吗?@AndyMoose
NSG rules work as follows:根据规则优先级,系统将根据NSG规则评估传入请求。如果请求与NSG规则匹配,则NSG规则将应用其活动(允许或拒绝)。如果请求与规则不匹配,则它将评估下一个规则。例如:
如果您或任何人尝试访问Azure应用程序网关(agw)公共IP(pip),它将检查NSG规则,如下所示:

  • 200:您的请求不匹配,因为传入的请求不是来自AzureFrontDoor。后端
  • 300:您的请求不匹配,因为传入请求不是来自GatewayManager
  • 65000:您的请求不匹配,因为传入的请求不是来自VirtualNetwork内的
  • 65001:您的请求不匹配,因为传入请求不是来自AzureLoadBalancer内的
  • 65500:您的请求与规则匹配,因为NSG规则接受所有传入源、端口和协议。因此,NSG规则应用其操作(拒绝)

相关问题