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

如何在OPA的Rego中使用正则匹配路径,优化Pod挂载准入控制?

用正则匹配简化OPA NFS路径准入规则

原来的规则通过枚举允许路径限制Pod的NFS挂载,每次新增/ifs/public/rw下的路径都要修改规则,现在可以用OPA的re_match函数实现正则匹配,同时保留指定的只读路径允许项,修改后的规则如下:

package kubernetes.admission

deny[msg] {
  input.request.kind.kind == "Pod"
  path := input.request.object.spec.volumes[_].nfs.path
  # 允许两种路径:以/ifs/public/rw开头的所有路径,或指定的只读路径
  not (re_match("^/ifs/public/rw/.+$", path) || path == "/ifs/public/ro/webdevel")
  msg := sprintf("volume '%v' path not allowed to be mounted", [path])
}

关键说明:

  • re_match("^/ifs/public/rw/.+$", path):匹配所有以/ifs/public/rw/开头的子路径;如果需要允许/ifs/public/rw本身,可将正则调整为^/ifs/public/rw(/.*)?$
  • path == "/ifs/public/ro/webdevel":保留原规则中指定的只读路径允许项
  • 用not包裹两个允许条件的或运算,只有当路径既不匹配rw前缀、也不是指定的ro路径时,才会触发拒绝规则

后续新增/ifs/public/rw下的子路径时,无需修改规则,正则会自动匹配所有符合前缀的路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:03:17