8.2. ネットワークグラフを使用したネットワークポリシーの生成およびシミュレート


8.2.1. ネットワークグラフからのポリシーの生成について

Kubernetes ネットワークポリシーは、受信ネットワークトラフィックを受信する Pod と、送信トラフィックを送信する Pod を制御します。ネットワークポリシーを使用して Pod へのトラフィックを有効にし、無効にすることで、ネットワークの攻撃エリアを制限できます。

これらのネットワークポリシーは YAML 設定ファイルです。通常、ネットワークフローに関するインサイトを得て、手動でこれらのファイルを作成するのは困難です。RHACS を使用して、これらのファイルを生成できます。ネットワークポリシーを自動的に生成する場合、RHACS は次のガイドラインに従います。

  • RHACS は、namespace 内のデプロイメントごとに単一のネットワークポリシーを生成します。ポリシーの Pod セレクターは、デプロイメントの Pod セレクターです。

    • デプロイメントにすでにネットワークポリシーがある場合、RHACS は新しいポリシーを生成したり、既存のポリシーを削除したりしません。

      生成されたポリシーは、トラフィックを既存のデプロイメントに制限するだけです。

    • 後で作成するデプロイメントには、新しいネットワークポリシーを作成または生成しないかぎり、制限はありません。
    • 新しいデプロイメントでネットワークポリシーを使用してデプロイメントに接続する必要がある場合は、ネットワークポリシーを編集してアクセスを許可する必要があります。
  • 各ポリシーにはデプロイメント名と同じ名前が付けられ、その後に stackrox-generated- が付けられます。たとえば、生成されたネットワークポリシーのデプロイメント depABC のポリシー名は stackrox-generated-depABC です。生成されたすべてのポリシーには、識別ラベルもあります。
  • RHACS は、次の条件のいずれかが満たされる場合に、任意の IP アドレスからのトラフィックを許可する単一のルールを生成します。

    • デプロイメントに、選択した時間内にクラスターの外部からの受信接続がある場合
    • デプロイメントがノードポートまたはロードバランサーサービスを通じて公開される場合
  • RHACS は、受信接続が存在するデプロイメントごとに 1 つの ingress ルールを生成します。

    • デプロイメントが同じ namespace にある場合には、このルールは他のデプロイメントの Pod セレクターラベルを使用します。
    • デプロイメントが異なる namespace にある場合には、このルールは namespace セレクターを使用します。これを可能にするために、RHACS はラベル namespace.metadata.stackrox.io/name を各 namespace に自動的に追加します。
重要

スタンドアロン Pod にラベルがない場合には、生成されたポリシーは Pod の全体的な namespace からのトラフィックを許可します。

8.2.2. ネットワークグラフでのネットワークポリシーの生成

RHACS を使用すると、環境内で実際に監視されたネットワーク通信フローに基づいてネットワークポリシーを自動的に生成できます。

ネットワークグラフで選択したクラスター、namespace、デプロイメントに基づいてポリシーを生成できます。ポリシーは、現在の Network Graph スコープに含まれるすべてのデプロイメントに対して生成されます。たとえば、現在のスコープには、クラスター全体、クラスターと namespace、選択した namespace にある個別に選別したデプロイメントが含まれます。また、クラスター、namespace、およびデプロイメントの選択を任意に組み合わせて、Filter deployments フィールドのフィルターの 1 つを適用して、スコープをさらに縮小することもできます。たとえば、特定の CVE の影響を受ける特定のクラスターおよび namespace 内のデプロイメントに範囲を絞り込むことができます。ポリシーは、ベースライン検出期間中に確認されたトラフィックから生成されます。

  1. RHACS ポータルで、Network Graph に移動します。
  2. クラスターを選択し、1 つ以上の namespace を選択します。
  3. オプション: 個別のデプロイメントを選択して、生成されるポリシーを対象のデプロイメントのみに制限します。フィルターデプロイメント 機能を使用して、スコープをさらに絞り込むこともできます。
  4. ネットワークグラフのヘッダーで、Network policy generator を選択します。
  5. オプション: 開いた情報パネルで、Exclude ports & protocols を選択して、ベースラインからネットワークポリシーを生成するときにポート/プロトコルの制限を削除します。

    例として、nginx3 デプロイメントは nginx4 へのポート 80 接続を作成し、これは nginx4 のベースラインの一部として含まれています。ポリシーが生成され、このチェックボックスが選択されていない場合 (デフォルトの動作)、生成されたポリシーは、nginx3 から nginx4 への接続で許可するポートを 80 のみに制限します。このオプションを選択してポリシーが生成された場合、生成されたポリシーは nginx3 から nginx4 までの接続内の全ポートを許可します。

  6. Generate and simulate network policies をクリックします。RHACS は、選択したスコープのポリシーを生成します。このスコープは、Generate network policies パネルの上部に表示されます。

    注記

    スコープのデプロイメント情報をクリックすると、含まれるデプロイメントのリストが表示されます。

  7. オプション: 生成されたネットワークポリシー設定 YAML ファイルをクリップボードにコピーするか、パネルのダウンロードアイコンをクリックしてダウンロードします。
  8. オプション: 生成されたネットワークポリシーを既存のネットワークポリシーと比較するには、Compare をクリックします。既存のネットワークポリシーと生成されたネットワークポリシーの YAML ファイルは、サイドバイサイドビューで表示されます。

    注記

    既存の ingress ポリシーが含まれる namespace や、stackroxacs などの特定の保護された namespace でのデプロイメントなど、一部の項目には生成されたポリシーがありません。

  9. オプション: Actions メニューをクリックして、次のアクティビティーを実行します。

    • YAML ファイルを通知機能と共有する: YAML ファイルを、設定したシステム通知機能の 1 つ (Slack、ServiceNow、汎用 Webhook を使用するアプリケーションなど) に送信します。これらの通知機能は、Platform Configuration Integrations に移動して設定します。詳細は、関連情報セクションのドキュメントを参照してください。
    • アクティブなトラフィックからルールを再構築する: 表示される生成されたポリシーを更新します。
    • ルールを以前に適用した YAML に戻す: シミュレートされたポリシーを削除し、最後のネットワークポリシーに戻します。

8.2.3. 生成されたポリシーのネットワークグラフでの保存

生成されたネットワークポリシーを RHACS からダウンロードして保存できます。このオプションを使用してポリシーをダウンロードし、Git などのバージョン管理システムにポリシーをコミットできるようにします。

手順

  • ネットワークポリシーを生成した後、Network Policy Simulator パネルで Download YAML アイコンをクリックします。

8.2.4. 生成されたポリシーのネットワークグラフでのテスト

RHACS が生成するネットワークポリシーをダウンロードした後、CLI または自動デプロイメント手順を使用してクラスターにポリシーを適用してテストできます。生成されたネットワークポリシーをネットワークグラフに直接適用することはできません。

手順

  1. 保存した YAML ファイルを使用してポリシーを作成するには、次のコマンドを実行します。

    $ oc create -f "<generated_file>.yml" 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。
  2. 生成されたポリシーで問題が発生する場合は、以下のコマンドを実行してそのポリシーを削除できます。

    $ oc delete -f "<generated_file>.yml" 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。
警告

ネットワークポリシーを直接適用すると、アプリケーションの実行で問題が発生する可能性があります。実稼働環境のワークロードに適用する前に、常に開発環境またはテストクラスターでネットワークポリシーをダウンロードし、テストします。

8.2.5. ネットワークグラフで以前に適用されたポリシーに戻す

ポリシーを削除して、以前に適用したポリシーに戻すことができます。

手順

  1. RHACS ポータルで、Network Graph に移動します。
  2. 上部のバーのメニューからクラスター名を選択します。
  3. 1 つ以上の namespace とデプロイメントを選択します。
  4. Simulate network policy を選択します。
  5. View active YAMLS を選択します。
  6. Actions メニューから、Revert rules to previously applied YAML を選択します。

    警告

    ネットワークポリシーを直接適用すると、アプリケーションの実行で問題が発生する可能性があります。実稼働環境のワークロードに適用する前に、常に開発環境またはテストクラスターでネットワークポリシーをダウンロードし、テストします。

8.2.6. ネットワークグラフで自動生成されたすべてのポリシーの削除

RHACS を使用して作成したクラスターから、自動生成されたポリシーをすべて削除できます。

手順

  • 以下のコマンドを実行します。

    $ oc get ns -o jsonpath='{.items[*].metadata.name}' | \
    xargs -n 1 oc delete networkpolicies -l \
    'network-policy-generator.stackrox.io/generated=true' -n 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。

8.2.7. ネットワークグラフからのネットワークポリシーのシミュレーション

現在のネットワークポリシーでは、不要なネットワーク通信が許可される可能性があります。ネットワークポリシージェネレーターを使用して、一連のデプロイメントに対して計算されたベースラインへの ingress トラフィックを制限するネットワークポリシーを作成できます。

注記

ネットワークグラフには、生成されたポリシーが視覚化されて表示されません。生成されるポリシーは ingress トラフィックのみを対象とし、egress トラフィックを制限するポリシーは生成されません。

手順

  1. RHACS ポータルで、Network Graph に移動します。
  2. クラスターを選択し、1 つ以上の namespace を選択します。
  3. ネットワークグラフのヘッダーで、Network policy generator を選択します。
  4. オプション: シミュレーションで使用するネットワークポリシーを含む YAML ファイルを生成するには、Generate and simulate network policies をクリックします。詳細については、「ネットワークグラフでのネットワークポリシーの生成」を参照してください。
  5. シミュレーションで使用するネットワークポリシーの YAML ファイルをアップロードします。ネットワークグラフビューには、提案されたネットワークポリシーが何を達成するかが表示されます。以下の手順を実行します。

    1. Upload YAML をクリックし、ファイルを選択します。
    2. 開く をクリックします。システムは、アップロードされたポリシーの処理ステータスを示すメッセージを表示します。
  6. 現在のネットワークポリシーに対応するアクティブな YAML ファイルを表示するには、View active YAMLS タブをクリックし、ドロップダウンリストからポリシーを選択します。次のアクションを実行することもできます。

    • 適切なボタンをクリックして、表示された YAML ファイルをコピーまたはダウンロードします。
    • Actions メニューを使用して、アクティブなトラフィックからルールを再構築するか、以前に適用された YAML にルールを戻します。詳細については、「ネットワークグラフでのネットワークポリシーの生成」を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.