Cloud Armor:规则、放行与回退

验证:未记录
适用版本
未记录
验证范围
尚未登记验证记录。

给支持的 ALB 后端配置 WAF / 访问策略。

推荐做法#

  • 新规则先 preview,通过日志评估命中与误报后再 enforce。
  • 数字更小的 priority 先匹配,明确 default rule 行为。

Cloud Armor 只保护经过所绑定 ALB 后端的请求。 Cloud Run 还要限制 ingress,防止互联网绕过 ALB 直连 run.app;WAF 不代替应用登录。

常用操作#

替换为实际资源;本段不依赖 lab.env。

PROJECT_ID='REPLACE_PROJECT_ID'
POLICY='REPLACE_POLICY'

gcloud compute security-policies describe "$POLICY" --project="$PROJECT_ID"

容易踩的坑#

  • 403 也可能来自 IAP/IAM/应用,先查实际拒绝层和规则日志。
  • Backend bucket 只能关联 edge security policy;CDN cache hit 也经过 edge policy,而 backend security policy 只检查通过 edge 的 cache miss。不要把后者当作覆盖全部缓存请求。策略类型
配置说明与完整示例(按需展开)

对应 AWS WAF / Shield 的部分用途。前置:负载均衡的 lab-backend 和 LB_IP。仅测试自己的 lab-hello,需要 Compute Security Admin 和后端更新权限。

source lab.env
gcloud compute security-policies create lab-armor --description='Learning edge policy'
gcloud compute security-policies rules create 1000 --security-policy=lab-armor --expression="has(request.headers['x-lab-block']) && request.headers['x-lab-block'] == 'yes'" --action=deny-403 --preview
gcloud compute backend-services update lab-backend --global --security-policy=lab-armor --enable-logging --logging-sample-rate=1
curl -i -H 'X-Lab-Block: yes' "http://$LB_IP/"

preview 模式应放行;在 LB 日志检查 preview policy 的命中信息,然后启用拦截:

gcloud compute security-policies rules update 1000 --security-policy=lab-armor --no-preview
curl -i -H 'X-Lab-Block: yes' "http://$LB_IP/"
curl --fail "http://$LB_IP/"

验收:带测试 header 返回 403,普通请求返回 200;策略匹配按优先级,数字小的先匹配,默认规则应保持允许。安全策略

预配置 WAF 规则#

gcloud compute security-policies rules create 2000 --security-policy=lab-armor --expression="evaluatePreconfiguredWaf('sqli-v33-stable')" --action=deny-403 --preview
curl -i --get --data-urlencode "q=' OR 1=1 --" "http://$LB_IP/"

检查日志是否命中预期规则;未命中不代表整个 WAF 无效,需结合具体规则和请求形态判断。先调优误报,再转执行模式,不以一次测试宣称应用已安全。WAF 规则

Cloud Armor 不代替应用身份认证或业务授权。Cloud Run 应限制 ingress,避免绕过 LB。CDN 后端桶使用的 edge security policy 与此处 backend security policy 支持能力不同,不能把这段直接绑到后端桶。

清理#

gcloud compute backend-services update lab-backend --global --security-policy=''
gcloud compute security-policies delete lab-armor

Cloud Armor 策略/规则/请求按所用层级计费,实验不需要开启 Enterprise 订阅。

搜索文档

输入关键词,搜索所有文档。

↑ ↓ 选择 · Enter 打开 · Esc 关闭