Antrea コンテナ クラスタ内のポッド間のトラフィックを保護するには、NSX に分散ファイアウォール ポリシー(セキュリティ ポリシー)を作成し、1 つ以上の Antrea コンテナ クラスタに適用します。

前提条件

Antrea コンテナ クラスタが NSX に登録されている。

手順

  1. ブラウザから、NSX Manager (https://nsx-manager-ip-address) にログインします。
  2. [セキュリティ] タブをクリックし、[ポリシー管理][分散ファイアウォール] をクリックします。
    [カテゴリ固有のルール] ページが表示されます。
    注: ブラウザで NSX Manager アプリケーションを起動すると、登録済みの Antrea コンテナ クラスタに関する情報が NSX Manager ユーザー インターフェイスに取得されます。アプリケーションのユーザー インターフェイスがすでに開いている場合、 Antrea コンテナ クラスタの登録情報は自動的に取得されません。この動作は、現在のユーザー インターフェイスのデザインで想定されている動作です。 NSX Manager アプリケーションを開いた後に最初の Antrea コンテナ クラスタを登録した場合は、 [カテゴリ固有のルール] ページに移動した後にブラウザを更新してください。手動で更新すると、この操作の手順 4 で、ユーザー インターフェイスに Antrea 固有のユーザー インターフェイス要素が表示されます。

    ブラウザの手動更新は 1 回だけ必要になります。新しい Antrea コンテナ クラスタが NSX に登録されるたびに行う必要はありません。

  3. セキュリティ ポリシーを作成するカテゴリを選択します。
    現在 Antrea コンテナ クラスタでは、MAC アドレスに基づくレイヤー 2(イーサネット)ファイアウォール ルールはサポートされていません。 NSX のカテゴリは、 Antrea の階層に対応します。セキュリティ ポリシーは、次の優先順位の降順で Antrea コンテナ クラスタに適用されます。
    • 緊急カテゴリ(最も高い優先順位)
    • インフラストラクチャ カテゴリ
    • 環境カテゴリ
    • アプリケーション カテゴリ(最も低い優先順位)

    カテゴリ内では、ファイアウォール ルールはルールの設定順序に従って上から順番に処理されます。カテゴリは、ルールの整理に使用できます。たとえば、複数のユーザー ロール(個人設定)が存在する場合、互いのポリシーをオーバーライドしたり、競合することなく、セキュリティ ポリシーを作成できます。たとえば、セキュリティ管理者は、特定の隔離ルールまたは許可ルールに緊急カテゴリのポリシーを作成できます。アプリケーション開発者は、アプリケーション カテゴリにポリシーを作成し、アプリケーション内の特定のポッド間のトラフィックを保護できます。ネットワーク管理者は、インフラストラクチャ カテゴリのポリシーを作成して、DHCP、DNS、Active Directory などの共有サービスのアクセス ルールを定義できます。

  4. [ポリシーの追加] をクリックして、ポリシーの構成設定を指定します。
    1. ポリシーの一意の名前を入力します。
    2. デフォルトでは、ポリシーは分散ファイアウォールに適用されます。[適用先] の横にある編集アイコンをクリックします。
      [適用先の設定] ページが開きます。
    3. [Antrea コンテナ クラスタ] オプションを選択します。
    4. (必須) 少なくとも 1 つの Antrea コンテナ クラスタを選択して、セキュリティ ポリシーの範囲または適用スコープを決定します。
      ポリシーの範囲は、単一の Antrea コンテナ クラスタにすることも、複数のコンテナ クラスタにすることもできます。
    5. (オプション) ポリシーの範囲を制限するには、Antrea グループを選択します。
      ポリシーの [適用先]Antrea グループを選択すると、この構成がポリシー内のすべてのルールに使用されます。ポリシー内のルールごとに異なる Antrea グループのセットを指定するには、この手順をスキップし、ポリシーにルールを追加するときに [適用先] を指定します。
      注: NSX は、IP アドレスから有効なポッド メンバーを計算できません。ポリシーの [適用先] には、IP アドレスを持つ Antrea グループは使用しないでください。
    6. (オプション) 右端にある歯車のアイコンをクリックして、ポリシーの詳細設定を指定します。
      Antrea コンテナ クラスタに適用されるセキュリティ ポリシーの場合、 [TCP Strict][ステートフル] の設定はグレーアウトされます。これらの設定は現在サポートされていません。

      サポートされる設定は、[ロック済み][コメント] のみです。デフォルトでは、ポリシーはロックされません。複数のユーザーがポリシーを変更できないようにするには、[ロック済み] オプションをオンにします。

    7. [公開] をクリックします。
      複数のポリシーを追加してから、それらをすべて一緒に公開できます。

      ポリシーの状態が「進行中」に変わり、Antrea コンテナ クラスタで正常に認識されると、「成功」に変わります。何らかの理由でポリシーの認識に失敗した場合は、失敗状態をクリックします。ポップアップ ウィンドウにエラーが表示されます。

  5. ポリシー名の横にあるチェック ボックスを選択し、[ルールを追加] をクリックします。ルール名を入力します。
    デフォルトでは、ルールの [送信元][宛先][サービス][適用先] の各列に「 任意」が表示されます。
    注: 現在、 Antrea コンテナ クラスタに適用されるルールで、コンテキスト プロファイルを使用することはできません。
  6. ルールの設定を指定します。
    1. [送信元] または [宛先] 列で編集アイコンをクリックし、1 つ以上の Antrea グループを選択します。
      ルールの送信元と宛先の指定には、次の制約が適用されます。
      • 選択できるのは Antrea グループだけです。NSX メンバーを持つグループはルールで使用できません。つまり、1 つのルールに Antrea グループと [汎用] タイプのグループ、[IP アドレスのみ] を混在させることはできません。
      • [送信元] 列でグループを選択すると、[宛先] 列は使用できません。宛先は、ルールの [適用先] に追加できます。
      • [宛先] 列でグループを選択すると、[送信元] 列は使用できません。送信元は、ルールの [適用先] に追加できます。

      ルールで [送信元][適用先] を設定すると、[送信元] から [適用先] へのトラフィックがフィルタリングされます。ルールで [宛先][適用先] を設定すると、[適用先] から [宛先] へのトラフィックがフィルタリングされます。Antrea データ パスでは、[適用先] のグループ メンバーにフィルタリングが実行されます。

    2. (オプション) [サービス] 列で編集アイコンをクリックして、サービスを選択します。
      サービスを選択しないと、「任意」が使用されます。

      サービスの指定には、次の制約が適用されます。

      • サポートされているサービスは TCP と UDP だけです。他のサービスはサポートされていません。
      • Raw ポートとプロトコルの組み合わせでサポートされるサービス タイプ TCP と UDP のみです。
      • サポートされているのは、宛先ポートだけです。送信元ポートはサポートされていません。
    3. [適用先] 列で編集アイコンをクリックし、ルールを適用する Antrea グループを選択します。

      グループを選択しないと、「任意」が使用されます。

      注:
      • NSX は、IP アドレスから有効なポッド メンバーを計算できません。ルールの [適用先] には、IP アドレスを持つ Antrea グループは使用しないでください。
      • ポリシーとルールの両方の [適用先]Antrea グループを指定すると、ポリシーの [適用先] のグループが、ルールの [適用先] のグループよりも優先されます。
    4. [アクション] ドロップダウン メニューから、いずれかのオプションを選択します。
      オプション 説明
      許可

      指定された送信元、宛先、プロトコルを持つすべての L3 トラフィックに、現在のファイアウォール コンテキストを通過することを許可します。ルールに一致し、承認されたパケットは、ファイアウォールが存在しないかのようにコンテナ クラスタ ネットワーク内を移動します。

      ドロップ

      指定されたソース、ターゲット、およびプロトコルを持つパケットをドロップします。パケットのドロップは情報が表示されず、送信元のシステムまたは宛先への通知なしで実行されます。パケットをドロップすると、再試行のしきい値に到達するまで、接続が再試行されます。

      却下

      指定されたソース、ターゲット、およびプロトコルを持つパケットを却下します。パケットの却下は、送信者に対して宛先に到達できないというメッセージを送信するので、パケットを拒否する方法としてはより適切です。プロトコルが TCP の場合、TCP RST メッセージが送信されます。UDP、ICMP およびその他の IP 接続では、管理上禁止されたコードが含まれる ICMP メッセージが送信されます。却下アクションのメリットの 1 つは、一度接続を試行するのみで、接続を確立できないことが、送信側のアプリケーションに通知されることです。

    5. 切り替えボタンをクリックし、ルールを有効または無効にします。
      デフォルトでは、ルールは有効になっています。
    6. (オプション) 歯車アイコンをクリックして、他のルールの設定を構成します。
      ルールの設定 説明
      ログの記録 デフォルトでは、ログはオフになっています。ファイアウォール ログは、Antrea Agent ログに含まれています。Antrea コンテナ クラスタのサポート バンドル要求を作成するときに、クラスタからノードを選択すると、そのノードの Antrea Agent ログがサポート バンドルに含まれます。
      方向

      宛先ポッドから見たトラフィックの方向を示します。

      次の場合、ルールの方向は読み取り専用になり、編集できません。
      • ルールで送信元が指定されている場合、方向は受信になります。
      • ルールで宛先が指定されている場合、方向は送信になります。

      送信元と宛先が「任意」に設定されている場合、ルールの方向は編集可能です。この場合、デフォルトの方向は受信/送信です。ただし、方向を受信または送信に変更できます。

      コメント

      必要に応じて、ルールに関するメモを入力します。

      これらのコメントは、Antrea コンテナ クラスタに伝達されません。したがって、ルールのコメントは、Antrea クラスタ ネットワーク ポリシー の仕様で注釈として表示されません。

  7. [公開] をクリックして、ルールを Antrea コンテナ クラスタにプッシュします。
    複数のルールを追加してから、それらをすべて一緒に公開できます。
    注: Antrea コンテナ クラスタでセキュリティ ポリシーが認識された後、ポリシーの [適用先] は編集できません。つまり、 NSX では、セキュリティ ポリシーの範囲を [Antrea コンテナ クラスタ] から [DFW] または [グループ] に変更することはできません。

結果

Antrea コンテナ クラスタで、次の処理が行われます。
  • Antrea ネットワーク プラグインが、Antrea コンテナ クラスタに適用される各分散ファイアウォール ポリシーに対応するクラスタ ネットワーク ポリシーを作成します。
  • ルールに送信元が含まれている場合は、対応する入力方向ルールが Antrea クラスタ ネットワーク ポリシー に作成されます。
  • ルールに宛先が含まれている場合は、対応する出力方向ルールが Antrea クラスタ ネットワーク ポリシー に作成されます。
  • ルールに Any-Any 構成が含まれている場合、クラスタ内の Antrea Controller が、Any-Any ルールを 2 つのルールに分割します。1 つは、Any-Any を含む入力方向ルール、もう 1 つは Any-Any を含む出力方向ルールです。
注: Antrea ネットワーク プラグインを使用すると、 kubectl コマンド ラインから Antrea クラスタ ネットワーク ポリシーの更新または削除を行うことができなくなります。このような操作は避ける必要があります。これは、セキュリティ ポリシーが NSX によって管理されるためです。 Antrea コンテナ クラスタ内の 中央制御プレーン アダプタ は、 kubectl コマンド ラインから行われたポリシーの変更をすぐに上書きします。つまり、 NSX によりポリシーの信頼性が保証されます。これらのクラスタ ネットワーク ポリシーに kubectl コマンド ラインから行った変更は NSX Manager に表示されません。

次のタスク

Antrea コンテナ クラスタでセキュリティ ポリシーが正常に認識されたら、次のオプションのタスクを実行できます。

  • Antrea クラスタ ネットワーク ポリシーがコンテナ クラスタに表示されていることを確認します。各 Antrea コンテナ クラスタで、次の kubectl コマンドを実行します。
    $ kubectl get acnp
    注: Antrea クラスタ ネットワーク ポリシーの priority パラメータに、浮動小数が表示されます。これは通常の結果です。 NSX Manager ユーザー インターフェイスに、分散ファイアウォール ポリシーの優先順位は表示されません。 NSX は、内部で各ポリシーの優先順位に整数値を割り当てます。この整数値は、大きな範囲から割り当てられます。ただし、 Antrea ネットワーク プラグインは、ク Antrea ラスタ ネットワーク ポリシーの優先順位に小さな浮動小数(絶対値)を割り当てます。したがって、 NSX の優先順位の値は、内部で小さな浮動小数に正規化されます。ただし、分散ファイアウォール カテゴリにポリシーを追加する順序は、 Antrea クラスタ ネットワーク ポリシーに保持されます。

    NSX インベントリで、Antrea クラスタ ネットワーク ポリシーの詳細を表示することもできます。NSX Manager で、[インベントリ] > [コンテナ] > [クラスタ] の順に移動します。クラスタ名を展開し、[クラスタ ネットワーク ポリシー] の横にある数字をクリックして、YAML 仕様などのポリシーの詳細を表示します。

  • NSX API を使用して、ポリシー統計情報を表示します。
    GET https://{nsx-mgr-ip}/api/v1/infra/domains{domain-id}/security-policies/{security-policy-name}/statistics?container_cluster_path=/infra/sites/{site-id}/enforcement-points/{enforcement-point-id}/cluster-control-planes/{cluster-name}
  • ユーザー インターフェイスでランタイム ルールの統計情報を表示します。
    1. NSX Manager で、[セキュリティ] > [分散ファイアウォール] の順に移動します。
    2. ポリシー名を展開して、各ルールの右上隅にあるグラフ アイコンをクリックします。
    3. ドロップダウン メニューからコンテナ クラスタを選択して、各コンテナ クラスタのルール統計情報を表示します。

      ルールの統計情報は、ルールが適用されるコンテナ クラスタごとに個別に計算されます。統計情報は、すべてのコンテナ クラスタについて集計されず、ユーザー インターフェイスに表示されます。ルールの統計情報は 1 分ごとに計算されます。