ネームスペース境界の強制

ポリシー:ネームスペース境界の強制

デフォルトでは、異なるネームスペースのポッドは、異なるラベルを使用していても相互に通信できます。この動作を制限するには、追加のネットワークルールを作成する必要があります。

ネームスペース境界の強制は、ポッドの通信をネームスペースまたは自然なアプリケーションの境界に制限する簡単な方法を提供します。

ネームスペース境界の強制の仕組み

`NeuvectorNamespaceBoundary`ネームスペースラベルは、ポッド間の通信境界を強制します。有効にすると、NeuVectorはトラフィックを制限し、ポッドが同じネームスペース内または定義されたアプリケーションの境界内でのみ通信するようにします。

このアプローチは、カスタムグループや追加のネットワークポリシーの必要性を減らします。

ネームスペース境界の強制を有効または無効にする

ネームスペース境界の強制を制御するには、ネームスペースに`NeuvectorNamespaceBoundary`ラベルを適用します。

強制を有効にする

kubectl label namespace <namespace> NeuvectorNamespaceBoundary=enabled

強制を無効にする

kubectl label namespace <namespace> NeuvectorNamespaceBoundary=disabled

ラベルを削除する

ラベルを削除すると、ネームスペース境界の強制が無効になります。

kubectl label namespace <namespace> NeuvectorNamespaceBoundary-

例のシナリオ

この例は、ネームスペース境界の強制がインバウンドおよびアウトバウンドの制御をどのように簡素化するかを示しています。

使用環境

  • 二つのネームスペース: ns1ns2

  • ポッド:

    • ns1: pod1 (ラベル: app=app1, label=one), pod2 (ラベル: app=app2, label=two)

    • ns2: pod3 (ラベル: app=app1, label=three), pod4 (ラベル: app=app2, label=four)

  • グループ:

    • g1: app=app1 (pod1pod3 を含む)

    • g2: app=app2 (pod2pod4 を含む)

ネットワークポリシーは、g1 から g2 へのすべてのアプリケーションとポートでのトラフィックを許可します。

ネームスペース境界の強制なしの動作

グループベースのポリシーのみの場合:

  • pod1pod2 および pod4 と通信できます。

  • pod3pod2 および pod4 と通信できます。

同じネームスペースへの通信を制限するには、追加のグループを作成し、拒否ポリシーを設定する必要があります:

  • 個々のラベルに基づいてグループを作成します。

  • ネームスペースを越えたトラフィックをブロックするために拒否ルールを追加します。

これにより、ポリシーの複雑さとメンテナンスの手間が増加します。

ネームスペース境界の強制ありの動作

ネームスペース境界の強制が有効な場合:

  • pod1pod2 のみと通信できます。

  • pod3pod4 のみと通信できます。

  • ネームスペースを越えた通信は自動的にブロックされます。

追加のグループやネットワークポリシーは必要ありません。

ネームスペース境界の強制は、厳格なネームスペースレベルの隔離を強制しながら、ポリシー管理を簡素化します。