Я новичок в 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 терпят неудачу. Это проблема прокси, но не знаю, как обойти