Istio Envoy Proxy перенаправляет информацию сертификата клиента - PullRequest
0 голосов
/ 24 августа 2018

У нас есть кластер Kubernetes с Istio 1.0 (с прокси Envoy) и некоторые другие вещи.Мы используем шлюз Istio для проверки клиентских сертификатов.Мы хотели бы передать субъект сертификата клиента внутренним службам.

Здесь в документации Envoy я нашел следующую опцию конфигурации: forward_client_cert, которая позволяет передавать тему среди другой информации в заголовкеx-forwarded-client-cert, хотя я не смог найти способ включить его в Istio.

Кто-нибудь пытался сделать что-то подобное и добился успеха?Или Istio это не поддерживает?

1 Ответ

0 голосов
/ 21 марта 2019

Это поздний ответ, но сведения о переадресации сертификата клиента поддерживаются в 1.1.0 выпуске .Это стандартное поведение шлюза https, однако вам необходимо включить взаимный TLS, чтобы это работало глобально.Для этого примените следующий MeshPolicy объект:

apiVersion: "authentication.istio.io/v1alpha1"
kind: "MeshPolicy"
metadata:
  name: "default"
spec:
  peers:
  - mtls: {}

После применения https-вызовов на вход перенаправит на сервер заголовок X-Forwarded-Client-Cert.

Однако имейте в видуесли глобальные mtls включены, сервисные вызовы в кластере также должны использовать tls.Это можно сделать, создав DestinationRule для каждой службы с режимом, установленным на ISTIO_MUTUAL (или MUTUAL, если вы хотите использовать собственные сертификаты клиента вместо сертификатов, сгенерированных Citadel):

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: myApp
  namespace: default
spec:
  host: myApp
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
...