Azure Front Door WAF实战:托管规则、限速与日志查询

如果网站面向多个地区访问,源站安全不能只靠Nginx和服务器防火墙。更好的做法,是在边缘入口先做Web攻击检测、访问控制、限速和日志监控,再把正常请求转发给源站。

Azure Front Door上的Web Application Firewall可以集中保护Web应用。本文用Azure CLI和KQL演示一套最小可落地方案:创建Azure Front Door WAF策略,启用托管规则,添加自定义限速规则,配置诊断日志,最后用Log Analytics验证拦截、限速和请求链路。

一、架构:WAF放在全球入口

Microsoft Learn说明,Azure Front Door上的WAF可以基于自定义规则和托管规则控制访问;WAF可先处于检测模式,观察影响后再改为防护模式。对于新上线的业务,这个流程比直接强拦截更稳。

基本链路是:

用户请求 → Azure Front Door → WAF Policy → Origin Group → 源站应用。

二、准备变量

bash 复制代码
export RESOURCE_GROUP="rg-edge-security"
export LOCATION="global"
export PROFILE_NAME="afd-prod-profile"
export WAF_POLICY="afd-prod-waf"
export LOG_WORKSPACE="law-afd-security"

az account show --output table

本文假设你已经有Azure Front Door Standard/Premium配置。若还没有,先完成Profile、Endpoint、Origin Group和Route配置。

三、创建WAF策略

bash 复制代码
az network front-door waf-policy create \
  --resource-group "$RESOURCE_GROUP" \
  --name "$WAF_POLICY" \
  --sku Premium_AzureFrontDoor \
  --mode Detection \
  --enabled-state Enabled

建议先用Detection模式观察日志。确认误报可控后再改为Prevention:

bash 复制代码
az network front-door waf-policy update \
  --resource-group "$RESOURCE_GROUP" \
  --name "$WAF_POLICY" \
  --mode Prevention

四、启用托管规则

托管规则适合挡常见攻击类型,例如SQL注入、XSS、协议异常等。上线时不要一次性把所有规则都强拦截,先观察业务接口日志。

bash 复制代码
az network front-door waf-policy managed-rules add \
  --policy-name "$WAF_POLICY" \
  --resource-group "$RESOURCE_GROUP" \
  --type Microsoft_DefaultRuleSet \
  --version 2.1

查看策略:

bash 复制代码
az network front-door waf-policy show \
  --resource-group "$RESOURCE_GROUP" \
  --name "$WAF_POLICY" \
  --query "{mode:policySettings.mode, managedRules:managedRules.managedRuleSets[].ruleSetType}"

五、添加API限速规则

Microsoft文档说明,Azure Front Door WAF自定义规则包括Match规则和Rate limit规则;Rate limit规则可按源IP等条件控制请求速率。下面示例对/api/路径按IP限速:

bash 复制代码
az network front-door waf-policy rule create \
  --resource-group "$RESOURCE_GROUP" \
  --policy-name "$WAF_POLICY" \
  --name RateLimitApiPerIP \
  --priority 100 \
  --rule-type RateLimitRule \
  --action Block \
  --rate-limit-duration 1 \
  --rate-limit-threshold 120 \
  --match-variable RequestUri \
  --operator BeginsWith \
  --match-value /api/

阈值不能照抄。先看一周访问日志,确认正常用户、公司出口NAT、移动网络共享IP的峰值,再设置阈值。

六、关联Front Door策略

WAF策略必须关联到Front Door安全策略或域名路径,才会生效。不同Front Door版本CLI命令略有差异,生产环境建议在门户中确认关联对象。

检查Front Door配置:

bash 复制代码
az afd profile show \
  --resource-group "$RESOURCE_GROUP" \
  --profile-name "$PROFILE_NAME" \
  --query "{name:name,sku:sku.name}"

门户检查路径:

Azure Front Door and CDN profiles → 目标Profile → Security policies → 确认WAF policy已绑定到对应域名和路径。

七、开启诊断日志

Microsoft文档提醒,Azure Front Door的访问日志、健康探测日志和WAF日志默认不启用,需要配置诊断设置。

bash 复制代码
AFD_ID=$(az afd profile show \
  --resource-group "$RESOURCE_GROUP" \
  --profile-name "$PROFILE_NAME" \
  --query id -o tsv)

WORKSPACE_ID=$(az monitor log-analytics workspace show \
  --resource-group "$RESOURCE_GROUP" \
  --workspace-name "$LOG_WORKSPACE" \
  --query id -o tsv)

az monitor diagnostic-settings create \
  --name afd-diagnostics \
  --resource "$AFD_ID" \
  --workspace "$WORKSPACE_ID" \
  --logs '[{"category":"FrontDoorAccessLog","enabled":true},{"category":"FrontDoorWebApplicationFirewallLog","enabled":true},{"category":"FrontDoorHealthProbeLog","enabled":true}]'

八、用KQL验证

查询WAF命中:

kusto 复制代码
AzureDiagnostics
| where Category == "FrontDoorWebApplicationFirewallLog"
| project TimeGenerated, action_s, ruleName_s, clientIP_s, requestUri_s
| order by TimeGenerated desc

查询被Block请求:

kusto 复制代码
AzureDiagnostics
| where Category == "FrontDoorWebApplicationFirewallLog"
| where action_s =~ "Block"
| summarize count() by ruleName_s, bin(TimeGenerated, 10m)

查询访问日志中的状态码:

kusto 复制代码
AzureDiagnostics
| where Category == "FrontDoorAccessLog"
| summarize count() by httpStatusCode_d, bin(TimeGenerated, 10m)

九、验收清单

验收项 方法 标准
WAF策略 waf-policy show Enabled
托管规则 managed-rules 有规则集
限速规则 custom rule 优先级和阈值正确
关联关系 Portal Security policies 绑定目标域名
WAF日志 KQL 有命中记录
访问日志 KQL 有状态码和路径

十、常见坑

第一,策略创建了但没关联到Front Door域名或路径。

第二,直接Prevention导致误伤。先Detection观察。

第三,限速阈值过低,误伤共享出口IP。

第四,只开WAF不开日志,无法复盘。

第五,把WAF当成应用鉴权,忽略代码层权限控制。

结语

Azure Front Door WAF适合给跨地区网站和API建立边缘防护。小团队先做托管规则、API限速、诊断日志和KQL验证,就能把"开了WAF"变成可验证、可复盘的安全能力。

如需国际云服务器合规开户流程咨询、Azure Front Door与WAF部署、实例选型、安全加固和运维支持,可通过平台私信说明业务地区、访问量、接口类型和预算上限。客户本人完成实名、验证码、支付和合同确认;本文不含返佣链接,不承诺百分百防护或固定节省比例。

官方资料

  1. Azure Front Door WAF overview:https://learn.microsoft.com/en-us/azure/frontdoor/web-application-firewall
  2. Azure Front Door WAF custom rules:https://learn.microsoft.com/en-us/azure/web-application-firewall/afds/waf-front-door-custom-rules
  3. Configure WAF rate-limit rule:https://learn.microsoft.com/en-us/azure/web-application-firewall/afds/waf-front-door-rate-limit-configure
  4. Azure Front Door WAF monitoring and logging:https://learn.microsoft.com/en-us/azure/web-application-firewall/afds/waf-front-door-monitor
  5. Configure Azure Front Door logs:https://learn.microsoft.com/en-us/azure/frontdoor/standard-premium/how-to-logs
相关推荐
林小卫很行2 小时前
WorkBuddy 入门2:下载、安装、认识主界面
人工智能·云计算·腾讯云·知识管理·obsidian
忘路之远近i3 小时前
受够阿里云自带终端后,我用 Cursor + grill-me 做了个运维面板
服务器·开发语言·人工智能·python·阿里云·云计算
国科安芯3 小时前
还是4位?ASC8T245S 与 ASC4T245S 的双向电平转换选型实战
单片机·嵌入式硬件·物联网·fpga开发·机器人·云计算
人工智能研究所4 小时前
ResearchStudio-Reel: 学术论文到海报、视频、博客的“最后一公里“
人工智能·microsoft·音视频·博客·ppt·学术论文·ai创作
白猫不黑4 小时前
Web 应用中“敏感信息泄露“的常见位置?
前端·网络·web安全·网络安全·信息安全·渗透测试
海盗12345 小时前
微软技术日报 — 2026-07-28
microsoft
电手5 小时前
微软用AI修复622个漏洞,Win 11七月更新又翻车了
人工智能·microsoft
云栖梦泽在21 小时前
稳如狗网络工具箱:IP、DNS、WebRTC、测速、连通性和全球延迟检测工具简明介绍
网络·网络协议·tcp/ip·网络安全·性能优化·webrtc
全云在线allcloudonline1 天前
江苏阿里云代理商怎么选?现有服务点、南京节点与项目交付
阿里云·云计算·企业上云