Справочная информация:
Был похожий вопрос: Здесь , но он не предложил решение моей проблемы.
У меня естьразвернул приложение, которое работает, как ожидается, на моем кластере Istio.Я хотел включить аутентификацию JWT, поэтому адаптировал инструкции Here к моему сценарию использования.
ingressgateway:
Сначала я применил следующую политику к istio-ingressgateway.Это сработало, и любой трафик, отправленный без токена JWT, был заблокирован.
kubectl apply -n istio-system -f mypolicy.yaml
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
name: core-api-policy
namespace: istio-system
spec:
targets:
- name: istio-ingressgateway
ports:
- number: 80
origins:
- jwt:
issuer: "https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_pa9vj7sbL"
jwksUri: "https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_pa9vj7sbL/.well-known/jwks.json"
principalBinding: USE_ORIGIN
Как только это сработало, я удалил эту политику и установил новую политику для своей службы.
kubectl delete -n istio-system -f mypolicy.yaml
service / core-api-service:
После редактирования вышеуказанной политики, изменив пространство имен и цель, как показано ниже, я повторно применил политику к правильному пространству имен.
Policy:
kubectl apply -n solarmori -f mypolicy.yaml
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
name: core-api-policy
namespace: solarmori
spec:
targets:
- name: core-api-service
ports:
- number: 80
origins:
- jwt:
issuer: "https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_pa9vj7sbL"
jwksUri: "https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_pa9vj7sbL/.well-known/jwks.json"
principalBinding: USE_ORIGIN
Служба:
apiVersion: v1
kind: Service
metadata:
name: core-api-service
spec:
type: LoadBalancer
ports:
- port: 80
name: api-svc-port
targetPort: api-app-port
selector:
app: core-api-app
Результат этого действия не изменился при обработке трафика.Я все еще был в состоянии обратиться к своему сервису, хотя я не предоставлял JWT.
Я проверил istio-прокси моего развертывания сервиса, и в журналах не было создано local_jwks
, как описано Здесь .
[procyclinsur@P-428 istio]$ kubectl logs -n solarmori core-api-app-5dd9666777-qhf5v -c istio-proxy | grep local_jwks
[procyclinsur@P-428 istio]$
Если кто-нибудь знает, где я иду не так, я был бы очень признателен за любую помощь.