我是 istio 的新手,对配置请求身份验证策略有疑问。该策略使用一个 jwksuri,它是一个外部 URI。该策略应用于 istio-system 命名空间。当我应用此策略并执行
>istioctl proxy-status
应用该策略的入口网关 LDS 被标记为过时。如果我删除此策略,网关将返回 SYNCED 状态。由于我们位于公司代理后面,因此似乎无法访问此 jwksuri。我创建了服务条目来访问像这样的外部 jwks uri
kubectl apply -f - <<EOF
apiVersion:
networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: jwksexternal
spec:
hosts:
-
authorization.company.com
ports:
- number: 443
name: https
protocol: HTTPS
resolution: DNS
location: MESH_EXTERNAL
EOF
还尝试参考此文档https://istio.io/latest/docs/tasks/traffic-management/egress/http-proxy/创建另一个服务条目“配置到外部代理的流量”
但这不起作用。我应该如何在 Istio 中配置公司代理。
编辑这是 istiod 中的日志(请注意https://authorization.company.com/jwk是外部 url)
2021-06-02T14:35:39.423938Z error model Failed to fetch public key from "https://authorization.company.com/jwk": Get "https://authorization.company.com/jwk": dial tcp: lookup authorization.company.com on 10.X.0.X:53: no such host
2021-06-02T14:35:39.423987Z error Failed to fetch jwt public key from "https://authorization.company.com/jwk": Get "https://authorization.company.com/jwk": dial tcp: lookup authorization.company.com on 10.X.0.X:53: no such host
2021-06-02T14:35:39.424917Z info ads LDS: PUSH for node:istio-ingressgateway-5b69b5448c-8wbt4.istio-system resources:1 size:4.5kB
2021-06-02T14:35:39.433976Z warn ads ADS:LDS: ACK ERROR router~10.X.48.X~istio-ingressgateway-5b69b5448c-8wbt4.istio-system~istio-system.svc.cluster.local-105 Internal:Error adding/updating listener(s) 0.0.0.0_8443: Provider 'origins-0' in jwt_authn config has invalid local jwks: Jwks RSA [n] or [e] field is missing or has a parse error
无法找到解决此问题的方法。截至目前,将 jwks 嵌入到 jwt 规则中。但这有一个问题,每当公钥密钥被轮换时。jwt 规则失败。这是一个代理问题,但不确定如何绕过