带有通配符的 Istio 授权策略

2023-11-24

授权策略不支持路径上的任何通配符模式吗?

我有以下端点:

/my-service/docs/active (GET)
/my-service/docs/<id>/activate/<bool> (PUT)

第一个将获取所有活动文档,第二个将激活/停用特定文档。 我尝试将其设置在授权策略上,但由于 willdcard 的原因,它似乎忽略了此策略。

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: my-service-private
  namespace: default
spec:
  action: DENY
  selector:
    matchLabels:
      app:my-service
  rules:
    - from:
        - source:
            notNamespaces: [ "default" ]
      to:
        - operation:
            methods: ["GET"]
            paths: ["/my-service/docs/active"]
        - operation:
            methods: ["PUT"]
            paths: ["/my-service/docs/*/activate/*"]  

除了更新我的所有端点之外,还有什么不同的解决方案吗?

10x


正如我在评论中提到的

根据 istio文档:

Rule

规则匹配来自执行列表的源列表的请求 操作须遵守一系列条件。匹配发生在 至少有一个来源、操作和条件符合请求。一个 空规则始终匹配。

规则中的任何字符串字段都支持精确、前缀、后缀和 存在匹配:

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

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

有相关的开放 github 问题:

  • https://github.com/istio/istio/issues/16585
  • https://github.com/istio/istio/issues/25021
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有通配符的 Istio 授权策略 的相关文章

  • 如何以轻松的方式实现身份验证?

    我正在使用 python 在网络应用程序谷歌应用程序引擎上构建图片日记 用户可以注册并将照片发布到他们的日记中 另外 我正在尝试尽可能地遵循 REST 架构 Web 应用程序的身份验证方案基于以下形式 1 从前端发布用户名 密码2 认证成功
  • 无需登录的 Vimeo API AuthorizationUrl

    我正在使用 Vimeo API 在 Web 应用程序上下文中获取视频 我有一个简单的问题 我希望 P 可以使用 oAuth 协议并通过以下链接请求应用程序授权 https vimeo com oauth authorize oauth to
  • 通过 Istio 入口网关的 TLS 握手失败 (tlsMode=passthrough)

    从外部客户端到 Kubernetes 集群内服务器的 TLS 握手失败 这是关于理解原因 我已将 Istio 入口网关配置为通过端口 15433 上收到的 TLS 并将其路由到端口 433 上的服务器 入口网关日志显示客户端尝试 TLS 握
  • 不支持的授权类型 Salesforce OAUTH2

    我正在使用 VBA 在 Salesforce 中获得授权 然后最终想要运行 Salesforce 报告并将结果转储到 Excel 中 我已编写以下内容来处理授权 但收到 unsupported grant type 错误 到目前为止我的代码
  • 数据库独立的行级安全解决方案

    有人知道 Java C 数据库独立授权库吗 该库应支持跨公司组织结构的读 写 删除 插入操作 像这样的东西 用户可以查看所有文档 用户可以输入分配给他的单位的新文档 用户可以更改分配给他的单位和所有下属单位的所有文档 用户可以删除分配给他的
  • Istio 入口网关:404 NRroute_not_found

    我想配置一个 Istio 入口网关 它根据 HTTP 路径的前缀将流量路由到不同的服务 例如 HTTP 流量路径 我的服务应路由至服务我的服务 到目前为止 我已经创建了以下 YAML 配置 apiVersion apps v1 kind D
  • Istio 直接 Pod 到 Pod 通信

    我在使用 Istio 部署的 Pod 与 Pod 进行通信时遇到问题 我实际上需要它与 Istio 合作进行 Hazelcast 发现 https github com hazelcast hazelcast kubernetes issu
  • 由于 istio-sidecar 注入,Kubernetes 部署失败

    我们的 K8 集群工作了一年多 最近它出现了一些奇怪的行为 现在当我们使用kubectl apply f deployment manifest yaml 它没有显示在kubectl get pods 但显示在kubectl get dep
  • ASP.NET MVC - 角色提供程序的替代方案?

    我试图避免使用角色提供程序和成员资格提供程序 因为在我看来它太笨拙了 因此我试图制作自己的 版本 它不那么笨拙并且更易于管理 灵活 现在我的问题是 除了角色提供者之外 还有其他不错的选择吗 我知道我可以自定义角色提供者 会员提供者等 通过更
  • Istio 允许所有出口流量

    如何允许 Istio 的所有出站流量 我尝试了以下方法 禁用出口网关并 使用 set global proxy includeIPRanges 0 0 0 0 0 0 0 0 0 0 绕过 sidecar 所有选项都不起作用 值得一提的是我
  • 无法使用 minikube 设置 Istio

    我按照 Istio 的官方文档为带有 minikube 的示例 bookinfo 应用程序设置了 Istio 但我得到了无法连接到服务器 net http TLS 握手超时错误 这些是我遵循的步骤 我安装了 kubectl 和 miniku
  • 将策略应用到资源控制器

    我有一个CRUD资源定义通过Route resource User UserController 既然可以生成CRUDGates and Policies 有没有办法应用这样的Gate Policy 以便将相应的Gate Policy应用于
  • Android:GoogleIdTokenVerifier.Builder 中的 Transport 和 jsonFactory 是什么?

    在下面的代码中 什么是transport and jsonFactory 我不明白 https developers google com identity sign in android backend auth using a goog
  • ASP.NET Web 应用程序中的身份验证遇到问题

    我正在尝试对从登录页面登录我的 Web 应用程序的用户进行身份验证 我正在使用本教程 http support microsoft com kb 301240作为指南 它几乎准确地解释了我希望做什么 但是当我输入用户名和密码时 验证不起作用
  • ASP.NET MVC:从变量设置授权属性角色时出现问题,需要 const

    我在从变量设置授权属性角色值时遇到问题 错误消息表明它需要一个 const 变量 当我创建 const 类型变量时 它工作正常 但我试图从 Web Config 文件或其他允许最终用户设置它的文件中加载值 我正在使用集成 Windows 身
  • 将授权放在服务层而不是Web API层

    我正在使用 NET Core Web API 构建 REST API 我的控制器只是将请求转发到服务层并返回结果 HttpPost nameof Create public async Task
  • Istio:RequestAuthentication jwksUri 无法解析内部服务名称

    Notice 其根本原因与Istio 当我启用 JWT RequestAuthentication 时 运行状况检查 sidecar 失败 https stackoverflow com questions 66446178 istio h
  • HttpURLConnection.getResponseCode() 冻结执行/不会超时

    我正在编写一个 Android 应用程序 它连接到受密码保护的 cPanel 服务器 Apache 2 2 22 页面 当身份验证凭据正确时 我的连接没有问题 但是 当凭据不正确时 我的 Android 应用程序似乎会冻结在HttpURLC
  • Mongoose 模型 update() 与 save()

    有一个关于问题update vs save https stackoverflow com questions 39010045 mongoose update vs save 但它针对的是一些不同的东西 我猜 纯粹相关mongoose S
  • 使用 Apache HTTPd 模块的 OAuth 2.0 身份验证

    是否可以使用 Apache HTTPd 服务器模块来实现 OAuth 2 0 或 1 0 我选择这条路线是因为每个请求都会首先到达 HTTPd 模块 因此我必须从那里进行身份验证 如果可能的话 请分享相关链接 我要补充一下尤金尼奥的答案mo

随机推荐