ISTIO授权策略对通配符规则的支持

时间:2020-08-13 17:45:35

标签: istio

我正在尝试实施ISTIO授权策略,如果要求中的值与特定字符串的任何部分匹配,则我要求允许请求。

示例:规则看起来像这样:

rules:
  - to:
    - operation:
        methods: ["GET"]
        hosts: ["sample.com"]
    when:
    - key: request.auth.claims[TEST_STRING]
      values: ["SUBSTR" , "*SUBSTR" , "*SUBSTR*" , "SUBSTR*"]

如果值'SUBSTR'在声明中包含前缀或后缀,则一切正常,但是,如果字符串SUBSTR位于中间,则声明条件失败。 如果值中间包含substr,是否有解决方案允许请求? 声明包含字符串xyxSUBSTRpqr未能匹配规则。

1 个答案:

答案 0 :(得分:0)

不幸的是,您没有要使用的带有前缀和后缀的条件模板。

根据istio documentation

规则

规则匹配来自执行以下操作的列表的来源列表的请求 操作需符合条件列表。比赛发生在 至少一个来源,操作和条件与请求匹配。一个 空规则总是匹配的。

规则中的任何字符串字段都支持精确,前缀,后缀和 在线状态匹配:

  • 完全匹配:“ abc”将与值“ abc”匹配。
  • 前缀匹配:“ abc *”将匹配值“ abc”和“ abcd”。
  • 后缀匹配:“ * abc”将匹配值“ abc”和“ xabc”。
  • 存在匹配:当值不为空时,“ *”将匹配。