第6章 ネットワークポリシーの管理

Kubernetes ネットワークポリシー は、Pod のグループを相互およびその他のネットワークエンドポイントと通信できるようにする仕様です。これらのネットワークポリシーは YAML ファイルとして設定されます。これらのファイルだけを見ると、適用されたネットワークポリシーが目的のネットワークトポロジーを実現しているかどうかを特定するのが難しいことがよくあります。

Red Hat Advanced Cluster Security for Kubernetes は、オーケストレーターから定義されたネットワークポリシーをすべて収集し、これらのポリシーを簡単に使用できるようにする機能を提供します。

ネットワークポリシーの適用をサポートするために、Red Hat Advanced Cluster Security for Kubernetes は以下を提供します。

  • ネットワークグラフ
  • ネットワークポリシーシミュレーター
  • ネットワークポリシージェネレーター

6.1. ネットワークグラフビュー

ネットワークグラフは、以下の可視性と制御を提供します。

  • Kubernetes ネットワークポリシーで定義済みの、許可されるネットワーク接続。
  • namespace とデプロイメント間でアクティブな通信パス。

メニューバーで、情報を表示するクラスターと 1 つ以上の namespace を選択します。

Network Graph ビューでは、表示する接続の種類を設定できます。Flows セクション (左上) で、以下を選択します。

  • Active: アクティブな接続のみを表示する。
  • Allowed: 許可されるネットワーク接続のみを表示する。
  • All: アクティブおよび許可されるネットワーク接続の両方を表示する。

ネットワークグラフでは、各円はデプロイメントを、周りのボックスは Kubernetes namespace を、それぞれの太い線は namespace 間の接続を表します。これらの項目にカーソルを合わせて詳細を表示できます。デプロイメントまたは namespace などの項目をクリックすると、追加情報を表示するウィンドウが開きます。ウィンドウを展開したり折りたたんだりするには、青いバーの矢印を選択します。

ネットワークグラフの他のシンボルの意味を理解するには、凡例 (左下) の他のシンボルにマウスを移動して、これらのシンボルの意味を示すヒントを表示します。

以下にカーソルを合わせると、各種情報が表示されます。

  • コネクション: アクティブな接続、ポート番号、およびプロトコルが含まれるネットワークフローに関する情報が表示されます。
  • デプロイメント: Ingress および egress 接続、プロトコル、使用中のポート番号、およびデプロイメント間のネットワークトラフィックの方向に関する情報が表示されます。
注記

受信トラフィックの Ingress および egress 接続、プロトコル、ポート番号、および方向を確認するには、Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.47 以降が必要です。

許可されるネットワーク接続

Red Hat Advanced Cluster Security for Kubernetes は、セキュリティーが保護された各クラスターの全ネットワークポリシーを処理し、どのデプロイメントが相互に通信できるか、またどのデプロイメントが外部ネットワークに到達できる化を表示します。

ネットワークグラフは、可能なネットワーク接続を点線として表示します。

実際のネットワークフロー

Red Hat Advanced Cluster Security for Kubernetes は実行中のデプロイメントを監視し、それらの間のトラフィックを追跡します。ネットワークグラフは、確認されるネットワークフローを実線として表示します。

ネットワークベースライン

Red Hat Advanced Cluster Security for Kubernetes は既存のネットワークフローを検出し、ベースラインを作成します。

デプロイメントのネットワークベースラインを表示するには、Network Graph ビューでそのデプロイメントを選択します。ネットワークフローの詳細パネル には、異常なフローとベースラインフローの両方が表示されます。このパネルから、以下を行うことができます。

  • Mark as Anomalous を選択して、ベースラインからネットワークフローを異常なものとしてマーク付けします。
  • Add to Baseline を選択して、異常なフローからネットワークフローをベースラインに追加します。
注記

ネットワークベースライン 機能を使用するには、Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.54 以降を使用する必要があります。

外部エンティティーおよび接続

Network Graph ビューには、マネージドクラスターと外部ソース間のネットワーク接続に関する情報が表示されます。Red Hat Advanced Cluster Security for Kubernetes は、Google Cloud、AWS、Azure、Oracle Cloud、Cloudflare などのパブリック CIDR (Classless Inter-Domain Routing) アドレスブロックを自動的に検出して強調表示します。この情報を使用して、アクティブな外部接続があるデプロイメントを特定し、ネットワークの外部から不正な接続を確立または受信しているかどうかを識別できます。

注記

アクティブな外部接続に関する情報は、Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.52 以降が必要です。

デフォルトでは、外部接続は共通の外部 エンティティーボックス と、Network Graph ビューで異なる CIDR アドレスブロックを参照します。ただし、自動検出した CIDR ブロックを表示しないように選択できます。

Red Hat Advanced Cluster Security for Kubernetes には、以下のクラウドプロバイダーの IP 範囲が含まれます。

  • Google Cloud
  • AWS
  • Azure
  • Oracle Cloud
  • Cloudflare

Red Hat Advanced Cluster Security for Kubernetes は、7 日ごとにクラウドプロバイダーの IP 範囲を取得して更新します。オフラインモードを使用している場合は、新しいサポートパッケージをインストールしてこれらの範囲を更新できます。

6.1.1. ネットワークポリシーの表示

ネットワークポリシーでは、Pod のグループ間および他のネットワークのエンドポイントとの間で許可される通信を指定します。Kubernetes NetworkPolicy リソースはラベルを使用して Pod を選択し、選択した Pod との間で許可されるトラフィックを指定するルールを定義します。Red Hat Advanced Cluster Security for Kubernetes は、Network Graph ビューですべての Kubernetes クラスター、namespace、デプロイメント、および Pod のネットワークポリシー情報を検出し、表示します。

namespace 内のデプロイメントのネットワークポリシーおよびその他の関連情報を表示するには、Network Graph ビューで namespace を選択します。

namespace 詳細パネルには、選択した namespace のすべてのデプロイメントが一覧表示されます。次に、詳細パネルでデプロイメントにカーソルを合わせ、右側に表示される Navigate to deployment (矢印) アイコンを選択してデプロイメントの詳細を表示できます。

または、Network Graph ビューでデプロイメントを直接選択し、その詳細を表示できます。デプロイメントの詳細パネルには、Network Flows タブ、Details タブ、および Network Policies タブが含まれます。

各タブを選択して、関連情報を表示できます。

  • Network Flows タブには、そのデプロイメントに使用する Ingress および egress 接続、プロトコル、およびポート番号に関する情報が表示されます。
  • Details タブには、オーケストレーターのラベルやアノテーションなど、サービスのデプロイ方法に関する情報が表示されます。
  • Network Policies タブには、デプロイメントに適用されるすべてのネットワークポリシーに関する情報が表示されます。
注記

受信トラフィックの Ingress および egress 接続、プロトコル、ポート番号、および方向を確認するには、Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.47 以降が必要です。

6.1.2. CIDR ブロックの設定

カスタムの CIDR ブロックを指定するか、または Network Graph ビューで自動検出された CIDR ブロックの表示を設定できます。

手順

  1. Network Graph ビューで、Configure CIDR Blocks を選択します。
  2. Display auto-discovered CIDR blocks in Network Graph をオフにして、自動検出された CIDR ブロックを非表示にします。

    注記

    自動検出された CIDR ブロックを非表示にすると、Network Graph ビューの上部バーで選択されたクラスターだけでなく、すべてのクラスターで自動検出された CIDR ブロックが非表示になります。

  3. CIDR Block NameCIDR Address を追加して、カスタム CIDR アドレスを追加します。複数のを追加するには、Add アイコンを選択します。
  4. 設定の更新 をクリックして変更を保存します。