Задний план:
Был аналогичный вопрос: Здесь, но он не предложил решение моей проблемы.
Я развернул приложение, которое работает должным образом в моем кластере Istio. Я хотел включить аутентификацию JWT, поэтому адаптировал инструкции Здесь к моему варианту использования.
входной шлюз:
Сначала я применил следующую политику к шлюзу 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
сервис/ядро-апи-сервис:
После редактирования вышеуказанной политики, изменения пространства имен и цели, как показано ниже, я повторно применил политику к правильному пространству имен.
Политика:
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]$
Если кто-нибудь знает, где я ошибаюсь, я был бы очень признателен за любую помощь.

Чтобы сервис стал частью сервисной сетки Istio, вам необходимо выполнить некоторые требования, указанные в официальном документе документы.
В вашем случае имя порта службы необходимо обновить до:
<protocol>[-<suffix>] с <protocol> как:
В этот момент запросы, перенаправленные в службу, будут проходить через сетку службы; В настоящее время запросы обрабатываются сетью Kubernetes.
вау... вы могли бы подумать, что примечание, чтобы проверить это, будет в разделе устранения неполадок... потратил 2 дня, пытаясь заставить это работать! Спасибо!!