Cloud Armor规则未生效,请求协助排查问题及错误查看方法
解决Cloud Armor未生效问题及配置自定义拦截规则
一、Cloud Armor未生效的排查与解决
- 排除计费因素:Cloud Armor基础层(含默认规则)免费可用,自定义规则属于付费功能,但即使未开通计费,基础规则仍能正常运行,所以你的问题大概率和计费无关,重点排查配置关联与规则设置。
- 确认策略与Load Balancer的关联:检查Load Balancer的配置,确保你创建的Cloud Armor安全策略已经绑定到对应的后端服务或URL映射上——如果只是创建了策略但未关联,请求不会经过Cloud Armor处理,自然不会有数据和拦截效果。
- 检查规则优先级与匹配逻辑:自定义拦截规则的优先级必须高于默认的“允许所有”规则(默认优先级为2147483647),否则会被默认规则覆盖。同时核对规则的匹配条件(如路径、参数)是否存在语法错误或逻辑偏差。
- 验证请求路由:确保测试请求是直接访问Load Balancer的公网IP/域名,而非App Engine的默认域名。如果直接访问App Engine,请求会绕过你配置的LB和Cloud Armor,导致规则不生效。
- 启用日志排查:开启Cloud Armor的日志记录,通过Cloud Logging查看请求是否命中策略,以及是否匹配到你的自定义规则,日志能直接定位问题根源。
二、配置拦截特定请求的自定义规则
要实现拦截携带'1'='1'参数、User-Agent为EvilBot且访问/路径的请求并返回403,按以下步骤设置:
- 进入Cloud Armor安全策略页面,新建自定义规则,设置优先级为高于默认规则(例如设为100)。
- 配置匹配条件(逻辑关系为AND):
- 路径匹配:选择
路径等于 '/' - 请求参数匹配:选择
请求查询字符串包含 "'1'='1'" - User-Agent匹配:选择
请求头User-Agent等于 "EvilBot"
- 路径匹配:选择
- 将规则动作设置为拒绝(403)
- 保存规则后,确认该策略已关联到你的Load Balancer,等待配置生效(通常几分钟内)。
内容的提问来源于stack exchange,提问作者Alessandra
相关产品推荐
相关产品推荐

