レイヤー4セキュリティポリシーの使用
Istio のセキュリティポリシー5のレイヤー 4 (L4) 機能は、ztunnelによってサポートされており、
アンビエントモードで利用できます。Kubernetes ネットワークポリシー6も、クラスターにCNIプラグインがサポートされていれば引き続き機能し、多層防御を提供するために使用できます。ztunnel とウェイポイントプロキシの階層構造により、特定のワークロードに対してレイヤー 7 (L7) 処理を有効にするかどうかを選択できます。L7 ポリシーと Istio のトラフィックルーティング機能を使用するには、ワークロード用に
ウェイポイントをデプロイ7できます。ポリシーが 2 つの場所で適用できるようになったため、理解する必要がある考慮事項があります。ztunnelを使用したポリシーの適用
ztunnel プロキシは、ワークロードがセキュアオーバーレイモードに登録されている場合、承認ポリシーの適用を実行できます。適用ポイントは、接続のパスにある受信側(サーバー側)の ztunnel プロキシです。
基本的な L4 承認ポリシーは次のようになります
このポリシーは、サイドカーモードとアンビエントモードの両方で使用できます。
Istio の AuthorizationPolicy
API の L4 (TCP) 機能は、アンビエントモードでもサイドカーモードと同じ機能動作をします。承認ポリシーがプロビジョニングされていない場合、デフォルトのアクションは ALLOW
です。ポリシーがプロビジョニングされると、ポリシーの対象となる Pod は、明示的に許可されたトラフィックのみを許可します。上記の例では、ラベル app: httpbin
が付いた Pod は、cluster.local/ns/ambient-demo/sa/curl
の ID プリンシパルを持つソースからのトラフィックのみを許可します。他のすべてのソースからのトラフィックは拒否されます。
ポリシーのターゲット設定
サイドカーモードとアンビエントの L4 ポリシーは、同じ方法でターゲット設定されます。つまり、ポリシーオブジェクトが存在する名前空間と、spec
のオプションの selector
によってスコープが設定されます。ポリシーが Istio のルート名前空間(従来は istio-system
)にある場合、すべての名前空間をターゲットにします。他の名前空間にある場合は、その名前空間のみをターゲットにします。
アンビエントモードの L7 ポリシーは、Kubernetes Gateway APIで構成されたウェイポイントによって適用されます。それらは、
targetRef
フィールドを使用してアタッチされます。許可されるポリシー属性
承認ポリシールールには、ソース (from
)、オペレーション (to
)、および条件 (when
) 句を含めることができます。
属性のこのリストは、ポリシーが L4 のみと見なされるかどうかを決定します
タイプ | 属性 | 肯定一致 | 否定一致 |
---|---|---|---|
ソース | ピア ID | principals | notPrincipals |
ソース | 名前空間 | namespaces | notNamespaces |
ソース | IP ブロック | ipBlocks | notIpBlocks |
オペレーション | 宛先ポート | ports | notPorts |
条件 | ソース IP | source.ip | 該当なし |
条件 | ソース名前空間 | source.namespace | 該当なし |
条件 | ソース ID | source.principal | 該当なし |
条件 | リモート IP | destination.ip | 該当なし |
条件 | リモートポート | destination.port | 該当なし |
レイヤー7条件付きポリシー
ztunnel は L7 ポリシーを適用できません。L7 属性(つまり、上記の表にリストされていない属性)と一致するルールを持つポリシーが、受信側の ztunnel によって適用されるようにターゲット設定されている場合、DENY
ポリシーとしてフェイルセーフになります。
この例では、HTTP GET メソッドのチェックを追加します
クライアント Pod の ID が正しい場合でも、L7 属性が存在すると、ztunnel は接続を拒否します
ウェイポイント導入時の適用ポイントの選択
ウェイポイントプロキシがワークロードに追加されると、L4 ポリシーを適用できる場所が 2 つになります。(L7 ポリシーは、ウェイポイントプロキシでのみ適用できます。)
セキュアオーバーレイのみを使用すると、トラフィックはソースワークロードの ID を持つ宛先 ztunnel に表示されます。
ウェイポイントプロキシは、ソースワークロードの ID を偽装しません。トラフィックパスにウェイポイントを導入すると、宛先 ztunnel はソース ID ではなく、ウェイポイントの ID を持つトラフィックを表示します。
これは、ウェイポイントがインストールされている場合、**ポリシーを適用する理想的な場所が移行する**ことを意味します。L4 属性に対してのみポリシーを適用したい場合でも、ソース ID に依存している場合は、ポリシーをウェイポイントプロキシにアタッチする必要があります。2 つ目のポリシーは、ワークロードをターゲットにして、「メッシュ内トラフィックは、アプリケーションに到達するためにウェイポイントから来る必要がある」などのポリシーを ztunnel に適用させることができます。
ピア認証
相互 TLS (mTLS) モードを構成する Istio のピア認証ポリシーは、ztunnel によってサポートされています。
アンビエントモードのデフォルトポリシーは PERMISSIVE
であり、Pod は mTLS で暗号化されたトラフィック(メッシュ内から)とプレーンテキストトラフィック(メッシュ外から)の両方を受け入れることができます。STRICT
モードを有効にすると、Pod は mTLS で暗号化されたトラフィックのみを受け入れるようになります。
ztunnel とHBONEは mTLS の使用を意味するため、ポリシーで
DISABLE
モードを使用することはできません。このようなポリシーは無視されます。