kubernetes AuthorizationPolicy配置问题:JWT身份验证在指定的命名空间内不起作用

pqwbnv8z  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(114)

我目前遇到了一个关于JWT身份验证的Istio AuthorizationPolicy配置的问题。我们的目标是为来自命名空间外部的流量启用JWT身份验证,同时允许命名空间内的请求在没有身份验证的情况下继续进行。
以下是相关配置:

- List item

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  annotations:
  name: auth-policy
  namespace: istio-system
spec:
  rules:
  - from:
    - source:
        requestPrincipals:
        - '*'
    - source:
        notNamespaces:
        - <namespace>
  selector:
    matchLabels:
      <key>: <value>

apiVersion: "security.istio.io/v1beta1"
kind: "RequestAuthentication"
metadata:
  name: jwt
  namespace: istio-system
spec:
  selector:
    matchLabels:
      <key>: <value>
  jwtRules:
  - issuer: "<issuer>"
    jwksUri: "<jwksUri>"
    fromHeaders:
    - name: x-jwt-assertion
      prefix: "Bearer "

字符串
我们遇到的问题是,尽管在AuthorizationPolicy中使用了notNamespaces字段,但指定名称空间中的请求也需要身份验证。我们期望名称空间内的请求可以免于身份验证。
如果任何人遇到类似的问题,或者了解正确的配置以实现我们所需的行为,我将非常感谢您的帮助。提前感谢您的帮助!
在Istio AuthorizationPolicy配置中,我们尝试使用以下规则实现JWT身份验证:
所有来自命名空间外部的流量都需要JWT身份验证。应允许指定命名空间内的请求,而无需进行任何身份验证。为此,我们在AuthorizationPolicy中使用notNamespaces字段来指定应该绕过身份验证的名称空间。
我们期望来自指定名称空间的请求不会触发JWT身份验证过程,并且可以在没有任何身份验证要求的情况下继续进行。
然而,尽管我们进行了配置,指定名称空间内的请求仍然受到JWT身份验证,这不是我们想要的行为。我们正在寻求帮助,以了解和解决这一问题。

kiayqfof

kiayqfof1#

您必须在from节中使用AND语义。您编写它的方式就好像有两个单独的具有OR语义的规则。
卸下-使其与:

- from:
    - source:
        requestPrincipals:
        - '*'
      source:
        notNamespaces:
        - <namespace>

字符串

相关问题