我正在尝试实施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未能匹配规则。
答案 0 :(得分:0)
不幸的是,您没有要使用的带有前缀和后缀的条件模板。
根据istio documentation:
规则
规则匹配来自执行以下操作的列表的来源列表的请求 操作需符合条件列表。比赛发生在 至少一个来源,操作和条件与请求匹配。一个 空规则总是匹配的。
规则中的任何字符串字段都支持精确,前缀,后缀和 在线状态匹配:
- 完全匹配:“ abc”将与值“ abc”匹配。
- 前缀匹配:“ abc *”将匹配值“ abc”和“ abcd”。
- 后缀匹配:“ * abc”将匹配值“ abc”和“ xabc”。
- 存在匹配:当值不为空时,“ *”将匹配。