如何通过Cloud Armor为Google Cloud全球外部应用负载均衡器配置IP黑名单?
基于Cloud Armor实现大规模恶意IP黑名单拦截(搭配Global External ALB与Cloud Run)
核心思路
利用Cloud Armor安全策略结合IP地址组批量管理恶意IP,将策略关联到Global External Application Load Balancer,在流量到达Cloud Run实例前完成拦截。
步骤1:创建IP地址组(批量管理恶意IP)
把收集到的10000+恶意IP整理成文本文件(比如malicious_ips.txt),每行一个IP或CIDR网段。IP地址组支持动态更新IP列表,无需频繁修改Cloud Armor规则:
# 创建全局IP地址组 gcloud compute ip-address-groups create malicious-ips-group \ --global \ --ip-version IPV4 \ --addresses file://malicious_ips.txt
步骤2:创建Cloud Armor安全策略并关联IP组
创建安全策略,添加拦截规则引用上述IP地址组,直接拒绝恶意IP的请求:
# 创建安全策略 gcloud compute security-policies create ip-blacklist-policy \ --description "Block malicious IPs accessing price API" # 添加拦截规则(优先级100,确保先于其他允许规则匹配) gcloud compute security-policies rules create 100 \ --security-policy ip-blacklist-policy \ --action deny-403 \ --src-ip-ranges malicious-ips-group \ --description "Block all IPs in malicious IP group"
步骤3:将安全策略关联到Global External ALB
将安全策略绑定到负载均衡器关联的后端服务(即包含Cloud Run Serverless NEG的后端服务),确保所有进入ALB的流量先经过Cloud Armor检查:
# 更新后端服务,关联安全策略 gcloud compute backend-services update YOUR_SERVERLESS_BACKEND_NAME \ --security-policy ip-blacklist-policy \ --global
替换YOUR_SERVERLESS_BACKEND_NAME为你的实际后端服务名称
步骤4:动态更新恶意IP列表
当有新的恶意IP需要添加时,直接更新IP地址组即可,无需修改Cloud Armor规则:
# 更新IP地址组的IP列表(覆盖现有条目) gcloud compute ip-address-groups update malicious-ips-group \ --global \ --update-addresses file://updated_malicious_ips.txt # 若需追加新IP,改用以下命令 gcloud compute ip-address-groups update malicious-ips-group \ --global \ --add-addresses file://new_ips.txt
关键注意事项
- 规则优先级:Cloud Armor规则的优先级数字越小,执行顺序越靠前。确保黑名单规则的优先级(比如100)低于其他允许规则(比如200),保证恶意IP先被拦截。
- 配额限制:单个IP地址组最多支持10000个IP/CIDR条目,若超过可拆分多个组并在安全策略中添加多个规则。
- 日志验证:通过Cloud Logging查看Cloud Armor的拦截日志,确认规则生效情况,排查误拦截问题。
内容的提问来源于stack exchange,提问作者David Spiess
相关产品推荐
相关产品推荐

