【问题标题】:How to block multiple countries with one expression in google cloud armor?谷歌云盔甲如何用一种表达方式屏蔽多个国家?
【发布时间】:2020-12-29 15:34:23
【问题描述】:

我可以使用以下规则在谷歌云盔甲中阻止多个国家。

origin.region_code == "RU" || origin.region_code == "UA"

但它认为这条规则有 2 个表达式,所以我每条规则只能阻止 5 个国家/地区,并且必须添加其他规则来阻止其他国家/地区。

有没有一种方法(例如 in_origin_regioncode),我可以在一个表达式中提供我想要阻止的所有国家/地区的逗号分隔列表?

【问题讨论】:

    标签: google-cloud-platform google-cloud-armor


    【解决方案1】:

    我们发现了一个选项,您可以在云盔甲规则中使用 x.contains(y) 函数,如果子字符串 y 在字符串 x 中,该函数返回 true,因此您可以像这样使用 '[CN,KP,LT,UA,RU,AF,DZ,MM,CU,EG,GN,IR,IQ,LR,LY,NE,SL,SO,SS,SD,SY,UA,YE]'.contains(origin.region_code) 而不是 @987654323 @例如,它的工作原理!!!

    我希望我有所帮助 :)

    【讨论】:

      【解决方案2】:

      就我而言,我只想允许 ** CL REGION ** 流量,我在高级模式下创建了一个权限规则。来自其他地区的流量被阻止。

      origin.region_code == 'CL'
      

      【讨论】:

      • 在您的情况下,必须将默认规则设置为拒绝,对吗?另一种选择是将默认规则设置为允许并创建此规则 origin.region_code != 'CL'
      【解决方案3】:

      正如您正确指出的那样,并且正如 here 所记录的,当前自定义规则限制为 5。唯一可以规避此问题的解决方法是创建额外的自定义规则以实施额外的国家/地区限制。

      【讨论】:

      • 我认为这是对 Armor 的一大疏忽。相比之下,AWS WAF 允许在一个规则中放置多达 50 个国家/地区。
      猜你喜欢
      • 2021-01-09
      • 2019-03-29
      • 2022-01-22
      • 2021-06-18
      • 2022-09-30
      • 2020-11-23
      • 2021-05-12
      • 2021-10-20
      • 1970-01-01
      相关资源
      最近更新 更多