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
相关推荐
数据知道3 小时前
网络安全实战:子域名接管实战——从 CNAME 配置错误到完全控制
网络·安全·web安全·网络安全
TunerT_TQ4 小时前
Microsoft 微软 Fluent UI 源码静态评测:从工程结构、测试线索到交付治理的完整解读
microsoft·开源·github
TunerT_TQ5 小时前
Microsoft 微软 AI-For-Beginners 静态评测:一套 AI 入门课程,为什么不能只按代码仓库来评价?
microsoft·开源·github
行业研究员6 小时前
腾讯云ADP:智能体平台封神榜
人工智能·microsoft·腾讯云·智能体·智能体平台·腾讯云adp
Aision_6 小时前
代码安全学习手记(二):SCA 软件成分分析原理与 OWASP Dependency-Check 集成实战
运维·人工智能·学习·安全·web安全·网络安全
艺杯羹7 小时前
古典密码学攻防演进全景:从凯撒移位、频率分析到一次一密与恩尼格玛机破译
网络·人工智能·安全·网络安全·密码学·密码安全
菩提小狗7 小时前
每日安全情报报告 · 2026-08-17
网络安全·漏洞·cve·安全情报·每日安全
菜是原罪7 小时前
ECS CPU 100% 故障排查与安全事件复盘报告
运维·服务器·网络安全
juesdo8 小时前
vulnos OS-00118靶场通关
linux·web安全·网络安全·docker
数据知道9 小时前
网络安全实战:渗透测试全流程 SOP——从授权到报告交付
服务器·网络·安全·web安全·网络安全