Terraform配置GCP CloudArmor时inIPRange操作符报错问题
Cloud Armor安全策略配置报错排查与修复
报错核心原因:你使用的
inIPRange并非Cloud Armor规则语言支持的函数,正确用于匹配源IP的函数是ipMatch()。Cloud Armor的规则表达式有专属函数集,因函数名称误用,导致系统提示"undeclared reference"(未声明的引用)错误。修正后的Terraform配置代码:
resource "google_compute_security_policy" "this" { name = "my-policy" rule { action = "allow" priority = 1 match { expr { expression = "request.headers['host'] == 'myhost' && ipMatch(origin.ip, 'X.X.X.X/32')" } } } // other rules }
- 补充说明:
ipMatch()函数需传入两个参数:第一个是待匹配的IP字段(此处origin.ip正确,代表请求的源IP地址),第二个是CIDR格式的IP范围字符串。- 你写的
request.headers['host']写法合规,Cloud Armor支持通过该方式获取请求头的具体值。
内容的提问来源于stack exchange,提问作者Héctor Valls
相关产品推荐
相关产品推荐

