You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GCP Cloud Armor中拒绝主域名并允许指定Web服务?

GCP Cloud Armor规则配置指导:拒绝主域名访问并允许指定接口

现有配置的问题

  • 路径匹配格式错误:request.path仅匹配URL的路径部分(如/或/v1/teststudio/developer),不能包含完整域名和协议,现有规则中request.path.matches('https://mma.mydomain.com/')写法无效。
  • 路径拼写不一致:规则中使用/v1/devstudio/developer,但实际需要允许的路径是/v1/teststudio/developer(devstudio应为teststudio)。
  • 未限制HTTP请求方法:现有规则未指定允许的HTTP方法,会导致该路径下所有方法都被允许,不符合需求中仅开放POST/GET/PATCH等特定方法的要求。
  • 路径匹配与描述不符:规则32的匹配路径是/v1/devstudio/developer,但描述是允许/v1/teststudio/developer/app,路径不匹配。

正确规则配置示例

Cloud Armor规则按优先级数字从小到大执行(数字越小优先级越高),需先配置允许特定路径+方法的规则,最后配置拒绝所有其他请求的规则(包括根路径/)。以下是符合需求的规则:

# 允许 /v1/teststudio/developer 的 POST/GET/PATCH 请求
Allow      request.path.matches('/v1/teststudio/developer') && (request.method.matches('POST') || request.method.matches('GET') || request.method.matches('PATCH'))     Allow specified methods for /v1/teststudio/developer      10

# 允许 /v1/teststudio/developer/app 的 POST/GET 请求
Allow      request.path.matches('/v1/teststudio/developer/app') && (request.method.matches('POST') || request.method.matches('GET'))     Allow specified methods for /v1/teststudio/developer/app      20

# 拒绝所有其他请求(包括访问根路径 / 的请求)
Deny       true     Deny all other requests (including root domain)      30

规则说明

  1. 优先级顺序:允许规则的优先级(10、20)高于拒绝规则(30),确保符合条件的请求先被允许,不符合的再被拒绝。
  2. 路径匹配:使用正确的路径部分(不含域名和协议),确保与目标接口路径一致。
  3. 方法限制:通过&&和||组合条件,仅开放需求中指定的HTTP方法。
  4. 最终拒绝规则:使用true匹配所有未被前序规则允许的请求,包括直接访问根路径https://mma.mydomain.com/的请求。

内容的提问来源于stack exchange,提问作者Kaushal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 02:40:18