【问题标题】:Istio authorization - Pattern matching in Istio 'paths' fieldIstio 授权 - Istio 'paths' 字段中的模式匹配
【发布时间】:2021-03-04 20:28:07
【问题描述】:

我想在 Istio 授权中创建规则:

            - to:
                - operation:
                    methods: [ "POST" ]
                    paths: [ "/data/api/v1/departments/*/users/*/position" ]
              when:
                - key: request.auth.claims[resource_access][roles]
                  values: [ "edit" ]

所以我想在这里使用路径变量(在带有'*' 的地方)。我应该放什么而不是 '*' 才能使其正常工作? 它在当前设置中不起作用。

我得到'RBAC denied',我有一个角色'edit',并且该角色的路径是好的。它适用于没有'*' 标志的端点

【问题讨论】:

    标签: istio


    【解决方案1】:

    将此答案发布为社区 wiki,因为类似问题已在此处得到解答:

    部分问题:

           - operation:
               methods: ["PUT"]
               paths: ["/my-service/docs/*/activate/*"]  
    

    答案:

    根据 istio documentation:

    规则

    规则匹配来自执行列表的源列表的请求 操作受限于一系列条件。匹配发生在 至少一个源、操作和条件与请求匹配。一个 始终匹配空规则。

    规则中的任何字符串字段都支持 Exact、Prefix、Suffix 和 存在匹配:

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

    所以授权策略确实支持通配符,但我认为问题出在*/activate/* 路径上,因为路径只能在开头、结尾或整个字符串中使用通配符,双通配符不起作用。

    有相关的开放 github 问题:

    【讨论】:

      猜你喜欢
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2021-09-03
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      相关资源
      最近更新 更多