1

istio-system 名前空間に存在する 1 つの istio Gateway リソースがあります。複数のホストに JWT 認証を設定する必要がありますが、すべてのホストが JWT を使用しているわけではありません。Istio ドキュメントからマニフェストを適用しようとしています(ラベル app:httpbin を持つワークロードのすべてのリクエストに JWT が必要です)。

これが私のマニフェストです:

apiVersion: security.istio.io/v1beta1
kind: RequestAuthentication
metadata:
  name: "test-jwt"
spec:
  selector:
    matchLabels:
      app: "test-users"
  jwtRules:
  - issuer: https://test-keycloak.test.cloud/auth/realms/test
    jwksUri: https://test-keycloak.test.cloud/auth/realms/test/protocol/openid-connect/certs
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: "test-jwt"
spec:
  selector:
    matchLabels:
      app: "test-users"
  rules:
  - from:
    - source:
        requestPrincipals: ["*"]

app: test-usersラベルが付いたワークロード (ポッド、サービス) がありますが、機能していません。test-users アプリにリクエストを実行するとJwt is missing、トークンを渡さなくてもエラーが発生しません。セクションに偽物を入力してissuerjwtRules、リクエストは引き続き通過します。RequestAuthentication/ペアが istio-system 名前空間にデプロイされたドキュメントに記載されている他のアプローチを試しましたが、それはAuthorizationPolicy機能しましたが、他のすべての名前空間で JWT 認証を使用する必要があり、これは私が持つことができないものです。

4

0 に答える 0