Istio で社内 CONNECT プロキシの TCP ホップを登録する
サイドカーモードの外部プロキシ用 ServiceEntry パターンをプロキシリスナーに使い、アプリのプロキシ選択と宛先の認可は分けたままにします。
すでに社内 CONNECT プロキシを選択しているワークロードでは、サイドカーはそのリスナーへの接続を認識します。最初のホップのルートを TCP として、ドキュメント化されたサイドカー外部プロキシパターンで登録します。
apiVersion: networking.istio.io/v1
kind: ServiceEntry
metadata:
name: corporate-forward-proxy
spec:
hosts:
- proxy.corp.example
addresses:
- 203.0.113.10/32
ports:
- number: 3128
name: tcp-proxy
protocol: TCP
location: MESH_EXTERNAL
resolution: NONEIP とポートを実際のプロキシエンドポイントに置き換えます。この例はアドレスで TCP を照合します。hosts はトンネル内の暗号化された Web サイトを選択しません。
アプリには引き続き、対応するプロキシ設定が必要です。たとえば互換クライアントなら HTTPS_PROXY=http://203.0.113.10:3128 です。ServiceEntry は未設定のアプリにプロキシリクエストを送らせるものではありません。
後でトンネルする各 Web サイトではなく、このプロキシルートを登録します。フォワードプロキシが次の接続を開き、アカウントと要求された宛先が許可されるかを判断します。最初の TCP ホップに対するメッシュの許可は、そのプロキシ認可もアプリへのルート選択指示も提供しません。