運用

Red Hat Advanced Cluster Security for Kubernetes 3.71

Red Hat Advanced Cluster Security for Kubernetes の運用

Red Hat OpenShift Documentation Team

概要

本書では、ダッシュボードの使用、コンプライアンスの管理、セキュリティーリスクの評価、セキュリティーポリシーおよびネットワークポリシーの管理、イメージの脆弱性検査、違反への対応など、Red Hat Advanced Cluster Security for Kubernetes で一般的な操作タスクを実行する方法を説明します。

第1章 ダッシュボードの表示

Red Hat Advanced Cluster Security for Kubernetes (RHACS) ダッシュボードを使用すると、必要なデータに素早くアクセスできます。追加のナビゲーションショートカットと、簡単にフィルターリングおよびカスタマイズできるアクション可能なウィジェットのパネルが含まれているため、最も重要なデータに集中できます。環境内のリスクレベル、コンプライアンスステータス、ポリシー違反、一般的な脆弱性と露出 (CVE) に関する情報をイメージで表示できます。

注記

初めて RHACS ポータルを開くと、空のダッシュボードが表示される場合があります。Sensor を少なくとも 1 つのクラスターにデプロイすると、ダッシュボードに環境のステータスが反映されます。

以下のセクションでは、Dashboard コンポーネントについて説明します。

1.2. ダッシュボードフィルター

ダッシュボードには、すべてのウィジェットに同時に適用されるトップレベルフィルターが含まれるようになりました。1 つ以上のクラスター、および選択したクラスター内の 1 つ以上の名前空間を選択できます。クラスターまたは名前空間が選択されていない場合、ビューは自動的に All に切り替わります。フィルターへの変更はすべてのウィジェットで即座に反映され、データの表示は選択されたスコープに制限されます。ダッシュボードフィルターは Status Bar には影響しません。

1.3. ウィジェットのオプション

一部のウィジェットは、特定のデータにフォーカスできるようにカスタマイズ可能です。ウィジェットにはさまざまな制御があり、データのソート、データのフィルター、ウィジェットの出力のカスタマイズに使用できます。

ウィジェットでは、さまざまな側面をカスタマイズする 2 つの方法を使用できます。

  • Options メニュー (存在する場合) は、そのウィジェットに適用される特定のオプションを提供します。
  • dynamic axis legen (存在する場合) を使用すると、1 つ以上の軸カテゴリーを非表示にしてデータをフィルターリングできます。たとえば、Policy violations by category ウィジェットでは、重大度をクリックして、データから選択した重大度の違反を包含または除外できます。
注記

個々のウィジェットのカスタマイズ設定は有効期間が短く、ダッシュボードを離れるとシステムのデフォルトにリセットされます。

1.4. 操作可能なウィジェット

以下のセクションでは、ダッシュボードにある操作可能なウィジェットについて説明します。

1.4.1. 重大度別のポリシー違反

このウィジェットでは、ダッシュボードでフィルターリングされたスコープの重大度レベル全体における違反の分布が表示されます。チャートで severity level をクリックすると、その重大度およびスコープでフィルターリングされた Violations ページに移動します。また、ダッシュボードのフィルターで定義したスコープ内で、Critical レベルのポリシーに対する再審の違反 3 件が一覧表示されます。特定の違反をクリックすると、その違反の Violations 詳細ページに直接移動します。

1.4.2. 最もリスクの高いイメージ

このウィジェットでは、ダッシュボードでフィルター処理されたスコープ内の上位 6 つの脆弱なイメージが、計算されたリスクの優先度と、それらに含まれる重大および重要な CVE の数で並べ替えて一覧表示されます。イメージ名をクリックすると、Vulnerability ManagementImage Findings ページに直接移動します。Options メニューを使用して、修正可能な CVE に焦点を当てるか、アクティブなイメージにさらに焦点を当てます。

注記

ダッシュボードフィルターでクラスターまたは名前空間が選択されている場合、表示されるデータは、アクティブなイメージ、もしくはフィルターリングされたスコープ内のデプロイメントで使用されるイメージにフィルターリングされています。

1.4.3. 最もリスクのあるデプロイメント

このウィジェットは、環境内で危険にさらされている上位のデプロイメントに関する情報を提供します。リソースの場所 (クラスターと名前空間) やリスク優先度スコアなどの追加情報が表示されます。さらに、デプロイメントをクリックして、ポリシー違反や脆弱性などのデプロイメントに関するリスク情報を表示することもできます。

1.4.4. イメージの有効期限

古いイメージにはすでに対処されている脆弱性が含まれる可能性があるため、セキュリティーリスクが高くなります。古いイメージがアクティブであれば、デプロイメントが不正使用される可能性があります。このウィジェットを使用すると、セキュリティー体制を迅速に評価し、問題のあるイメージを特定することができます。デフォルトの範囲を使用するか、または独自の値で期間をカスタマイズできます。非アクティブなイメージとアクティブなイメージの両方を表示するか、ダッシュボードフィルターを使用してアクティブなイメージの特定領域に焦点を当てることができます。このウィジェットで有効期限グループをクリックすると、該当するイメージのみを Vulnerability ManagementImages ページに表示できます。

1.4.5. カテゴリー別のポリシー違反

このウィジェットは、どのタイプのポリシーの違反が他よりも多いかを分析することにより、組織が直面しているセキュリティーポリシーの準拠に関する課題についての洞察を得るのに役立ちます。ウィジェットには、関心の高い 5 つのポリシー カテゴリーが表示されます。データを切り取るさまざまな方法については、Options メニューを確認してください。データをフィルターリングして、デプロイまたはランタイム違反のみにフォーカスできます。

また、並べ替えモードを変更することもできます。デフォルトでは、データは重大度が最も高い違反の数で並べ替えられます。そのため、重要なポリシーを持つすべてのカテゴリーは、重要なポリシーを持たないカテゴリーの前に表示されます。他の並べ替えモードは、重大度に関係なく違反の合計数を考慮します。一部のカテゴリーには重要なポリシーが含まれていないため (Docker CIS など)、2 つの並べ替えモードは大幅に異なるビューを提供し、追加の洞察を提供します。

グラフの下部にある重大度レベルをクリックし、そのレベルをデータに含めるか、または除外します。異なる重大度レベルを選択すると、上位 5 つの選択またはランキング順序が異なる場合があります。データは、ダッシュボードフィルターで選択されたスコープにフィルターリングされます。

1.4.6. 標準によるコンプライアンス

標準ウィジェットによるコンプライアンス をダッシュボードフィルターと共に使用して、最も重要な領域に焦点を当てることができます。ウィジェットには、並べ替え順序に応じて、上位または下位 6 件のコンプライアンスベンチマークが一覧表示されます。オプション を選択して、カバレッジパーセンテージで並べ替えます。ベンチマークラベルまたはグラフのいずれかをクリックして、ダッシュボードスコープと選択したベンチマークでフィルターリングされた Compliance Controls ページに直接移動します。

注記

コンプライアンス ウィジェットは、コンプライアンススキャン を実行した後にのみ詳細を表示します。

第2章 コンプライアンスの管理

Red Hat Advanced Cluster Security for Kubernetes を使用すると、コンテナー化されたインフラストラクチャーのコンプライアンスステータスの評価、確認、報告が可能です。以下のような業界標準に基づいて、追加設定なしでコンプライアンススキャンを実行できます。

  • Docker および KubernetesCIS Benchmarks (インターネットセキュリティーセンター)
  • HIPAA (Health Insurance Portability and Accountability Act)
  • NIST Special Publication 800-190 および 800-53 (米国国立標準技術研究所)
  • PCI DSS (Payment Card Industry Data Security Standard)

これらの標準に基づいて環境をスキャンすることで、以下が可能になります。

  • 規制コンプライアンスに関するインフラストラクチャーを評価します。
  • Docker Engine および Kubernetes オーケストレーターを強化します。
  • 環境の全体的なセキュリティーポジションについて理解して管理します。
  • クラスター、namespace、およびノードのコンプライアンスステータスの詳細ビューを取得します。

2.1. コンプライアンスダッシュボードの表示

コンプライアンスダッシュボードは、環境内のすべてのクラスター、namespace、およびノードにおけるコンプライアンス標準の概要ビューを提供します。

コンプライアンスダッシュボードにはチャートが含まれており、コンプライアンスに関する潜在的な問題を調査するためのオプションを提供します。単一クラスター、namespace、またはノードのコンプライアンススキャン結果に移動できます。さらに、コンテナー化された環境内のコンプライアンスの状態に関するレポートを生成できます。

手順

  • RHACS ポータルで、ナビゲーションメニューから Compliance を選択します。
注記

Compliance ダッシュボードを初めて開くと、空のダッシュボードが表示されます。コンプライアンススキャンを実行してダッシュボードにデータを入力する必要があります。

2.2. コンプライアンススキャンの実行

コンプライアンススキャンを実行すると、すべてのコンプライアンス標準においてインフラストラクチャー全体のコンプライアンスステータスがチェックされます。コンプライアンススキャンを実行すると、Red Hat Advanced Cluster Security for Kubernetes は環境のデータスナップショットを作成します。データスナップショットには、アラート、イメージ、ネットワークポリシー、デプロイメント、および関連するホストベースのデータが含まれます。Central は、クラスターで実行している Sensor からホストベースのデータを収集します。その後、Central は各コレクター Pod で実行されているコンプライアンスコンテナーからより多くのデータを収集します。コンプライアンスコンテナーは、環境に関する以下のデータを収集します。

  • Docker デーモン、Docker イメージ、および Docker コンテナーの設定。
  • Docker ネットワークに関する情報。
  • Docker、Kubernetes、および OpenShift Container Platform のコマンドライン引数およびプロセス。
  • 特定のファイルパスのパーミッション。
  • コア Kubernetes および OpenShift Container Platform サービスの設定ファイル。

データ収集が完了すると、Central はデータに対するチェックを実行して結果を判別します。コンプライアンスダッシュボードから結果を表示し、結果に基づいてコンプライアンスレポートを生成することもできます。

注記

コンプライアンススキャンでは、以下のようになります。

  • コントロール は、監査人が情報システムのコンプライアンスを評価する業界または規制コンプライアンス標準の項目 1 つを表します。Red Hat Advanced Cluster Security for Kubernetes は、1 つ以上のチェックを実行して、単一のコントロールへの準拠の感度をチェックします。
  • チェック は、1 つのコントロール評価中に実行される 1 回のテストです。
  • コントロールによっては、複数のチェックが関連付けられています。関連付けられたチェックのいずれかがコントロールに失敗した場合に、コントロールの状態がすべて Fail とマークされます。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Compliance を選択してコンプライアンスダッシュボードを開きます。
  2. Scan environment をクリックします。

    注記

    環境全体のスキャンが完了するまでに約 2 分かかります。この時間は、環境内のクラスターおよびノード数によって異なる可能性があります。

2.3. コンプライアンススキャン結果の表示

コンプライアンススキャンを実行すると、コンプライアンスダッシュボードには、環境のコンプライアンスステータスとして結果が表示されます。ダッシュボードから直接コンプライアンス違反を表示し、詳細ビューをフィルターリングして、環境が特定のベンチマークに準拠しているかどうかを確認することができます。本セクションでは、コンプライアンススキャン結果を表示し、フィルターする方法を説明します。

ショートカットを使用して、クラスター、namespace、およびノードのコンプライアンスステータスを確認できます。コンプライアンスダッシュボードの上部にあるショートカットを探します。これらのショートカットをクリックすると、コンプライアンススナップショットを表示し、クラスター、namespace、またはノードの全体的なコンプライアンスに関するレポートを生成できます。

コンプライアンスのステータス

Status説明

Fail

コンプライアンスチェックに失敗しました。

Pass

コンプライアンスチェックに合格しました。

該当なし

Red Hat Advanced Cluster Security for Kubernetes は、該当しないためチェックをスキップしました。

Info

コンプライアンスチェックでデータが収集されましたが、Red Hat Advanced Cluster Security for Kubernetes は 合格 または 不合格 の判断を下すことができませんでした。

エラー

技術的な問題が原因でコンプライアンスチェックに失敗しました。

2.3.1. クラスターのコンプライアンスステータスの表示

コンプライアンスダッシュボードから、すべてのクラスターまたは単一のクラスターのコンプライアンスステータスを表示できます。

手順

  • 環境内の全クラスターのコンプライアンスステータスを表示するには、以下を実行します。

    1. RHACS ポータルに移動し、ナビゲーションメニューから Compliance を選択してコンプライアンスダッシュボードを開きます。
    2. コンプライアンスダッシュボードで Clusters をクリックします。
  • 環境内の特定のクラスターのコンプライアンスステータスを表示するには、以下を実行します。

    1. RHACS ポータルに移動し、ナビゲーションメニューから Compliance を選択してコンプライアンスダッシュボードを開きます。
    2. コンプライアンスダッシュボードで、クラスター別の合格基準 ウィジェットを探します。
    3. このウィジェットで、クラスター名をクリックしてコンプライアンスのステータスを表示します。

2.3.2. namespace のコンプライアンスステータスの表示

コンプライアンスダッシュボードから、すべての namespace または単一の namespace のコンプライアンスステータスを表示できます。

手順

  • 環境内の全 namespace のコンプライアンスステータスを表示するには、以下を実行します。

    1. RHACS ポータルに移動し、ナビゲーションメニューから Compliance を選択してコンプライアンスダッシュボードを開きます。
    2. コンプライアンスダッシュボードで Namespaces をクリックします。
  • 環境内の特定の namespace のコンプライアンスステータスを表示するには、以下を実行します。

    1. RHACS ポータルに移動し、ナビゲーションメニューから Compliance を選択してコンプライアンスダッシュボードを開きます。
    2. Namespaces をクリックし、namespace の詳細ページを開きます。
    3. Namespaces テーブルから、namespace をクリックします。右側にサイドパネルが開きます。
    4. サイドパネルで namespace の名前をクリックし、コンプライアンスのステータスを表示します。

2.3.3. 特定の規格のコンプライアンスステータスの表示

Red Hat Advanced Cluster Security for Kubernetes は、NIST、PCI DSS、NIST、HIPAA、Kubernetes の CIS、Docker コンプライアンス標準の CIS をサポートしています。単一のコンプライアンス標準に関するコンプライアンス制御すべてを表示できます。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Compliance を選択してコンプライアンスダッシュボードを開きます。
  2. コンプライアンスダッシュボードで、クラスター別の合格基準 ウィジェットを探します。
  3. このウィジェットで、標準をクリックすると、その標準に関連するすべてのコントロールに関する情報が表示されます。

2.3.4. 特定のコントロールのコンプライアンスステータスの表示

選択した標準の特定コントロールのコンプライアンスステータスを表示できます。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Compliance を選択してコンプライアンスダッシュボードを開きます。
  2. コンプライアンスダッシュボードで、クラスター別の合格基準 ウィジェットを探します。
  3. このウィジェットで、標準をクリックすると、その標準に関連するすべてのコントロールに関する情報が表示されます。
  4. Controls テーブルから、コントロールをクリックします。右側にサイドパネルが開きます。
  5. サイドパネルでコントロールの名前をクリックし、その詳細を表示します。

2.4. コンプライアンスステータスのフィルターリング

Red Hat Advanced Cluster Security for Kubernetes 検索を使用すると、コンプライアンスダッシュボードからデータをさまざまに組み合わせて簡単にフィルターリングできます。クラスターのサブセット、業界標準、合否のコントロールに注意を向けるために、コンプライアンスダッシュボードに表示されるデータの範囲を絞り込むことができます。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Compliance を選択してコンプライアンスダッシュボードを開きます。
  2. コンプライアンスダッシュボードで ClustersNamespaces または Nodes のいずれかを選択して、詳細ページを開きます。
  3. 検索バーにフィルター条件を入力してから Enter キーを押します。

2.5. コンプライアンスレポートの生成

Red Hat Advanced Cluster Security for Kubernetes を使用すると、レポートを生成して、環境のコンプライアンスステータスを追跡できます。これらのレポートを使用して、さまざまな業界の義務でコンプライアンスステータスを他のステークホルダーに伝えることができます。

以下を生成できます。

  • ビジネス要素にフォーカスし、PDF 形式のコンプライアンスステータスのチャートや要約を含む エグゼクティブレポート
  • 技術的な側面に重点が置かれ、CSV 形式の詳細情報が含まれる エビデンスレポート

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Compliance を選択してコンプライアンスダッシュボードを開きます。
  2. コンプライアンスダッシュボードの右上にある Export をクリックします。

    • エグゼクティブレポートを生成するには、Download page as PDF を選択します。
    • エビデンスレポートを生成するには、Download Evidence as CSV を選択します。
ヒント

Export オプションは、すべてのコンプライアンスページおよびフィルターされたビューに表示されます。

2.5.1. エビデンスレポート

Red Hat Advanced Cluster Security for Kubernetes からの包括的なコンプライアンス関連のデータは、エビデンスレポートとして CSV 形式でエクスポートできます。この証拠レポートには、コンプライアンス評価に関する詳細情報が含まれており、コンプライアンス監査人、DevOps エンジニア、セキュリティー担当者などの技術的ロールに合わせて調整されています。

エビデンスレポートには、以下の情報が含まれています。

CSV フィールド説明

Standard (標準)

CIS Kubernetes などのコンプライアンス標準。

クラスター

評価したクラスターの名前。

Namespace

デプロイメントが存在する namespace またはプロジェクトの名前。

オブジェクトタイプ

オブジェクトの Kubernetes エンティティータイプ。たとえば、ノードクラスターDaemonSetDeployment、または StaticPod などです。

オブジェクト名

オブジェクトを一意に識別する Kubernetes システムによって生成された文字列であるオブジェクトの名前。例: gke-setup-dev21380-default-pool-8e086a77-1jfq

Control

コンプライアンス基準に記載されている管理番号。

コントロールの説明

制御が実行されるコンプライアンスチェックの説明。

State

コンプライアンスチェックの合否。たとえば、Pass または Fail です。

エビデンス

特定のコンプライアンスチェックが失敗または合格した理由に関する説明。

評価時間

コンプライアンススキャンを実行した時刻と日付。

2.6. サポート対象のベンチマークバージョン

Red Hat Advanced Cluster Security for Kubernetes は、以下の業界標準および規制フレームワークに対するコンプライアンスチェックをサポートします。

ベンチマークサポート対象バージョン

Docker および Kubernetes の CIS Benchmarks(インターネットセキュリティーの センター)

CIS Kubernetes v1.5.0 および CIS Docker v1.2.0

HIPAA (Health Insurance Portability and Accountability Act)

HIPAA 164

米国立標準技術研究所 (NIST)、

NIST Special Publication 800-190 and 800-53 Rev. 4

PCI DSS (Payment Card Industry Data Security Standard)

PCI DSS 3.2.1

第3章 セキュリティーリスクの評価

Red Hat Advanced Cluster Security for Kubernetes は環境全体にわたるリスクを評価し、セキュリティーリスクに合わせて実行中のデプロイメントをランク付けします。また、緊急の対応が必要な脆弱性、設定、およびランタイムアクティビティーに関する詳細も提供します。

3.1. リスクビュー

リスク ビューには、すべてのクラスターからのすべての展開が一覧表示され、ポリシー違反、イメージコンテンツ、デプロイメント設定、およびその他の同様の要素に基づく多要素リスクメトリックで並べ替えられます。一覧の上部にデプロイメントでは、最もリスクが高くなります。

Risk ビューには、各行に以下の属性を持つデプロイメントの一覧が表示されます。

  • Name: デプロイメントの名前。
  • Created: デプロイメントの作成時間。
  • Cluster: デプロイメントが実行されているクラスターの名前。
  • namespace: デプロイメントが存在する namespace。
  • Priority: 重大度およびリスクメトリクスに基づく優先度のランク付け。

Risk ビューでは、以下を実行できます。

  • 列見出しを選択して、違反を昇順または降順で並べ替えます。
  • フィルターバーを使用して違反をフィルターリングします。
  • フィルターされた基準に基づいて新しいポリシーを作成します。

デプロイメントのリスクに関する詳細を表示するには、Risk ビュー でデプロイメントを選択します。

3.1.1. リスクビューの表示

Risk ビューですべてのリスクを分析し、修正措置を取ることができます。

手順

  • RHACS ポータルに移動し、ナビゲーションメニューから Risk を選択します。

3.2. リスクビューからのセキュリティーポリシーの作成

リスク ビューで展開のリスクを評価しているときに、ローカルページフィルターリングを適用すると、使用しているフィルターリング基準をもとに新しいセキュリティーポリシーを作成できます。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Risk を選択します。
  2. ポリシーを作成するローカルページのフィルターリング条件を適用します。
  3. New Policy を選択し、必須フィールドに入力して新規ポリシーを作成します。

3.2.1. Red Hat Advanced Cluster Security for Kubernetes がフィルターリング基準をポリシー条件に変換する方法について

使用するフィルター条件に基づいて、リスク ビューから新しいセキュリティーポリシーを作成する場合には、すべての基準が新しいポリシーに直接適用されるわけではありません。

  • Red Hat Advanced Cluster Security for Kubernetes は、ClusterNamespace、および Deployment フィルターを同等のポリシースコープに変換します。

    • Risk ビューのローカルページのフィルターリングでは、以下の方法を使用して検索用語を組み合わせます。

      • 同じカテゴリーの検索用語と OR 演算子を組み合わせます。たとえば、検索クエリーが Cluster:A,B の場合には、フィルターは cluster A または cluster B. のデプロイメントが返されます。
      • 異なるカテゴリーの検索用語と AND 演算子を組み合わせます。たとえば、検索クエリーが Cluster:A+Namespace:Z の場合には、フィルターは クラスター A および namespace Z のデプロイメントがマッチします。
    • 複数のスコープをポリシーに追加すると、このポリシーはすべてのスコープからの違反がマッチします。

      • たとえば、(Cluster A OR Cluster B)AND(Namespace Z) を検索すると、2 つのポリシースコープ (Cluster=A AND Namespace=Z) または (Cluster=B AND Namespace=Z) が結果として返されます。
  • Red Hat Advanced Cluster Security for Kubernetes は、ポリシー条件に直接マップされないフィルターをドロップまたは変更し、ドロップされたフィルターを報告します。

次の表では、フィルターリング検索属性をポリシー基準にマップする方法を示します。

検索属性ポリシー基準

Add Capabilities

Add Capabilities

Annotation

拒否されたアノテーション

CPU Cores Limit

コンテナーの CPU 制限

CPU Cores Request

コンテナーの CPU 要求

CVE

CVE

CVE Published On

✕ 廃止

CVE Snoozed

✕ 廃止

CVSS

CVSS

Cluster

⟳ スコープに変換

Component

イメージコンポーネント (名前)

コンポーネントのバージョン

イメージコンポーネント (バージョン)

デプロイメント

⟳ スコープに変換

デプロイメントタイプ

✕ 廃止

Dockerfile Instruction Keyword

Dockerfile 行 (キー)

Dockerfile Instruction Value

Dockerfile 行 (値)

Drop Capabilities

✕ 廃止

Environment Key

環境変数 (キー)

Environment Value

環境変数 (値)

Environment Variable Source

環境変数 (ソース)

Exposed Node Port

✕ 廃止

Exposing Service

✕ 廃止

Exposing Service Port

✕ 廃止

Exposure Level

ポートの公開

External Hostname

✕ 廃止

External IP

✕ 廃止

Image

✕ 廃止

Image Command

✕ 廃止

Image Created Time

イメージ作成からの日数

Image Entrypoint

✕ 廃止

Image Label

許可されていないイメージラベル

Image OS

イメージ OS

Image Pull Secret

✕ 廃止

Image Registry

イメージレジストリー

Image Remote

イメージリモート

Image Scan Time

イメージが最後にスキャンされた後の日数

Image Tag

Image Tag

Image Top CVSS

✕ 廃止

Image User

✕ 廃止

Image Volumes

✕ 廃止

Label

⟳ スコープに変換

Max Exposure Level

✕ 廃止

Memory Limit (MB)

コンテナーのメモリー制限

Memory Request (MB)

コンテナーのメモリー要求

Namespace

⟳ スコープに変換

Namespace ID

✕ 廃止

Pod Label

✕ 廃止

Port

ポート

Port Protocol

プロトコル

Priority

✕ 廃止

Privileged

特権

Process Ancestor

プロセスの祖先

Process Arguments

プロセス引数

Process Name

プロセス名

Process Path

✕ 廃止

Process Tag

✕ 廃止

Process UID

プロセス UID

Read Only Root Filesystem

読み取り専用ルートファイルシステム

Secret

✕ 廃止

Secret Path

✕ 廃止

Service Account

✕ 廃止

Service Account Permission Level

最小 RBAC パーミッションレベル

Toleration Key

✕ 廃止

Toleration Value

✕ 廃止

Volume Destination

ボリュームの宛先

Volume Name

ボリューム名

Volume ReadOnly

書き込み可能なボリューム

Volume Source

ボリュームソース

Volume Type

ボリュームタイプ

3.3. リスクの詳細の表示

Risk ビューでデプロイメントを選択すると、右側のパネルに Risk Details が表示されます。Risk Details パネルには、複数のタブにグループ化された詳細情報が表示されます。

3.3.1. リスクインディケータータブ

Risk Details パネルの Risk Indicators タブには、検出されたリスクが説明されています。

Risk Indicators タブには以下のセクションが含まれます。

  • Policy Violations: 選択したデプロイメントで違反しているポリシーの名前。
  • Suspicious Process Executions: プロセスが実行されたさまざまなプロセス、引数、およびコンテナー名。
  • Image Vulnerabilities: CVSS スコアをはじめとした合計 CVE を含むイメージ。
  • Service Configurations: 読み取り/書き込み (RW) 機能、機能が廃止されているかどうか、特権付きコンテナーがあるかなど、多くの場合に問題が発生する可能性のある各種設定。
  • Service Reachability: クラスター内外に公開されるコンテナーポート。
  • Components Useful for Attackers: 攻撃者がよく使用すると検出されたソフトウェアツール。
  • Number of Components in Image: 各イメージにあるパッケージの数。
  • Image Freshness: イメージ名と使用期間 (例: 285 days old )
  • RBAC Configuration: Kubernetes のロールベースアクセス制御 (RBAC) でのデプロイメントに付与されるパーミッションのレベル。
注記

Risk Indicators タブにすべてのセクションが表示されるわけではありません。Red Hat Advanced Cluster Security for Kubernetes は、選択したデプロイメントに影響のある関連セクションのみを表示します。

3.4. デプロイの詳細タブ

Deployment Risk パネルの Deployment Details タブのセクションには詳細情報が表示されるため、検出されたリスクに対処する方法について適切な決定を下すことができます。

3.4.1. 概要セクション

Overview セクションには、以下の詳細が表示されます。

  • Deployment ID: デプロイメントの英数字 ID。
  • namespace: デプロイメントが存在する Kubernetes または OpenShift Container Platform namespace。
  • updated: デプロイメントが更新された日付のタイムスタンプ。
  • Deployment Type: デプロイメントのタイプ (例: Deployment または DaemonSet)。
  • replicas: このデプロイメントにデプロイされた Pod の数。
  • Labels: Kubernetes または OpenShift Container Platform アプリケーションに割り当てられるキー/値のラベル。
  • Cluster: デプロイメントが実行されているクラスターの名前。
  • annotations: デプロイメントの Kubernetes アノテーション。
  • Service Account: Pod で実行されるプロセスのアイデンティティーを表します。プロセスがサービスアカウントを使用して認証されると、このプロセスは Kubernetes API サーバーに接続し、クラスターリソースにアクセスできます。Pod にサービスアカウントが割り当てられていない場合は、default のサービスアカウントを取得します。

3.4.2. コンテナー設定セクション

コンテナー設定セクションには、以下の詳細が表示されます。

  • Image Name: デプロイされたイメージの名前。
  • Resources

    • CPU Request (cores): コンテナーにより要求される CPU の数。
    • CPU Limit (cores): コンテナーが使用できる CPU の最大数。
    • Memory Request (MB): コンテナーによって要求されるメモリーサイズ。
    • Memory Limit (MB): コンテナーが強制終了せずに使用できる最大メモリー量。
  • Mounts

    • Name: マウントの名前。
    • Source: マウントのデータを取得するパス。
    • Destination: マウントのデータを送信する先のパス。
    • type: マウントのタイプ。
  • Secrets: デプロイメントで使用される Kubernetes シークレットの名前、および X.509 証明書であるシークレット値の基本情報。

3.4.3. セキュリティーコンテキストセクション

Security Context セクションには、以下の詳細が表示されます。

  • Privileged: コンテナーに特権がある場合に true を一覧表示します。

3.5. プロセス検出タブ

Process Discovery タブには、環境内の各コンテナーで実行されたすべてのバイナリーの包括的なリストが、デプロイメントごとに要約されて表示されます。

プロセス検出タブには、以下の詳細が表示されます。

  • Binary Name: 実行されたバイナリーの名前。
  • Container: プロセスが実行されるデプロイメントのコンテナー。
  • 引数: バイナリーで渡された特定の引数。
  • Time: 指定したコンテナーでバイナリーが実行された最新の日時。
  • Pod ID: コンテナーが存在する Pod の識別子。
  • UID: プロセスが実行された Linux ユーザー ID。

フィルターバーに Process Name:<name> クエリーを使用して、特定のプロセスを検索します。

3.5.1. イベントタイムラインセクション

Process Discovery タブの Event Timeline セクションでは、選択したデプロイメントのイベントの概要が表示されます。ポリシー違反、プロセスアクティビティー、およびコンテナーの終了または再起動イベントの数が表示されます。

Event Timeline を選択して、詳細情報を表示できます。

Event Timeline モーダルボックスには、選択したデプロイメントのすべての Pod のイベントが表示されます。

タイムラインのイベントは、以下のように分類されます。

  • プロセスアクティビティー
  • ポリシー違反
  • コンテナーの再起動
  • コンテナーの終了

イベントは、タイムラインにアイコンとして表示されます。イベントの詳細を表示するには、マウスポインターをイベントアイコンの上に置きます。詳細はツールチップに表示されます。

  • Show Legend をクリックして、イベントのタイプに対応するアイコンを確認します。
  • ExportDownload PDF または ExportDownload CSV を選択して、イベントタイムライン情報をダウンロードします。
  • Show All ドロップダウンメニューを選択して、タイムラインに表示するイベントタイプを絞り込みます。
  • 展開アイコンをクリックして、選択した Pod のコンテナーごとに個別にイベントを表示します。

タイムライン内のすべてのイベントは、下部のミニマップコントロールにも表示されます。ミニマップは、イベントのタイムラインに表示されるイベントの数を制御します。ミニマップで強調表示されている領域を変更して、タイムラインに表示されるイベントを変更できます。これには、ハイライトされた領域を左または右側 (または両方) から減らし、強調表示されている領域をドラッグします。

注記
  • コンテナーが再起動すると、Red Hat Advanced Cluster Security for Kubernetes は以下のようになります。

    • Pod 内のコンテナーごとに、アクティブではないコンテナーインスタンス 最大 10 個のコンテナーの終了および再起動イベントに関する情報を表示します。たとえば、Pod に 2 つのコンテナー アプリケーション および サイドカー が含まれる場合には、Red Hat Advanced Cluster Security for Kubernetes は最大 10 の アプリケーション インスタンスのアクティビティーと、最大 10 の サイドカー インスタンスを保持します。
    • コンテナーの以前のインスタンスに関連付けられているプロセスアクティビティーは追跡しません。
  • Red Hat Advanced Cluster Security for Kubernetes は、各 Pod のタプル (プロセス名、プロセス引数、UID) ごとの最新の実行のみを表示します。
  • Red Hat Advanced Cluster Security for Kubernetes は、アクティブな Pod のイベントのみを表示します。
  • Red Hat Advanced Cluster Security for Kubernetes は、Kubernetes およびコレクターが報告する時間に基づいて、報告されたタイムスタンプを調整します。Kubernetes タイムスタンプは 2 進法の精度を使用し、最も近い秒に時間を丸めます。ただし、コレクターはより正確なタイムスタンプを使用します。たとえば、Kubernetes がコンテナーの起動時間を 10:54:48 として報告し、コレクターは 10:54:47.5349823 で起動したコンテナーのプロセスを報告する場合には、Red Hat Advanced Cluster Security for Kubernetes はコンテナーの起動時間を 10:54:47.5349823 に調整します。

3.6. プロセスベースラインの使用

インフラストラクチャーセキュリティーにプロセスベースを使用して、リスクを最小限に抑えることができます。この方法では、Red Hat Advanced Cluster Security for Kubernetes はまず既存のプロセスを検出し、ベースラインを作成します。その後、デフォルトの deny-all モードで動作し、ベースラインに一覧表示されているプロセスのみを実行できます。

<discreet><title>プロセスベースライン</title>

Red Hat Advanced Cluster Security for Kubernetes をインストールすると、デフォルトのプロセスベースラインはありません。Red Hat Advanced Cluster Security for Kubernetes がデプロイメントを検出すると、デプロイメントの全コンテナータイプのプロセスベースラインが作成されます。次に、検出されたすべてのプロセスを独自のプロセスベースラインに追加します。

</discreet>
<discreet><title>プロセスベースラインの状態</title>

プロセス検出フェーズでは、すべてのベースラインがロック解除された状態になります。

ロック解除 の状態:

  • Red Hat Advanced Cluster Security for Kubernetes が新しいプロセスを検出すると、そのプロセスをプロセスベースラインに追加します。
  • プロセスはリスクとして表示されず、違反は発生しません。

Red Hat Advanced Cluster Security for Kubernetes がデプロイメントのコンテナーから最初のプロセスインジケーターを受け取ってから 1 時間後に、プロセス検出フェーズを終了します。この時点で、以下が行われます。

  • Red Hat Advanced Cluster Security for Kubernetes は、プロセスのベースラインへのプロセスの追加を停止します。
  • プロセスベースラインにない新しいプロセスはリスクとして表示されますが、違反はトリガーしません。

違反を生成するには、プロセスベースラインを手動でロックする必要があります。

ロック 状態:

  • Red Hat Advanced Cluster Security for Kubernetes は、プロセスのベースラインへのプロセスの追加を停止します。
  • プロセスベースラインにない新しいプロセスは違反をトリガーします。

ベースラインがロックされているかどうかに関係なく、ベースラインからいつでもプロセスを追加または削除できます。

注記

デプロイメントで、各 Pod のコンテナーに複数のコンテナーがある場合には、Red Hat Advanced Cluster Security for Kubernetes は各コンテナータイプごとにプロセスベースラインを作成します。ベースラインがロックされいるものと、ロック解除されているものがあるデプロイメントの場合には、そのデプロイメントのベースラインステータスは Mixed と表示されます。

</discreet>

3.6.1. プロセスベースラインの表示

Risk ビューからプロセスベースラインを表示できます。

手順

  1. RHACS ポータルで、ナビゲーションメニューから Risk を選択します。
  2. デフォルトの Risk ビューのデプロイメント一覧からデプロイメントを選択します。デプロイメントの詳細が、右側のパネルで開きます。
  3. Deployment details パネルで、Process Discovery タブを選択します。
  4. プロセスベースラインは Spec Container Baselines セクションに表示されます。

3.6.2. ベースラインへのプロセスの追加

ベースラインにプロセスを追加できます。

手順

  1. RHACS ポータルで、ナビゲーションメニューから Risk を選択します。
  2. デフォルトの Risk ビューのデプロイメント一覧からデプロイメントを選択します。デプロイメントの詳細が、右側のパネルで開きます。
  3. Deployment details パネルで、Process Discovery タブを選択します。
  4. Running Processes セクションで、プロセスベースラインに追加するプロセスの Add アイコンをクリックします。
注記

Add アイコンは、プロセスベースラインにないプロセスでのみ利用できます。

3.6.3. ベースラインからのプロセスの削除

ベースラインからプロセスを削除できます。

手順

  1. RHACS ポータルで、ナビゲーションメニューから Risk を選択します。
  2. デフォルトの Risk ビューのデプロイメント一覧からデプロイメントを選択します。デプロイメントの詳細が、右側のパネルで開きます。
  3. Deployment details パネルで、Process Discovery タブを選択します。
  4. Spec Container baselines セクションで、プロセスベースラインから削除するプロセスの Remove アイコンをクリックします。

3.6.4. プロセスベースラインのロックとロック解除

ベースラインを ロック して、ベースラインに記載されていない全プロセスの違反をトリガーし、ベースラインのロックを 解除 して違反をトリガーしないようにできます。

手順

  1. RHACS ポータルで、ナビゲーションメニューから Risk を選択します。
  2. デフォルトの Risk ビューのデプロイメント一覧からデプロイメントを選択します。デプロイメントの詳細が、右側のパネルで開きます。
  3. Deployment details パネルで、Process Discovery タブを選択します。
  4. Spec Container baselines セクションで、以下を実行します。

    • ベースラインにないプロセスの違反をトリガーするには、Lock アイコンをクリックします。
    • Unlock アイコンをクリックして、ベースラインにないプロセスの違反のトリガーを停止します。

第4章 受付コントローラーの適用の使用

Red Hat Advanced Cluster Security for Kubernetes は Kubernetes 受付コントローラー および OpenShift Container Platform 受付プラグイン と連携して、Kubernetes または OpenShift Container Platform がワークロード (例: デプロイメント、デーモンセットまたはジョブ) を作成する前にセキュリティーポリシーを適用することができます。

Red Hat Advanced Cluster Security for Kubernetes 受付コントローラーは、Red Hat Advanced Cluster Security for Kubernetes で設定するポリシーに違反するワークロードを作成できないようにします。Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.41 以降、受付コントローラーを設定して、ポリシーに違反するワークロードに対する更新を防ぐことができます。

Red Hat Advanced Cluster Security for Kubernetes は ValidatingAdmissionWebhook コントローラーを使用して、プロビジョニングされるリソースが指定のセキュリティーポリシーに準拠していることを確認します。これに対応するために、Red Hat Advanced Cluster Security for Kubernetes により複数の Webhook ルールが含まれる ValidatingWebhookConfiguration が作成されます。

Kubernetes または OpenShift Container Platform API サーバーが Webhook ルールのいずれかに一致する要求を受信する場合には、API サーバーは AdmissionReview 要求を Red Hat Advanced Cluster Security for Kubernetes に送信します。Red Hat Advanced Cluster Security for Kubernetes は、設定されたセキュリティーポリシーに基づいて要求を受諾または拒否します。

注記

OpenShift Container Platform で受付コントローラーの適用を使用するには、Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.49 以降が必要です。

4.1. 受付コントローラーの適用について

受付コントローラーの適用を使用する予定の場合には、以下を考慮してください。

  • API レイテンシー: 受付コントローラーの適用を使用すると、追加の API 検証要求が必要になるため、Kubernetes または OpenShift Container Platform API のレイテンシーが増加します。fabric8 などの数多くの標準 Kubernetes ライブラリーには、デフォルトで短時間の Kubernetes または OpenShift Container Platform API のタイムアウトが含まれています。また、使用しているカスタム自動化での API タイムアウトも検討してください。
  • イメージのスキャン: クラスター設定パネルで Contact Image Scanners オプションを設定して、受付コントローラーが要求の確認中にイメージをスキャンするかどうかを選択できます。

    • この設定を有効にすると、スキャンまたはイメージ署名の検証結果がまだ利用できない場合には、Red Hat Advanced Cluster Security for Kubernetes がイメージスキャナーに接続し、これにが原因でかなりの遅延が発生します。
    • この設定を無効にすると、キャッシュされたスキャンと署名の検証結果が利用可能な場合にのみ、適用するかどうかの意思決定に、イメージスキャンの基準が考慮されます。
  • 受付コントローラーの適用を使用すると、以下が可能になります。

    • Pod の securityContext のオプション。
    • デプロイメント設定
    • イメージコンポーネントおよび脆弱性。
  • 受付コントローラーの適用は、以下に対して使用することはできません。

    • プロセスなどのランタイム動作。
    • ポートの公開に基づくポリシー。
  • Kubernetes または OpenShift Container Platform API サーバーと Red Hat Advanced Cluster Security for Kubernetes Sensor の間に接続性の問題がある場合には、受付コントローラーが失敗する場合があります。この問題を解決するには、受付コントローラーの適用の無効化セクションで説明されているように ValidatingWebhookConfiguration オブジェクトを削除します。
  • ポリシーに対してデプロイ時の適用を有効にしていて、受付コントローラーを有効にしている場合に、Red Hat Advanced Cluster Security for Kubernetes はポリシーに違反するデプロイをブロックしようとします。タイムアウトなど、コンプライアンス違反のデプロイメントが受付コントローラーによって拒否されない場合でも、Red Hat Advanced Cluster Security for Kubernetes は引き続き、レプリカをゼロにスケーリングするなど、他のデプロイ時の強制メカニズムを適用します。

4.2. 受付コントローラーの適用の有効化

Sensor をインストールする場合や、既存のクラスター設定を編集する場合に、Clusters ビューで受付コントローラーの適用を有効にすることができます。

手順

  1. RHACS ポータルで、Platform ConfigurationClusters に移動します。
  2. 一覧から既存のクラスターを選択するか、+ New Cluster を選択します。
  3. クラスター設定パネルで、クラスターの詳細を入力します。
  4. Red Hat は、受付コントローラーを使用してオブジェクト作成イベントを適用することを計画している場合にのみ、Configure Admission Controller Webhook to listen on creates のトグルをオンにすることをお勧めします。
  5. Red Hat は、受付コントローラーを使用して更新イベントを実行する予定の場合には Configure Admission Controller Webhook to listen on updates トグルをオンにすることを推奨します。
  6. Red Hat は、受付コントローラーを使用して Pod 実行および Pod のポート転送イベントを強制することを予定している場合は、Enable Admission Controller Webhook to listen on exec and port-forward events トグルをオンにすることを推奨します。
  7. 以下のオプションを設定します。

    • Enforce on Object Creates: このトグルでは、受付コントロールサービスの動作が制御されます。これを機能させるには、Configure Admission Controller Webhook to listen on creates トグルをオンにする必要があります。
    • Enforce on Object Updates: この切り替えにより、受付コントロールサービスの動作が制御されます。これを機能させるには、Configure Admission Controller Webhook to listen on updates トグルをオンにする必要があります。
  8. Next を選択します。
  9. Download files セクションで Download YAML Files and Keys を選択します。

    注記

    既存クラスターの受付コントローラーを有効にする場合は、以下の変更を加えます。

    • Static Configuration セクション。YAML ファイルをダウンロードし、Sensor を再デプロイする必要があります。
    • Dynamic Configuration セクション。Red Hat Advanced Cluster Security for Kubernetes が自動的に Sensor を同期して変更を適用するため、ファイルおよびデプロイメントのダウンロードを省略できます。
  10. Finish を選択します。

検証

  • 新規クラスターを生成された YAML でプロビジョニングした後に、以下のコマンドを実行して受付コントローラーの適用が正しく設定されていることを確認します。

    $ oc get ValidatingWebhookConfiguration 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl と入力します。

    出力例

    NAME       CREATED AT
    stackrox   2019-09-24T06:07:34Z

4.3. 受付コントローラーの適用の回避

受付コントローラーを回避するには、admission.stackrox.io/break-glass アノテーションを YAML 設定に追加します。受付コントローラーを回避すると、デプロイメントの詳細を含むポリシー違反がトリガーされます。Red Hat は、他のユーザーが受付コントローラーをバイパスした理由を理解できるように、問題トラッキングリンクまたはその他の参照をこのアノテーションの値として提供することを推奨します。

4.4. 受付コントローラーの適用の無効化

Red Hat Advanced Cluster Security for Kubernetes (RHACS) ポータルの Clusters ビューから受付コントローラーの適用を無効にできます。

手順

  1. RHACS ポータルで、Platform ConfigurationClusters を選択します。
  2. 一覧から既存のクラスターを選択します。
  3. Dynamic Configuration セクションで、Enforce on Object CreatesEnforce on Object Updates のトグルをオフにします。
  4. Next を選択します。
  5. Finish を選択します。

4.4.1. 関連するポリシーの無効化

関連するポリシーで適用をオフにすることができ、受付コントローラーに対して適用を回避するように指示できます。

手順

  1. RHACS ポータルで、Platform ConfigurationPolicies に移動します。
  2. デフォルトのポリシーで適用を無効にします。

    • ポリシービューでスクロールダウンし、Kubernetes Actions: Exec into Pod ポリシーの横にある電源アイコンを選択して、そのポリシーを無効にします。
    • ポリシービューでスクロールダウンし、Kubernetes Actions: Port Forward to Pod ポリシーの横にある電源アイコンを選択して、そのポリシーを無効にします。
  3. デフォルトの Kubernetes Actions: Port Forward to Pod および Kubernetes Actions: Exec into Pod の実行ポリシーの基準を使用して作成した他のカスタムポリシーの適用を無効にします。

4.4.2. Webhook の無効化

RHACS ポータルの Clusters ビューから受付コントローラーの適用を無効にできます。

重要

Webhook をオフにして受付コントローラーを無効にする場合は、Sensor バンドルを再デプロイする必要があります。

手順

  1. RHACS ポータルで、Platform ConfigurationClusters に移動します。
  2. 一覧から既存のクラスターを選択します。
  3. Static Configuration セクションで、Enable Admission Controller Webhook to listen on exec and port-forward events トグルをオフにします。
  4. Next を選択して、Sensor の設定を続行します。
  5. Download YAML File and Keys クリックします。
  6. 監視対象クラスターにアクセスできるシステムから、Sensor スクリプトを展開して実行します。

    $ unzip -d sensor sensor-<cluster_name>.zip
    $ ./sensor/sensor.sh
    注記

    Sensor をデプロイするために必要な権限がないという警告が表示された場合は、画面の指示に従うか、クラスター管理者に連絡して支援を求めてください。

    Sensor はデプロイされた後、Central に接続し、クラスター情報を提供します。

  7. RHACS ポータルに戻り、デプロイメントが成功したかどうかを確認します。成功すると、セクション #2 の下に緑色のチェックマークが表示されます。緑色のチェックマークが表示されない場合は、次のコマンドを使用して問題を確認してください。

    • OpenShift Container Platform

      $ oc get pod -n stackrox -w
    • Kubernetes の場合:

      $ kubectl get pod -n stackrox -w
  8. Finish を選択します。
注記

受付コントローラーを無効にすると、Red Hat Advanced Cluster Security for Kubernetes では ValidatingWebhookConfiguration は削除されません。ただし、違反の要求を確認する代わりに、すべての AdmissionReview 要求を受け入れます。

ValidatingWebhookConfiguration オブジェクトを削除するには、セキュアなクラスターで以下のコマンドを実行します。

  • OpenShift Container Platform

    $ oc delete ValidatingWebhookConfiguration/stackrox
  • Kubernetes の場合:

    $ kubectl delete ValidatingWebhookConfiguration/stackrox

4.5. ValidatingWebhookConfiguration YAML ファイルの変更

Red Hat Advanced Cluster Security for Kubernetes を使用すると、以下でセキュリティーポリシーを有効にできます。

  • オブジェクトの作成
  • オブジェクトの更新
  • Pod の実行
  • Pod ポート転送

Central または Sensor が利用できない場合

受付コントローラーを機能させるには、Sensor からの初期設定を機能させる必要があります。Kubernetes または OpenShift Container Platform はこの設定を保存し、すべての受付制御サービスレプリカが他のノードに再スケジュールされている場合でもアクセスできます。この初期設定が存在する場合には、受付コントローラーは設定済みのデプロイ時のポリシーをすべて適用します。

Sensor または Central が後に利用できなくなる場合:

  • イメージスキャンを実行したり、キャッシュされたイメージスキャンに関する情報をクエリーしたりすることはできません。ただし、受付コントローラーの適用は、収集された情報が不完全な場合でも、タイムアウトが期限切れになる前に収集されて利用可能な情報に基づいて引き続き機能します。
  • 変更が受付コントロールサービスに伝播されないため、RHACS ポータルから受付コントローラーを無効にしたり、既存のポリシーの適用を変更したりすることはできません。
注記

受付コントロールの適用を無効にする必要がある場合は、以下のコマンドを実行して検証用の Webhook 設定を削除できます。

  • OpenShift Container Platform

    $ oc delete ValidatingWebhookConfiguration/stackrox
  • Kubernetes の場合:

    $ kubectl delete ValidatingWebhookConfiguration/stackrox

受付コントローラーの信頼性の強化

Red Hat は、ワーカーノードではなく、コントロールプレーンで受付コントロールサービスをスケジュールすることを推奨します。デプロイメント YAML ファイルには、コントロールプレーンで実行するためのソフト設定が含まれていますが、これは適用されていません。

デフォルトでは、アドミッションコントロールサービスは 3 つのレプリカを実行します。信頼性を向上させるには、以下のコマンドを実行してレプリカを増やします。

$ oc -n stackrox scale deploy/admission-control --replicas=<number_of_replicas> 1
1
Kubernetes を使用する場合は、oc の代わりに kubectl と入力します。

roxctl CLI での使用

Sensor のデプロイメント YAML ファイルを生成する場合に、以下のオプションを使用できます。

  • --admission-controller-listen-on-updates: このオプションを使用すると、Red Hat Advanced Cluster Security for Kubernetes は、Kubernetes または OpenShift Container Platform API サーバーから更新イベントを受信するように事前に設定された ValidatingWebhookConfiguration を使用して Sensor バンドルを生成します。
  • --admission-controller-enforce-on-updates: このオプションを使用する場合に、Red Hat Advanced Cluster Security for Kubernetes は、受付コントローラーがセキュリティーポリシーオブジェクトの更新も実施するように Central を設定します。

これらのオプションは両方とも任意で、デフォルトは false です。

第5章 セキュリティーポリシーの管理

Red Hat Advanced Cluster Security for Kubernetes では、追加設定なしのセキュリティーポリシーを使用して、コンテナー環境用にカスタムのマルチファクターポリシーを定義できます。これらのポリシーを設定すると、環境での高リスクサービスのデプロイメントを自動的に防ぎ、ランタイムのセキュリティーインシデントに対応できます。

5.1. デフォルトのセキュリティーポリシーの使用

Red Hat Advanced Cluster Security for Kubernetes には、セキュリティーの問題を特定して、お使いの環境でセキュリティーのベストプラクティスを実行できるように、幅広く対応する、デフォルトポリシーのセットが含まれています。

デフォルトのポリシーを表示するには、以下を実行します。

  • RHACS ポータルで、Platform ConfigurationPolicies に移動します。

Policies ビューには、デフォルトのポリシーを一覧表示し、各ポリシーで以下のパラメーターが含まれます。

  • Policy: ポリシーの名前。
  • Description: ポリシーのアラートの詳細な説明。
  • Status: ポリシーの現在のステータス (Enabled または Disabled のいずれか)。
  • Notifiers: ポリシーに設定された通知機能の一覧
  • Severity: 必要な注意の程度について、クリティカル、高、中、低のいずれかのポリシーのランク付け。
  • Lifecycle: このポリシーが適用されるコンテナーライフサイクル (ビルド、デプロイ、またはランタイム) のフェーズと、ポリシーが有効な場合に適用されるフェーズ。

デフォルトのポリシーには事前設定されたパラメーターがあり、以下のようなカテゴリーに属します。

  • 異常なアクティビティー
  • 暗号通貨マイニング
  • DevOps のベストプラクティス
  • Kubernetes
  • ネットワークツール
  • パッケージ管理
  • 権限
  • セキュリティーのベストプラクティス
  • システム変更
  • 脆弱性管理

これらのカテゴリーを編集し、独自のカテゴリーを作成できます。独自のカテゴリーを作成すると、新しいウィジェットに、ダッシュボード上のそのカテゴリーに関する情報が表示されます。

注記

デフォルトのポリシーを削除したり、デフォルトポリシーのポリシー条件を編集したりすることはできません。

5.2. 既存のセキュリティーポリシーの変更

作成したポリシーと、Red Hat Advanced Cluster Security for Kubernetes が提供する既存のデフォルトポリシーを編集できます。

手順

  1. RHACS ポータルで、Platform ConfigurationPolicies に移動します。
  2. Policies ページから、編集するポリシーを選択します。
  3. ActionsEdit Policy を選択します。
  4. Policy details を変更します。ポリシー名、重大度、カテゴリー、説明、理論的根拠、およびガイダンスを変更できます。Attach notifiers セクションの下にある利用可能な Notifier から選択して、通知機能 をポリシーに割り当てることもできます。
  5. Next をクリックします。
  6. Policy behavior セクションで、ポリシーの Lifecycle stages および Event sources を選択します。
  7. ポリシーの違反に対応する Response method を選択します。
  8. Next をクリックします。
  9. Policy criteria セクションで、Drag out policy fields セクションのカテゴリーを展開します。ドラッグアンドドロップポリシーフィールドを使用して、ポリシー基準の論理条件を指定します。

    注記

    デフォルトポリシーのポリシー基準は編集できません。

  10. Next をクリックします。
  11. Policy scope セクションで、Restrict by scopeExclude by scope、および Exclude images 設定を変更します。
  12. Next をクリックします。
  13. Review policy セクションで、ポリシー違反をプレビューします。
  14. Save をクリックします。

5.3. ポリシーカテゴリーの作成

システムポリシービューから新しいポリシーカテゴリーを作成できます。

手順

  1. RHACS ポータルで、Platform ConfigurationPolicies に移動します。
  2. Policies ページから、編集するポリシーを選択します。
  3. ActionsEdit Policy を選択します。
  4. Categories フィールドに新しいカテゴリー名を入力し、Create <category> をクリックします。
  5. Review policy セクションの見出しをクリックします。
  6. Save をクリックします。

設定を保存した後に、カテゴリーにポリシーの違反がある場合は、新しいカテゴリーがダッシュボードに表示されます。

5.4. カスタムポリシーの作成

デフォルトのポリシーを使用することに加えて、Red Hat Advanced Cluster Security for Kubernetes でカスタムポリシーを作成することもできます。

新しいポリシーを構築するには、既存のポリシーのクローンを作成するか、ゼロから新規ポリシーを作成します。

  • RHACS ポータルの Risk ビューのフィルター条件をもとにポリシーを作成することもできます。
  • また、ポリシー基準に論理演算子ではなく ANDOR および NOT を使用して高度なポリシーを作成することもできます。

5.4.1. システムポリシービューからのセキュリティーポリシーの作成

システムポリシービューから新しいセキュリティーポリシーを作成できます。

手順

  1. RHACS ポータルで、Platform ConfigurationPolicies に移動します。
  2. Create policy をクリックします。
  3. Policy details セクションに、ポリシーに関する以下の情報を入力します。

    • ポリシーの Name を入力します。
    • オプション: Attach notifiers セクションの下にある利用可能な Notifier から選択して、通知機能 をポリシーに割り当てることもできます。

      注記

      アラートを転送する前に、Red Hat Advanced Cluster Security for Kubernetes を通知プロバイダー (Webhook、Jira、PagerDuty、Splunk など) と統合する必要があります。

    • このポリシーの 重大度 レベルを選択します (CriticalHighMedium、または Low のいずれか)。
    • このポリシーに適用するポリシーの Categories を選択します。
    • Description ボックスに、ポリシーの詳細を入力します。
    • Rationale ボックスにポリシーが存在する理由についての説明を入力します。
    • Guidance ボックスでこのポリシーの違反を解決するための手順を入力します。
    • オプション: MITRE ATT&CK セクションで、ポリシーに指定する tactics and the techniques を選択します。

      1. Add tactic をクリックし、ドロップダウンリストから調整を選択します。
      2. Add technique をクリックして、選択した戦略の手法を追加します。戦略には、複数の手法を指定できます。
  4. Next をクリックします。
  5. Policy behavior セクションで、ポリシーの Lifecycle stages および Event sources(Runtime lifecycle only) を選択します。

    • BuildDeploy、または Runtimeポリシーを適用する Lifecycle Stages を選択します。複数のステージを選択できます。

      • ビルド時ポリシーは、CVE や Dockerfile 手順などのイメージフィールドに適用されます。
      • デプロイ時のポリシーにはすべてのビルドタイムポリシー条件を含めることができますが、特権モードで実行したり、Docker ソケットをマウントするなど、クラスター設定からのデータを含めることもできます。
      • ランタイムポリシーには、すべてのビルド時およびデプロイ時のポリシー条件を含めることができますが、ランタイム時のプロセス実行に関するデータを含めることもできます。
  6. Response method には、以下のいずれかを選択します。

    1. Inform (違反の一覧に違反を追加する)。
    2. または Inform and enforce (アクションを適用する) を選択します。

      • ポリシーの適用動作を選択します。Lifecycle Stages の設定時に選択したステージでのみ使用できます。ON (有効化) を選択してポリシーを適用して違反を報告し、OFF (disable) を選択して違反を報告します。適用の振る舞いは、ライフサイクルの各ステージで異なります。

        • Build: Red Hat Advanced Cluster Security for Kubernetes は、イメージがポリシーの条件に一致すると、継続的インテグレーション (CI) ビルドに失敗します。
        • Deploy: Red Hat Advanced Cluster Security for Kubernetes は、ポリシーの条件に一致するデプロイの作成をブロックします。アドミッションコントローラーが適用されているクラスターでは、Kubernetes または OpenShift Container Platform サーバーがすべての非準拠のデプロイメントをブロックします。他のクラスターでは、Red Hat Advanced Cluster Security for Kubernetes が非準拠のデプロイメントを編集して、Pod がスケジュールされないようにします。
        • runtime: Red Hat Advanced Cluster Security for Kubernetes は、ポリシーの条件に一致するすべての Pod を強制終了するか、または Pod で実行されたアクションをブロックします。

          警告

          ポリシーの適用は、実行中のアプリケーションまたは開発プロセスに影響を与える可能性があります。適用オプションを有効にする前に、すべての利害関係者に通知し、自動適用アクションに対応する方法を計画してください。

  7. Next をクリックします。
  8. Policy criteria セクションで、ポリシーをトリガーする属性を設定します。
  9. Next をクリックします。
  10. Policy scope セクションで、以下を設定します。

    • Add inclusion scope をクリックして、Restrict to Scope を使用し、特定のクラスター、namespace、またはラベルだけに、このポリシーを有効にします。複数のスコープを追加したり、namespaces とラベルの RE2 Syntax で正規表現を使用したりすることもできます。
    • Add exclusion scope をクリックして Exclude by Scope を使用して、指定するデプロイメント、クラスター、namespace、およびラベルを除外するために、選択したエンティティーに対象のポリシーが適用されないことを意味します。複数のスコープを追加したり、namespaces とラベルの RE2 Syntax で正規表現を使用したりすることもできます。ただし、デプロイメントの選択に正規表現を使用することはできません。
    • Excluded Images (Build Lifecycle only) の場合は、違反をトリガーしないすべてのイメージを選択します。

      注記

      Excluded Images 設定は、build ライフサイクルステージで継続的インテグレーションシステムでイメージを確認する場合にのみ適用されます。このポリシーを使用して、実行中のデプロイメント (Deploy ライフサイクルステージ) またはランタイムアクティビティー (Runtime ライフサイクルステージ) をチェックする場合、効果はありません。

  11. Next をクリックします。
  12. Review policy セクションで、ポリシー違反をプレビューします。
  13. Save をクリックします。

関連情報

5.4.2. リスクビューからのセキュリティーポリシーの作成

リスク ビューで展開のリスクを評価しているときに、ローカルページフィルターリングを適用すると、使用しているフィルターリング基準をもとに新しいセキュリティーポリシーを作成できます。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Risk を選択します。
  2. ポリシーを作成するローカルページのフィルターリング条件を適用します。
  3. New Policy を選択し、必須フィールドに入力して新規ポリシーを作成します。

5.4.3. ポリシー基準

Policy criteria セクションで、ポリシーをトリガーするデータを設定できます。

以下の表に記載されている属性に基づいてポリシーを設定できます。

この表では、以下のようになります。

  • 正規表現AND、OR、および NOT 列は、特定の属性とともに正規表現およびその他の論理演算子を使用できるかどうかを示します。

    • Regular expressions 列の ! は、リストされているフィールドに正規表現のみを使用できることを示しています。
    • AND、OR 列の ! は、属性に前述の論理演算子のみを使用できることを示しています。
  • RHACS バージョン 列は、属性を使用する必要がある Red Hat Advanced Cluster Security for Kubernetes のバージョンを示します。
  • 論理組み合わせ演算子の AND および OR は、以下の属性には使用できません。

    • ブール値: true および false
    • 最小値セマンティクス。たとえば、以下のようになります。

      • 最小 RBAC パーミッション
      • イメージ作成からの日数
  • NOT 論理演算子は、以下の属性に使用できません。

    • ブール値: true および false
    • <><=>= 演算子など、比較をすでに使用している数値。
    • 複数の値を指定できる複合基準。たとえば、以下のようになります。

      • Dockerfile 行。命令と引数の両方が含まれます。
      • 環境変数。名前と値の両方で設定されます。
    • Add CapabilitiesDrop CapabilitiesDays since image was createdDays since image was last scanned などの他の意味。
注記

セキュリティーポリシーの作成に論理演算子 ANDORNOT を使用するには、Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.45 以降が必要です。ただし、以前のバージョンでは、正規表現の列に記載されているフィールドに 正規表現 を使用できます。

属性説明RHACS バージョン正規表現NOTAND, ORフェーズ

Namespace

namespace の名前。

3.0.51 以降

デプロイ

Image Registry

イメージレジストリーの名前。

すべて

デプロイ

Image Remote

library/nginx など、レジストリー内のイメージのフルネーム。

すべて

デプロイ

Image Tag

イメージの識別子。

すべて

デプロイ

Days since image was created

イメージ作成日からの日数。

すべて

ビルド

Days since image was last scanned

最後のイメージスキャンからの日数。

すべて

ビルド

Dockerfile Line

命令と引数の両方を含む、Dockerfile の特定の行。

すべて

! 値のみ

ビルド

Image is NOT Scanned

イメージにはスキャンデータは利用できません。

すべて

ビルド

CVSS

Common Vulnerability Scoring System は、スコアが > (指定された CVSS より大きい)、< (指定された CVSS より小さい)、または = (指定された CVSS と等しい) 脆弱性を持つイメージと照合するために使用します。

すべて

ビルド

Fixed By

イメージのフラグ付きの脆弱性を修正するパッケージのバージョン文字列。

すべて

ビルド

CVE

Common Vulnerabilities and Exposures。特定の CVE 番号で使用。

すべて

ビルド

Image Component

イメージに存在する特定のソフトウェアコンポーネントの名前とバージョン番号。

すべて

ビルド

Image OS

イメージのベースオペレーティングシステムの名前およびバージョン番号。

3.0.47 以降

ビルド

Environment Variable

名前または値で環境変数を確認します。

すべて

! キーと値のみ

デプロイ

Disallowed Annotation

指定された環境の Kubernetes リソースには存在できないアノテーション。

すべて

デプロイ

Disallowed Image Label

使用されていない Docker イメージラベルの有無を確認します。このポリシーは、デプロイメントのイメージに指定されたラベルがある場合にトリガーされます。キー および フィールドの両方に正規表現を使用して、ラベルを照合できます。Disallowed Image Label ポリシー基準は、Docker レジストリーと統合する場合にのみ適用されます。

3.0.40 以降

デプロイ

Required Image Label

必要な Docker イメージラベルが存在することを確認します。このポリシーは、デプロイメントのイメージに指定されたラベルがない場合にトリガーされます。キー および フィールドの両方に正規表現を使用して、ラベルを照合できます。Required Image Label ポリシー基準は、Docker レジストリーと統合する場合にのみ機能します。

3.0.40 以降

デプロイ

Required Label

Kubernetes で必要なラベルが存在するかどうかを確認します。

すべて

デプロイ

Required Annotation

Kubernetes に必要なアノテーションの有無を確認します。

すべて

デプロイ

Volume Name

ストレージの名前。

すべて

デプロイ

Volume Source

ボリュームがプロビジョニングされるフォームを示します。たとえば、persistentVolumeClaim または hostPath です。

すべて

デプロイ

Volume Destination

ボリュームがマウントされるパス。

すべて

デプロイ

Volume Type

ボリュームの種別を設定します。

すべて

デプロイ

Writable Volume

書き込み可能な状態でマウントされるボリューム。

すべて

デプロイ

Protocol

公開されるポートによって使用される TCP や UDP などのプロトコル。

すべて

デプロイ

Port

デプロイメントによって公開されるポート番号。

すべて

デプロイ

Privileged

特権付きの実行デプロイメント。

すべて

デプロイ

Read-Only Root Filesystem

root ファイルシステムで読み取り専用として設定したコンテナー。

すべて

デプロイ

Drop Capabilities

コンテナーからドロップする必要がある Linux 機能。たとえば、CAP_SETUID または CAP_NET_RAW です。

すべて

デプロイ

Add Capabilities

Raw パケットを送信したり、ファイルパーミッションをオーバーライドする機能など、コンテナーには追加できない Linux 機能。

すべて

デプロイ

プロセス名

デプロイメントで実行されるプロセスの名前。

すべて

ランタイム

Process Ancestor

デプロイメントで実行されるプロセスの親プロセスの名前。

すべて

ランタイム

Process Arguments

デプロイメントで実行されるプロセスのコマンド引数。

すべて

ランタイム

Process UID

デプロイメントで実行されるプロセスの UNIX ユーザー ID。

すべて

ランタイム

Port Exposure

ロードバランサーやノードポートなど、サービスの公開方法。

すべて

デプロイ

Service Account

サービスアカウントの名前

すべて

デプロイ

Writable Host Mount

リソースが、書き込みパーミッションのあるホストにパスをマウントしている。

すべて

デプロイ

Unexpected Process Executed

デプロイメントにあるロックされたプロセスベースラインで、プロセス実行が一覧表示されていないデプロイメントを確認します。

すべて

ランタイム

Minimum RBAC Permissions

デプロイメントの Kubernetes サービスアカウントに、指定のレベル以上 (= または >) の Kubernetes RBAC パーミッションレベルがあるかどうかを照合します。

すべて

デプロイ

Container Name

コンテナーの名前。

3.0.52 以降

デプロイ

Container CPU Request

特定のリソース用に予約されているコア数を確認します。

すべて

デプロイ

Container CPU Limit

リソースが使用できるコアの最大数を確認します。

すべて

デプロイ

Container Memory Request

特定のリソース用に予約されているメモリー量を確認します。

すべて

デプロイ

Container Memory Limit

リソースが使用できるメモリーの最大量を確認します。

すべて

デプロイ

Kubernetes Action

Pod Exec などの Kubernetes アクションの名前。

3.0.55 以降

!OR のみ

ランタイム

Kubernetes Resource

configmaps または secrets などのアクセスされた Kubernetes リソースの名前。

3.63 以降

!OR のみ

ランタイム

Kubernetes Resource Name

アクセスされた Kubernetes リソースの名前。

3.63 以降

!OR のみ

ランタイム

Kubernetes API Verb

GETPOST などのリソースへのアクセスに使用される Kubernetes API 動詞。

3.63 以降

!OR のみ

ランタイム

Kubernetes User Name

リソースにアクセスしたユーザーの名前。

3.63 以降

!OR のみ

ランタイム

Kubernetes User Group

リソースにアクセスしたユーザーが属するグループの名前。

3.63 以降

!OR のみ

ランタイム

User Agent

ユーザーがリソースへのアクセスに使用したユーザーエージェント。例: oc、または kubectl

3.63 以降

!OR のみ

ランタイム

Source IP Address

ユーザーがリソースにアクセスした IP アドレス。

3.63 以降

!OR のみ

ランタイム

Is Impersonated User

サービスアカウントまたは他のアカウントで権限を偽装ユーザーによって要求が行われたかどうかを確認します。

3.63 以降

ランタイム

Runtime Class

デプロイメントの RuntimeClass。

3.67 以降

デプロイ

Automount Service Account Token

デプロイメント設定がサービスアカウントトークンを自動的にマウントするかどうかを確認します。

3.68 以降

デプロイ

Liveness Probe

コンテナーが liveness プローブを定義するかどうか。

3.69 以降

デプロイ

Readiness Probe

コンテナーが readiness プローブを定義するかどうか。

3.69 以降

デプロイ

Replicas

デプロイメントレプリカの数。

3.69 以降

デプロイ

Privilege escalation

コンテナープロセスで親プロセスよりも多くの権限を取得できるように設定された場合に、アラートを出します。

3.70 以降

デプロイ

Ingress Network Policy

Ingress Kubernetes ネットワークポリシーの有無を確認します。

3.70 以降

デプロイ

Egress Network Policy

egress Kubernetes ネットワークポリシーの有無を確認します。

3.70 以降

デプロイ

信頼できるイメージ署名によって検証されない

イメージの署名を検証するために使用できる署名統合のリスト。署名がないか、提供された署名統合の少なくとも 1 つによって署名が検証できないイメージに関するアラートを作成します。

3.70 以降

!OR のみ

デプロイ

注記

Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.44 以前を使用している場合に、Policy criteria セクションで指定するポリシー基準は AND が指定されています。これは、指定されたすべてのポリシー基準が一致する場合にのみ違反が発生することを意味します。

5.4.3.1. ポリシー基準への論理条件の追加

ドラッグアンドドロップポリシーフィールドパネルを使用して、ポリシー基準に論理条件を指定できます。

前提条件

  • Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.45 以降を使用している。

手順

  1. Policy criteria セクションで、Add a new condition を選択して、新しいポリシーセクションを追加します。

    • Edit アイコンをクリックして、ポリシーセクションの名前を変更できます。
    • Drag out a policy field セクションには、複数のカテゴリーで利用可能なポリシー条件が一覧表示されます。これらのカテゴリーを展開したり折りたたんだりして、ポリシー基準属性を表示できます。
  2. policy セクションの Drop a policy field エリアに属性をドラッグします。
  3. 選択する属性のタイプに応じて、選択した属性の条件を設定するオプションが異なります。以下に例を示します。

    • ブール値が Read-Only Root Filesystem の属性を選択すると、READ-ONLY オプションおよび WRITABLE オプションが表示されます。
    • 環境変数 が複合値の属性を選択すると、KeyValue、および Value From フィールドの値を入力するオプションと、利用可能なオプションの他の値を追加するアイコンが表示されます。

      1. 属性に複数の値を組み合わせるには、Add アイコンをクリックします。
      2. ポリシーセクションで一覧表示されている論理演算子 AND または OR をクリックして、AND 演算子と OR 演算子を切り替えることもできます。演算子間の切り替えは、ポリシーセクション内でのみ機能し、2 つの異なるポリシーセクション間では機能しません。
  4. これらの手順を繰り返して、複数の AND および OR 条件を指定できます。追加した属性の条件を設定したら、Next をクリックしてポリシーの作成を続行します。

5.5. セキュリティーポリシーの共有

Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.44 以降、ポリシーをエクスポートおよびインポートして、異なる Central インスタンス間でセキュリティーポリシーを共有できます。これは、すべてのクラスターに同じ標準を有効にするのに役立ちます。ポリシーを共有するには、JSON ファイルとしてエクスポートして、別の Central インスタンスにインポートし直す必要があります。

注記

現在、RHACS ポータルを使用して、複数のセキュリティーポリシーを一度にエクスポートすることはできません。ただし、API を使用して複数のセキュリティーポリシーをエクスポートできます。RHACS ポータルで HelpAPI reference に移動し、API リファレンスを確認します。

5.5.1. セキュリティーポリシーのエクスポート

ポリシーをエクスポートすると、ポリシーの内容だけでなく、クラスターの範囲、クラスターの除外、および設定されたすべての通知も含まれます。

手順

  1. RHACS ポータルで、Platform ConfigurationPolicies に移動します。
  2. Policies ページから、編集するポリシーを選択します。
  3. ActionsExport policy to JSON を選択します。

5.5.2. セキュリティーポリシーのインポート

RHACS ポータルの システム ポリシービューからセキュリティーポリシーをインポートできます。

手順

  1. RHACS ポータルで、Platform ConfigurationPolicies に移動します。
  2. Import policy をクリックします。
  3. Import policy JSON ダイアログで Upload をクリックし、アップロードする JSON ファイルを選択します。
  4. Begin import をクリックします。

Red Hat Advanced Cluster Security for Kubernetes の各セキュリティーポリシーには、一意の ID(UID) と一意の名前があります。ポリシーをインポートすると、Red Hat Advanced Cluster Security for Kubernetes は以下のようにアップロードしたポリシーを処理します。

  • インポートされたポリシーの UID と名前が既存のポリシーに一致しない場合は、Red Hat Advanced Cluster Security for Kubernetes が新しいポリシーを作成します。
  • インポートされたポリシーで、既存のポリシーと同じ UID が設定されているが、別の名前の場合には、以下のいずれかを実行できます。

    • 両方のポリシーを保持する。Red Hat Advanced Cluster Security for Kubernetes は、インポートされたポリシーを新しい UID に保存します。
    • 既存のポリシーをインポートされたポリシーに置き換える。
  • インポートされたポリシーの名前が既存のポリシーと同じものの、UID が異なる場合は、以下のいずれかを実行できます。

    • インポートされたポリシーの新しい名前を指定して、両方のポリシーを保持する。
    • 既存のポリシーをインポートされたポリシーに置き換える。
  • インポートされたポリシーの名前が既存のポリシーと同じ場合、Red Hat Advanced Cluster Security for Kubernetes はポリシー条件が既存のポリシーに一致するかどうかを確認します。ポリシー基準が一致する場合には、Red Hat Advanced Cluster Security for Kubernetes は既存のポリシーを維持し、成功メッセージを表示します。ポリシー基準が一致しない場合は、以下のいずれかを実行できます。

    • インポートされたポリシーの新しい名前を指定して、両方のポリシーを保持する。
    • 既存のポリシーをインポートされたポリシーに置き換える。
重要
  • 同じ Central インスタンスにインポートする場合に、Red Hat Advanced Cluster Security for Kubernetes はエクスポートされたフィールドをすべて使用します。
  • 別の Central インスタンスにインポートする場合には、Red Hat Advanced Cluster Security for Kubernetes はクラスタースコープ、クラスターの除外、通知などの特定のフィールドを省略します。Red Hat Advanced Cluster Security for Kubernetes は、メッセージにこれらの省略フィールドを表示します。これらのフィールドはインストールごとに異なりますが、フィールドを別の Central インスタンスに移行することはできません。

第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. 設定の更新 をクリックして変更を保存します。

6.2. ネットワークポリシーのシミュレーション

現在のネットワークポリシーでは、不要なネットワーク通信が許可される可能性があります。新しいネットワークポリシーのセットの影響をシミュレートするには、ネットワークポリシーシミュレーターを使用します。

手順

  1. RHACS ポータルの左側のナビゲーションメニューから Network Graph を選択します。
  2. namespace を 1 つ以上選択します。
  3. Network Graph ビューで、Network Policy Simulator を選択します。
  4. Upload and simulate network policy YAML を選択し、提案の YAML ファイルをアップロードします。ネットワークグラフビューには、提案されたネットワークポリシーが何を達成するかが表示されます。
  5. 提案されたポリシーをチームと共有するには、Share YAML を選択します。ポリシーを直接適用するには、Apply Network Policies を選択します。
警告

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

6.3. ネットワークポリシーの生成

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

これらのネットワークポリシーは YAML 設定ファイルです。通常、ネットワークフローに関するインサイトを得て、手動でこれらのファイルを作成するのは困難です。Red Hat Advanced Cluster Security for Kubernetes では、お使いの環境で実際に確認されたネットワーク通信フローに基づいて、これらのネットワークポリシーを自動生成できます。

ネットワークグラフビューからネットワークポリシーを生成できます。

生成されたポリシーは、ネットワークグラフに表示されるデプロイメントに適用され、選択した時間に確認されたすべてのネットワークトラフィックを許可します。

手順

  1. RHACS ポータルの左側のナビゲーションメニューから Network Graph を選択します。
  2. 正しいクラスター名がまだ選択されていない場合は、上部のバーのメニューからクラスター名を選択します。
  3. namespace を 1 つ以上選択します。
  4. 一部のデプロイメントに対してのみポリシーを生成する場合は、Add one or more deployment filters フィールドを使用して、デプロイメントをフィルターする基準を追加します。フィルターを追加しない場合には、Red Hat Advanced Cluster Security for Kubernetes はクラスター内のすべてのデプロイメントのポリシーを生成します。
  5. 上部のバーのメニューから適切な時間を選択します。選択した時間が短すぎると、定期的なネットワーク通信または頻度が低いネットワーク通信が残されます。
  6. Network Policy Simulator を選択します。
  7. 開いたパネルで、Red Hat Advanced Cluster Security for Kubernetes で生成されたポリシーでポートとプロトコルのスコープを設定しない場合は、Exclude ports & protocols を選択します。
  8. Generate and simulate network policies を選択します。生成されたネットワークポリシー設定 YAML が同じパネルで開き、ネットワークグラフにポリシーの効果が表示されます。

6.3.1. 生成されたポリシーの保存

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

手順

  • Network Policy Simulator パネルの Download YAML アイコンを選択します。

6.3.2. 生成されたポリシーのテスト

Red Hat Advanced Cluster Security for Kubernetes が生成するネットワークポリシーをダウンロードした後に、それらをクラスターに適用してテストできます。

手順

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

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

    $ oc delete -f "StackRox Generated.yaml" 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl と入力します。

6.3.3. 生成されたポリシーの適用

RHACS ポータルから生成されたネットワークポリシーを適用できます。

手順

  • Red Hat Advanced Cluster Security for Kubernetes 内からクラスターで生成されたポリシーを直接適用するには、Apply Network Policies を選択します。
警告

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

6.3.4. 生成されたポリシーの削除

生成されたポリシーを直接適用して削除する場合は、Network Policy Simulator パネルの Revert most recently applied YAML アイコンを選択します。

手順

  1. RHACS ポータルの左側のナビゲーションメニューから Network Graph を選択します。
  2. 正しいクラスター名がまだ選択されていない場合は、上部のバーのメニューからクラスター名を選択します。
  3. namespace を 1 つ以上選択します。
  4. Network Policy Simulator を選択します。
  5. View active YAMLS を選択します。
  6. Revert most recently applied YAML アイコンを再度選択します。

6.3.5. 自動生成されるすべてのポリシーの削除

Red Hat Advanced Cluster Security for Kubernetes を使用して作成したクラスターから生成されたポリシーをすべて削除できます。

手順

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

    • OpenShift Container Platform

      $ oc get ns -o jsonpath='{.items[*].metadata.name}' | xargs -n 1 oc delete networkpolicies -l 'network-policy-generator.stackrox.io/generated=true' -n
    • Kubernetes の場合:

      $ kubectl get ns -o jsonpath='{.items[*].metadata.name}' | xargs -n 1 kubectl delete networkpolicies -l 'network-policy-generator.stackrox.io/generated=true' -n

6.3.6. ポリシー生成ストラテジー

ネットワークポリシーを自動生成した場合:

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

    • デプロイメントにネットワークポリシーがすでにある場合には、Red Hat Advanced Cluster Security for Kubernetes は新しいポリシーを生成したり、既存のポリシーを削除したりしません。
  • 生成されたポリシーは、トラフィックを既存のデプロイメントに制限するだけです。

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

    • デプロイメントに、選択した時間内にクラスターの外部からの着信接続がある場合。
    • デプロイメントがノードポートまたはロードバランサーサービス経由で公開されている場合。
  • Red Hat Advanced Cluster Security for Kubernetes は、受信接続があるすべてのデプロイメントに対して、1 つの ingress ルールを生成します。

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

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

6.4. ネットワークベースラインの使用

Red Hat Advanced Cluster Security for Kubernetes では、ネットワークベースラインを使用してリスクを最小限に抑えることができます。インフラストラクチャーをセキュアに保つためのプロアクティブなアプローチです。Red Hat Advanced Cluster Security for Kubernetes は、まず既存のネットワークフローを検出し、ベースラインを作成し、このベースライン以外でネットワークフローを異常として扱います。

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

Red Hat Advanced Cluster Security for Kubernetes をインストールすると、デフォルトのネットワークベースラインはありません。Red Hat Advanced Cluster Security for Kubernetes がネットワークフローを検出すると、ベースラインが作成され、検出されたすべてのネットワークフローが追加されます。

  • Red Hat Advanced Cluster Security for Kubernetes が新しいネットワークアクティビティーを検出すると、そのネットワークフローをネットワークベースラインに追加します。
  • ネットワークフローは、異常なフローとして表示されず、違反は発生しません。

検出フェーズ後:

  • Red Hat Advanced Cluster Security for Kubernetes は、ネットワークベースラインへのネットワークフローの追加を停止します。
  • 新しいネットワークフロー (ネットワークベースラインにない) は、異常なフローとして表示されますが、違反は発生しません。

6.4.1. ネットワークベースラインの表示

ネットワークグラフビューからネットワークベースラインを表示できます。

手順

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

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

6.4.2. ベースライン違反でのアラートの有効化

Red Hat Advanced Cluster Security for Kubernetes を設定して、異常なネットワークフローを検出し、違反をトリガーできます。

注記

ベースライン違反のアラートを有効にするには、Kubernetes バージョン 3.0.56 以降の Red Hat Advanced Cluster Security が必要です。

手順

  1. Network Graph ビューでデプロイメントを選択します。
  2. ネットワークフローの詳細パネルで Baseline Settings を選択します。
  3. Alert on baseline violations トグルをオンにします。

    • ベースライン違反のアラート をオンにすると、異常なネットワークフローが違反をトリガーします。
    • Alert on baseline violations トグルをオフにして、異常なネットワークフローの違反の受信を停止できます。

第7章 クラスター設定の確認

Configuration Management ビューを使用し、クラスター内のさまざまなエンティティー間の相関を理解してクラスター設定を効率的に管理する方法を説明します。

すべての OpenShift Container Platform クラスターには、クラスター全体に分散された異なるエンティティーが多数含まれているため、利用可能な情報を理解して操作することがより困難になります。

Red Hat Advanced Cluster Security for Kubernetes (RHACS) は、1 つのページでこれらの分散エンティティーをすべて組み合わせて、効率的な設定管理が実現できます。すべてのクラスター、名前空間、ノード、デプロイメント、イメージ、シークレット、ユーザー、グループ、サービスアカウント、およびロールに関する情報を 1 つの Configuration Management ビューにまとめ、さまざまなエンティティーとそれらの間の接続を視覚化するのに役立ちます。

7.1. Configuration Management ビューの使用

Configuration Management ビューを開くには、ナビゲーションメニューから Configuration Management を選択します。Dashboard と同様に、便利なウィジェットが表示されます。

これらのウィジェットは対話形式で、以下の情報が表示されます。

  • 重大度別のセキュリティーポリシー違反
  • CIS (Center for Information Security) Docker および Kubernetes ベンチマーク制御の状態
  • ほとんどのクラスターで管理者権限を持つユーザー
  • クラスターで最も広く使用されているシークレット

Configuration Management ビューのヘッダーには、クラスター内のポリシーおよび CIS コントロールの数が表示されます。

注記

ポリシー数とポリシーリストビューには、デプロイメントライフサイクルフェーズのポリシーのみが含まれます。

ヘッダーには、エンティティー間の切り替えを可能にするドロップダウンメニューが含まれます。たとえば、以下を実行できます。

  • Policies をクリックしてすべてのポリシーと重大度を表示するか、CIS Controls を選択してすべてのコントロールに関する詳細情報を表示します。
  • Application and Infrastructure をクリックし、クラスター、namespace、ノード、デプロイメント、イメージ、およびシークレットを選択して詳細情報を表示します。
  • RBAC Visibility and Configuration をクリックし、ユーザーおよびグループ、サービスアカウント、およびロールを選択して詳細情報を表示します。

7.2. Kubernetes ロールの設定ミスの特定

設定管理 ビューを使用して、cluster-admin ロールが付与されているユーザー、グループ、サービスアカウント、または誰にも付与されていないロールなど、潜在的な設定ミスを特定できます。

7.2.1. Kubernetes ロールの割り当ての検索

Configuration Management ビューを使用して、特定のユーザーおよびグループに割り当てられている Kubernetes ロールに関する情報を取得します。

手順

  1. RHACS ポータルに移動し、左側のナビゲーションメニューから Configuration Management をクリックします。
  2. Configuration Management ビューのヘッダーから RBAC Visibility and ConfigurationUsers and Groups を選択します。ユーザーとグループ ビューには、Kubernetes のユーザーとグループのリスト、割り当てられたロール、およびそれぞれに対して cluster-admin ロールが有効になっているかどうかが表示されます。
  3. ユーザーまたはグループを選択して、関連付けられたクラスターおよび namespace パーミッションの詳細を表示します。

7.2.2. サービスアカウントおよびそのパーミッションの検索

Configuration Management ビューを使用して、サービスアカウントが使用されている場所とそのパーミッションを確認します。

手順

  1. RHACS ポータルに移動し、左側のナビゲーションメニューから Configuration Management をクリックします。
  2. Configuration Management ビューのヘッダーから RBAC Visibility and ConfigurationService Accounts を選択します。サービスアカウント ビューには、クラスター全体の Kubernetes サービスアカウントのリスト、割り当てられたロール、cluster-admin ロールが有効になっているかどうか、およびそれらを使用するデプロイが表示されます。
  3. 行または下線付きのリンクを選択して、選択したサービスアカウントに付与されているクラスターと namespace のパーミッションなどの詳細を表示します。

7.2.3. 未使用の Kubernetes ロールの検索

Configuration Management ビューを使用して、Kubernetes ロールの詳細情報を取得し、未使用のロールを検索します。

手順

  1. RHACS ポータルに移動し、左側のナビゲーションメニューから Configuration Management をクリックします。
  2. Configuration Management ビューのヘッダーからRBAC Visibility and ConfigurationRoles を選択します。Roles ビューには、クラスター全体の Kubernetes ロールの一覧、付与するパーミッション、およびそれらが使用される場所が表示されます。
  3. ロールに関する詳細を表示するには、行またはインラインのリンクを選択します。
  4. ユーザー、グループ、またはサービスアカウントに付与されていないロールを検索するには、Users & Groups 列ヘッダーを選択します。次に、Shift キーを押しながら サービスアカウント 列ヘッダーを選択します。このリストには、ユーザー、グループ、またはサービスアカウントに付与されていないロールが表示されます。

7.3. Kubernetes シークレットの表示

環境で使用する Kubernetes Secret を表示し、それらのシークレットを使用してデプロイメントを特定します。

手順

  1. RHACS ポータルに移動し、左側のナビゲーションメニューから Configuration Management をクリックします。
  2. Secrets Most Used Across Deployments ウィジェットで View All を選択します。Secrets ビューには、Kubernetes Secret の一覧が表示されます。
  3. 詳細を表示する行を選択します。

使用できる情報を使用して、シークレットが不要なデプロイメントで使用されているかどうかを特定します。

7.4. ポリシー違反の検索

Configuration Management ビューの Policy Violations by Severity ウィジェットは、サンバーストチャートでポリシー違反を表示します。チャートの各レベルは、1 つのリングまたは円で表されます。

  • 最も内側の円は、違反の総数を表します。
  • 次のリングは、重大 のポリシーカテゴリーを表します。
  • 最も外側のリングは、特定のカテゴリーの個々のポリシーを表します。

Configuration Management ビューには、ライフサイクルステージDeploy に設定されているポリシーに関する情報のみが表示されます。これには、ランタイムの動作に対応するポリシーや、Build ステージの評価用に設定されたポリシーは含まれません。

手順

  1. RHACS ポータルに移動し、左側のナビゲーションメニューから Configuration Management をクリックします。
  2. Policy Violations by Severity で、サンバーストチャートにマウスを移動して、ポリシー違反の詳細を表示します。
  3. 優先度の高いポリシー違反に関する詳細情報を表示するには、高と評価された n を選択します.n は数値です。Policies ビューには、選択したカテゴリーでフィルターリングされたポリシー違反の一覧が表示されます。
  4. ポリシーの説明、修復、違反によるデプロイメントなどの詳細情報を表示します。詳細はパネルに表示されます。
  5. 情報パネルの Policy Findings セクションには、このような違反が発生したデプロイメントが一覧表示されます。
  6. Policy Findings セクションでデプロイメントを選択し、Kubernetes ラベル、アノテーション、サービスアカウントなどの関連する詳細を表示します。

詳細情報を使用して、違反の修復を計画することができます。

7.5. 失敗した CIS コントロールの検索

Configuration Management ビューの Policy Violations サンバーストチャートと同様に、CIS controls ウィジェットは、障害のある Center for Information Security (CIS) 制御に関する情報を表示します。

チャートの各レベルは、1 つのリングまたは円で表されます。

  • 最も内側の円は、失敗したコントロールの割合を表します。
  • 次のリングは、制御カテゴリーを表します。
  • 外部リングは、特定のカテゴリー内の個々のコントロールを表します。

手順

  1. CIS controls ウィジェットのヘッダーから CIS Docker v1.2.0 を選択します。これを使用して、CIS Docker コントロールと Kubernetes コントロールを切り替えます。
  2. サンバーストチャートにカーソルを合わせ、失敗した制御の詳細を表示します。
  3. n controls failing を選択します。n は数値で、失敗した制御に関する詳細情報を表示します。Controls ビューには、コンプライアンス状態に基づいてフィルターされる失敗した制御の一覧が表示されます。
  4. コントロールに失敗した制御の説明やノードなど、詳細情報を表示する行を選択します。
  5. 情報パネルの Control Findings セクションには、コントロールが失敗するノードが一覧表示されます。Kubernetes ラベル、アノテーション、その他のメタデータなど、詳細を表示する行を選択します。

詳細情報を使用して、ノード、業界標準、または障害のある制御にフォーカスできます。コンテナー化されたインフラストラクチャーのコンプライアンスステータスの評価、確認、およびレポートを実行することもできます。

第8章 イメージの脆弱性の調査

Red Hat Advanced Cluster Security for Kubernetes を使用すると、イメージに対して脆弱性の有無を分析できます。スキャナーは、すべてのイメージレイヤーを分析し、CVE (Common Vulnerabilities and Exposures) 一覧と比較して、既知の脆弱性をチェックします。

スキャナーが脆弱性を見つけた場合は、以下を行います。

  • Vulnerability Management ビューに表示して詳細分析ができるようにします。
  • リスクに応じて脆弱性をランク付けし、リスク評価のために RHACS ポータルでこれらの脆弱性をハイライトします。
  • 有効な security policies と比較して確認します。

スキャナーはイメージを検査し、イメージ内のファイルに基づいてインストールされたコンポーネントを特定します。次のファイルを削除するように最終的なイメージを変更すると、インストールされているコンポーネントまたは脆弱性を特定できない場合があります。

コンポーネントファイル

パッケージマネージャー

  • /etc/alpine-release
  • /etc/apt/sources.list
  • /etc/lsb-release
  • /etc/os-release または /usr/lib/os-release
  • /etc/oracle-release/etc/centos-release/etc/redhat-release、または /etc/system-release
  • その他の同様のシステムファイル。

言語レベルの依存関係

  • JavaScript の package.json
  • Python の場合は dist-info または egg-info です。
  • Java Archive(JAR)for Java Archive(JAR) の MANIFEST.MF

アプリケーションレベルの依存関係

  • dotnet/shared/Microsoft.AspNetCore.App/
  • dotnet/shared/Microsoft.NETCore.App/

8.1. イメージのスキャン

Central はイメージスキャン要求を Scanner に送信します。これらの要求を受信すると、スキャナーは関連するレジストリーからイメージレイヤーをプルし、イメージを確認して各レイヤーにインストールされているパッケージを識別します。次に、特定されたパッケージとプログラミング言語固有の依存関係を脆弱性一覧と比較して、情報を Central に送信します。

Red Hat Advanced Cluster Security for Kubernetes は、別の脆弱性スキャナーと統合することもできます。

スキャナーは、以下の脆弱性を特定します。

  • ベースイメージのオペレーティングシステム
  • パッケージマネージャーによりインストールされるパッケージ
  • プログラミング言語固有の依存関係
  • プログラミングランタイムとフレームワーク

サポート対象のパッケージ形式

スキャナーは、以下のパッケージ形式を使用するイメージの脆弱性の有無を確認できます。

  • yum
  • microdnf
  • apt
  • apk
  • dpkg
  • RPM

サポート対象のプログラミング言語

Scanner は、次のプログラミング言語の依存関係の脆弱性をチェックできます。

  • Java
  • JavaScript
  • Python
  • Ruby

サポート対象のランタイムおよびフレームワーク

Red Hat Advanced Cluster Security for Kubernetes 3.0.50(Scanner バージョン 2.5.0) から、スキャナーは以下の開発者プラットフォームの脆弱性を特定します。

  • .NET Core
  • ASP.NET Core

サポート対象オペレーティングシステム

このセクションにリストされているサポート対象のプラットフォームは、Scanner で脆弱性が特定されるディストリビューションで、Red Hat Advanced Cluster Security for Kubernetes をインストールできるサポート対象のプラットフォームとは異なります。

Scanner は、以下の Linux ディストリビューションを含むイメージの脆弱性を特定します。

ディストリビューションバージョン

Alpine Linux

alpine:v3.2, alpine:v3.3, alpine:v3.4, alpine:v3.5, alpine:v3.6, alpine:v3.7, alpine:v3.8, alpine:v3.9, alpine:v3.10, alpine:v3.11, alpine:v3.12, alpine:v3.13, alpine:v3.14, alpine:v3.15, alpine:v3.16, alpine:edge

Amazon Linux

amzn:2018.03, amzn:2

CentOS

centos:6,centos:7,centos:8

Debian

debian:9, debian:10, debian:11, debian:unstable

Red Hat Enterprise Linux (RHEL)

rhel:6, rhel:7, rhel:8

Ubuntu

ubuntu:14.04, ubuntu:16.04, ubuntu:18.04, ubuntu:20.04, ubuntu:21.10, ubuntu:22.04

注記
  • Fedora は脆弱性データベースを管理していないため、Scanner は Fedora オペレーティングシステムをサポートしていません。ただし、Scanner は Fedora ベースのイメージで言語固有の脆弱性を検出します。
  • Scanner は、以下のイメージの脆弱性も特定します。ただし、脆弱性ソースはベンダーで更新されなくなりました。

    ディストリビューションバージョン

    Debian

    debian:8

    Ubuntu

    ubuntu:12.04, ubuntu:12.10, ubuntu:13.04, ubuntu:14.10, ubuntu:15.04, ubuntu::15.10, ubuntu::16.10, ubuntu:17.04, ubuntu:17.10, ubuntu:18.10, ubuntu:19.04, ubuntu:19.10, ubuntu:20.10, ubuntu:21.04

8.2. イメージの定期的なスキャン

Red Hat Advanced Cluster Security for Kubernetes はアクティブなイメージを定期的にスキャンし、イメージスキャン結果を更新して最新の脆弱性定義を反映します。アクティブなイメージは、お使いの環境にデプロイしたイメージです。

注記

Red Hat Advanced Cluster Security for Kubernetes 3.0.57 から、イメージの ウォッチ 設定を指定して、アクティブではないイメージの自動スキャンを有効にできます。

Central は、Scanner またはその他の統合イメージスキャナーからすべてのアクティブなイメージスキャンの結果をフェッチし、その結果を 4 時間ごとに更新します。

roxctl CLI を使用して、オンデマンドでイメージスキャンの結果を確認することもできます。

8.3. アクティブではないイメージのスキャン

Red Hat Advanced Cluster Security for Kubernetes は、4 時間ごとにアクティブな (デプロイされた) イメージをすべてスキャンし、イメージスキャンの結果を更新して最新の脆弱性定義を反映します。

また、Red Hat Advanced Cluster Security for Kubernetes を設定して、アクティブではない (デプロイされていない) イメージを自動的にスキャンすることもできます。

手順

  1. Vulnerability Management ビューヘッダーで Images を選択し、すべてのイメージの一覧を表示します。
  2. Images ビューヘッダーで、Watch Images を選択します。
  3. Manage Inactive Images ダイアログで、有効化する (イメージ ID ではなく) アクティブではないイメージの名前を入力します。
  4. Add Image を選択します。次に、Red Hat Advanced Cluster Security for Kubernetes はイメージをスキャンし、エラーまたは成功のメッセージが表示されます。
  5. Return to Image list を選択して、Images ビューを表示します。

8.4. 脆弱性定義のフェッチ

オンラインモードでは、Central が 1 つのフィードから 5 分ごとに脆弱性定義を取得します。このフィードは、複数の Linux ディストリビューションと National Vulnerability Database を含むアップストリームソースからの脆弱性定義を組み合わせており、1 時間ごとに更新されます。

  • フィードのアドレスは https://definitions.stackrox.io です。
  • ROX_SCANNER_VULN_UPDATE_INTERVAL 環境変数を設定して、デフォルトのクエリー頻度を変更できます。

    $ oc -n stackrox set env deploy/central ROX_SCANNER_VULN_UPDATE_INTERVAL=<value> 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl と入力します。
注記

スキャナーの設定マップには、スキャナーの更新頻度を設定するための updater.interval パラメーターがまだありますが、fetchFromCentral パラメーターは含まれなくなりました。

8.5. 脆弱性スコアについて

RHACS ポータルでは、脆弱性ごとに単一の Common Vulnerability Scoring System (CVSS) ベーススコアを表示します。Red Hat Advanced Cluster Security for Kubernetes では、以下の基準に基づいて CVSS スコアが表示されます。

  • CVSS v3 スコアが利用可能な場合には、Red Hat Advanced Cluster Security for Kubernetes はスコアを表示し、v3 をそのスコアと共に一覧表示します。例: 6.5(v3)

    注記

    CVSS v3 スコアは、スキャナーバージョン 1.3.5 以降を使用している場合にのみ利用できます。

  • CVSS v3 スコアが利用できない場合には、Red Hat Advanced Cluster Security for Kubernetes は CVSS v2 スコアのみを表示します。(例: 6.5)。

API を使用して CVSS スコアを取得できます。CVSS v3 情報が Common Vulnerabilities and Exposures (CVE) で利用可能な場合に、応答には CVSS v3 および CVSS v2 の両方の情報が含まれます。

CVE によっては、Red Hat Security Advisory (RHSA) CVSS スコアが、RHACS ポータルに表示される CVSS スコアとは異なる場合があります。この違いの原因として、1 つの RHSA に複数の CVE が含まれており、Red Hat は脆弱性が他の Red Hat 製品にどのような影響を与えるかに基づいて異なるスコアを割り当てる可能性があることが挙げられます。

このような場合には、Red Hat Advanced Cluster Security for Kubernetes は以下を行います。

  • National Vulnerability Database (NVD) から最も高い CVE を見つけ、RHSA の CVSS スコアとしてそのスコアを表示します。
  • RHSA 内の各 CVE を、(NVD からの) 元の CVSS スコアを持つ個別の脆弱性として分類し、それぞれを表示して特定の CVE のポリシーを作成できるようにします。

8.5.1. 関連情報

8.6. 環境におけるイメージの表示

Red Hat Advanced Cluster Security for Kubernetes を使用すると、クラスター内のすべてのコンテナーイメージの詳細を表示できます。

手順

  1. RHACS ポータルに移動し、左側のナビゲーションメニューから Vulnerability Management をクリックします。
  2. クラスター内のすべてのイメージの詳細を表示するには、Vulnerability Management ビューヘッダーで Images を選択します。

8.7. イメージの Dockerfile の表示

Vulnerability Management ビューを使用して、イメージの脆弱性の根本的な原因を検索します。Dockerfile を表示して、Dockerfile 内のどのコマンドが脆弱性を導入したか、およびその単一のコマンドに関連付けられているすべてのコンポーネントを正確に見つけることができます。

Dockerfile タブには、以下の情報が表示されます。

  • Dockerfile のすべてのレイヤー
  • 各レイヤーの命令とその値
  • 各レイヤーに含まれるコンポーネント
  • 各レイヤーのコンポーネントの CVE 数

特定のレイヤーで導入されたコンポーネントがある場合は、展開アイコンを選択してコンポーネントの概要を表示できます。これらのコンポーネントに CVE がある場合は、個別のコンポーネントの展開アイコンを選択して、そのコンポーネントに影響を与える CVE の詳細を取得できます。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Top Riskiest Images ウィジェットからイメージを選択します。
  3. Image の詳細ビューで、Image Findings セクションの下にある Dockerfile タブを選択します。

8.8. 脆弱性のあるコンテナーイメージ層の特定

Vulnerability Management ビューを使用して、脆弱なコンポーネントと、そのコンポーネントが表示されるイメージ層を特定します。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Top Riskiest Images ウィジェットからイメージを選択します。
  3. Image の詳細ビューで、Image Findings セクションの下にある Dockerfile タブを選択します。
  4. Image Findings セクションの Dockerfile タブで、展開アイコンを選択して、イメージコンポーネントの概要を表示します。
  5. 特定のコンポーネントの展開アイコンを選択して、選択したコンポーネントに影響する CVE の詳細を取得します。

8.9. ベースイメージのオペレーティングシステムの特定

Vulnerability Management ビューを使用して、ベースイメージのオペレーティングシステムを特定します。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Vulnerability Management ビューヘッダーから Images を選択します。
  3. Image OS 列の下に、すべてのイメージのベースオペレーティングシステム (OS) および OS バージョンを表示します。
  4. イメージを選択して、その詳細を表示します。ベースオペレーティングシステムは、Image SummaryDetails and Metadata セクションでも利用できます。
注記

Red Hat Advanced Cluster Security for Kubernetes は、以下のいずれかの場合に、Image OSunknown として一覧表示します。

  • オペレーティングシステム情報が利用できない場合、または
  • 使用中のイメージスキャナーでこの情報が提供されない場合。

Docker Trusted Registry、Google Container Registry、および Anchore では、この情報を提供されません。

8.10. 言語固有の脆弱性スキャンの無効化

スキャナーは、デフォルトでプログラミング言語固有の依存関係の脆弱性を特定します。言語固有の依存関係スキャンを無効にすることができます。

手順

  • 言語固有の脆弱性スキャンを無効にするには、以下のコマンドを実行します。

    $ oc -n stackrox set env deploy/scanner \ 1
      ROX_LANGUAGE_VULNS=false 2
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl と入力します。
    2
    Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.47 以前を使用している場合は、環境変数名 ROX_LANGUAGE_VULNS を、LANGUAGE_VULNS に置き換えます。

8.11. 関連情報

  • CVE (Common Vulnerabilities and Exposures) の詳細は、Red Hat CVE Database を参照してください。

第9章 イメージの署名の確認

Red Hat Advanced Cluster Security for Kubernetes (RHACS) を使用して、事前に設定されたキーに対してイメージ署名を検証することで、クラスター内のコンテナーイメージの整合性を確保できます。

署名されていないイメージや署名が確認されていないイメージをブロックするポリシーを作成できます。RHACS 受付コントローラーを使用してポリシーを適用し、不正なデプロイメントの作成を停止することもできます。

注記
  • RHACS 3.70 は、Cosign 署名および Cosign 公開鍵署名の検証のみをサポートします。Cosign の詳細は、Cosign overview を参照してください。
  • 署名の検証には、1 つ以上の Cosign 公開鍵との署名統合を設定する必要があります。
  • すべてのデプロイおよび監視されたイメージに対して以下を実行します。

    • RHACS は署名を 4 時間ごとに取得および検証します。
    • RHACS は、署名インテグレーションの公開鍵を変更または更新するたびに署名を検証します。

9.1. 署名統合の設定

イメージ署名の検証を実行する前に、最初に RHACS に Cosign 公開鍵を追加する必要があります。

前提条件

  • PEM でエンコードされた Cosign 公開鍵がすでに存在している必要があります。Cosign の詳細は、Cosign overview を参照してください。

手順

  1. RHACS ポータルで、Platform ConfigurationIntegrations を選択します。
  2. Signature Integrations セクションまで下方向にスクロールし、Signature クリックします。
  3. New integration をクリックします。
  4. Integration name の名前を入力します。
  5. CosignAdd a new public key をクリックします。
  6. Public key 名を入力します。
  7. Public key value フィールドに、PEM でエンコードされた公開鍵を入力します。
  8. (オプション)Add a new public key をクリックして詳細を入力すると、複数のキーを追加できます。
  9. Save をクリックします。

9.2. ポリシーでの署名検証の使用

カスタムセキュリティーポリシーの作成時に、Trusted image signers ポリシー基準を使用してイメージ署名を検証できます。

前提条件

  • 最低でも 1 つ以上の Cosign 公開鍵で署名統合を設定している。

手順

  1. ポリシーの作成または編集時には、Policy criteria セクションのポリシーフィールドドロップ領域に、Not verified by trusted image signers ポリシー基準をドラッグします。
  2. Select をクリックします。
  3. 一覧から信頼されるイメージ署名を選択し、Save をクリックします。

9.3. 署名の検証の実施

ユーザーが署名されていないイメージを使用できないように、RHACS 受付コントローラーを使用して署名検証を有効にできます。最初に、クラスター設定で Contact Image Scanners 機能を有効にする必要があります。次に、セキュリティーポリシーを作成して署名の検証を強制する間に、Inform and enforce オプションを使用できます。

詳細は、受付コントローラーの適用の有効化 を参照してください。

第10章 脆弱性の管理

攻撃者は、環境のセキュリティーの脆弱性を悪用して、サービス拒否、リモートコード実行、機密データへの不正アクセスなどの不正なアクションを実行する可能性があります。したがって、脆弱性の管理は、Kubernetes セキュリティープログラムを成功させるための基本的なステップです。

10.1. 脆弱性管理プロセス

脆弱性管理は、脆弱性を特定して修復する継続的なプロセスです。Red Hat Advanced Cluster Security for Kubernetes は、脆弱性管理プロセスを容易にするのに役立ちます。

脆弱性管理プログラムには、多くの場合、以下の重要なタスクが含まれます。

  • アセット評価の実行
  • 脆弱性の優先順位付け
  • 露出の評価
  • 措置の実行
  • 継続的なアセットの再評価

Red Hat Advanced Cluster Security for Kubernetes は、組織が OpenShift Container Platform および Kubernetes クラスターで継続的な評価を実行するのに役立ちます。これにより、組織は、環境内の脆弱性に優先順位を付けて対処するために必要なコンテキスト情報をより効果的に提供できます。

10.1.1. アセット評価の実行

組織のアセットの評価を実行するには、以下のアクションが含まれます。

  • 環境内のアセットを特定する
  • これらのアセットをスキャンして既知の脆弱性を特定する
  • 環境内の脆弱性を影響を受けるステークホルダーに報告する

Kubernetes または OpenShift Container Platform クラスターに Red Hat Advanced Cluster Security for Kubernetes をインストールすると、最初にクラスター内で実行されているアセットが集約され、それらのアセットを識別しやすくなります。Red Hat Advanced Cluster Security for Kubernetes を使用すると、組織は OpenShift Container Platform および Kubernetes クラスターで継続的な評価を実行できます。これは、組織に、環境内の脆弱性に優先順位を付けてより効果的に対処するためのコンテキスト情報を提供します。

Red Hat Advanced Cluster Security for Kubernetes を使用して組織の脆弱性管理プロセスで監視する重要なアセットには、以下が含まれます。

  • コンポーネント: コンポーネントは、イメージの一部として使用したり、ノードで実行したりできるソフトウェアパッケージです。コンポーネントは、脆弱性が存在する最低レベルです。したがって、特定の方法でソフトウェアコンポーネントをアップグレード、変更、または削除して脆弱性を修正する必要があります。
  • イメージ: コードの実行可能な部分を実行するための環境を作成するソフトウェアコンポーネントおよびコードのコレクション。イメージでは、コンポーネントをアップグレードして脆弱性を修正できます。
  • ノード: OpenShift または Kubernetes および OpenShift Container Platform または Kubernetes サービスを設定するコンポーネントを使用してアプリケーションを管理し、実行するために使用されるサーバー。

Red Hat Advanced Cluster Security for Kubernetes は、これらのアセットを以下の構造にグループ化します。

  • デプロイ:1 つまたは複数のイメージに基づくコンテナーで Pod を実行できる Kubernetes のアプリケーションの定義。
  • 名前空間: アプリケーションをサポートおよび分離するデプロイメントなどのリソースのグループ。
  • クラスター: OpenShift または Kubernetes を使用してアプリケーションを実行するために使用されるノードのグループ。

Red Hat Advanced Cluster Security for Kubernetes は、既知の脆弱性についてアセットをスキャンし、CVE (Common Vulnerabilities and Exposures) データを使用して既知の脆弱性の影響を評価します。

10.1.1.1. アプリケーション脆弱性の表示

Red Hat Advanced Cluster Security for Kubernetes でアプリケーションの脆弱性を表示できます。

手順

  1. RHACS ポータルで、Vulnerability ManagementDashboard に移動します。
  2. Dashboard ビューヘッダーで、Application & InfrastructureNamespaces または Deployments を選択します。
  3. リストから、確認する Namespace または Deployment を検索し、選択します。
  4. アプリケーションの詳細を取得するには、右側の Related entities からエンティティーを選択します。

10.1.1.2. イメージ脆弱性の表示

Red Hat Advanced Cluster Security for Kubernetes でイメージの脆弱性を表示できます。

手順

  1. RHACS ポータルで、Vulnerability ManagementDashboard に移動します。
  2. Dashboard ビューヘッダーで、Images を選択します。
  3. イメージの一覧から、調査するイメージを選択します。次のいずれかの手順を実行して、リストをフィルタリングすることもできます。

    1. 検索バーに Image と入力して、Image 属性を選択します。
    2. 検索バーにイメージ名を入力します。
  4. イメージの詳細ビューで、リストされている CVE を確認し、影響を受けるコンポーネントに対処するためのアクションを優先的に実行します。
  5. 右側の Related entities から Components を選択し、選択したイメージの影響を受けるすべてのコンポーネントに関する詳細情報を取得します。または、特定の CVE の影響を受けるコンポーネントを見つけるには、Image findings セクションの Affected components 列から Components を選択します。

10.1.1.3. インフラストラクチャーの脆弱性の表示

Red Hat Advanced Cluster Security for Kubernetes を使用して、ノードで脆弱性を表示できます。

手順

  1. RHACS ポータルで、Vulnerability ManagementDashboard に移動します。
  2. Dashboard ビューヘッダーで、Application & InfrastructureCluster の順に選択します。
  3. クラスターの一覧から、調査するクラスターを選択します。
  4. クラスターの脆弱性を確認し、クラスター上の影響を受けるノードに対してアクションを実行することを優先します。

10.1.1.4. ノードの脆弱性の表示

Red Hat Advanced Cluster Security for Kubernetes を使用して、特定ノードで脆弱性を表示できます。

手順

  1. RHACS ポータルで、Vulnerability ManagementDashboard に移動します。
  2. Dashboard ビューヘッダーで、Nodes を選択します。
  3. ノードの一覧から、調査するノードを選択します。
  4. 選択したノードの脆弱性を確認し、アクションの実行に優先順位を付けます。
  5. 影響を受けるコンポーネントに関する詳細情報を取得するには、右側の Related entities から Components を選択します。

10.1.2. 脆弱性の優先順位付け

次の質問に答えて、アクションと調査のために環境の脆弱性に優先順位を付けます。

  • 影響を受けるアセットは、組織にとってどの程度重要ですか ?
  • 脆弱性の重大度がどの程度の場合に、調査の必要がありますか ?
  • 脆弱性は、影響を受けるソフトウェアコンポーネントのパッチで修正できますか ?
  • 脆弱性の存在は、組織のセキュリティーポリシーのいずれかに違反していますか ?

これらの質問への回答は、セキュリティーおよび開発チームが脆弱性の露出を測定する必要があるかどうかを判断します。

Red Hat Advanced Cluster Security for Kubernetes では、アプリケーションやコンポーネントの脆弱性を優先順位付けする手段を提供します。

10.1.3. 露出の評価

脆弱性の露出を評価するには、以下の質問に回答してください。

  • アプリケーションは脆弱性の影響を受けますか ?
  • 脆弱性は他の要因によって軽減されていますか ?
  • この脆弱性の悪用につながる可能性のある既知の脅威はありますか ?
  • 脆弱性のあるソフトウェアパッケージを使用していますか ?
  • 特定の脆弱性およびソフトウェアパッケージに時間を割くことに価値はありますか ?

評価に基づいて、以下のアクションを実行します。

  • 脆弱性が公開されていないか、または脆弱性がお使いの環境に適用されないと判断した場合は、脆弱性を誤検出としてマークすることを検討してください。
  • リスクにさらされた場合は、そのリスクの修正、軽減、または受け入れることを希望するかを検討してください。
  • 攻撃対象領域を減らすためにソフトウェアパッケージを削除または変更するかどうかを検討してください。

10.1.4. 措置の実行

脆弱性に対するアクションを実行することを決定したら、次のいずれかのアクションを実行できます。

  • 脆弱性を修正する
  • リスクを軽減して受け入れる
  • リスクを受け入れる
  • 脆弱性を誤検出としてマークする

以下のアクションのいずれかを実行すると、脆弱性を修復できます。

  • ソフトウェアパッケージを削除する
  • ソフトウェアパッケージを脆弱性のないバージョンに更新する

10.1.4.1. 新しいコンポーネントバージョンの検索

以下の手順では、アップグレード先のコンポーネントのバージョンを見つけます。

手順

  1. RHACS ポータルで、Vulnerability ManagementDashboard に移動します。
  2. Dashboard ビューヘッダーで、Images を選択します。
  3. イメージの一覧から、すでに評価したイメージを選択します。
  4. Image findings セクションで CVE を選択します。
  5. アクションを実行する CVE の影響を受けるコンポーネントを選択します。
  6. CVE が修正されているコンポーネントのバージョンを確認し、イメージを更新します。

10.1.5. リスクの受け入れ

このセクションの手順に従って、Red Hat Advanced Cluster Security for Kubernetes のリスクを受け入れます。

前提条件

  • VulnerabilityManagementRequests リソースの 書き込み パーミッションが必要です。

軽減策の有無に関わらずリスクを受け入れるには、以下を実行します。

手順

  1. RHACS ポータルで、Vulnerability ManagementDashboard に移動します。
  2. Dashboard ビューヘッダーで、Images を選択します。
  3. イメージの一覧から、すでに評価したイメージを選択します。
  4. アクションを実行する CVE を一覧表示する行を見つけます。
  5. 特定した CVE の右側にある kebab をクリックし、Defer CVE をクリックします。
  6. CVE を延期する日時を選択します。
  7. 選択したイメージタグの CVE またはこのイメージのすべてのタグを延期するかどうかを選択します。
  8. 延期の理由を入力します。
  9. Request approval をクリックします。CVE の右側にある青い情報アイコンを選択し、承認リンクをコピーして組織の延期承認者と共有します。

10.1.5.1. 脆弱性を誤検出としてのマーク付け

以下の手順では、脆弱性を誤検出としてマークします。

前提条件

  • VulnerabilityManagementRequests リソースの 書き込み パーミッションが必要です。

手順

  1. RHACS ポータルで、Vulnerability ManagementDashboard に移動します。
  2. Dashboard ビューヘッダーで、Images を選択します。
  3. イメージの一覧から、すでに評価したイメージを選択します。
  4. アクションを実行する CVE を一覧表示する行を見つけます。
  5. 特定した CVE の右側にある kebab をクリックし、Defer CVE をクリックします。
  6. CVE を延期する日時を選択します。
  7. 選択したイメージタグの CVE またはこのイメージのすべてのタグを延期するかどうかを選択します。
  8. 延期の理由を入力します。
  9. Request approval をクリックします。
  10. CVE の右側にある青い情報アイコンを選択し、承認リンクをコピーして組織の延期承認者と共有します。

10.1.5.2. 誤検出または延期された CVE のレビュー

以下の手順に従って、誤検出または遅延した CVE を確認します。

前提条件

  • VulnerabilityManagementApprovals リソースの 書き込み パーミッションが必要です。

誤検出または延期された CVE を確認できます。

手順

  1. ブラウザーまたは RHACS ポータルで承認リンクを開きます。
  2. Vulnerability ManagementRisk Acceptance に移動して、CVE を検索します。
  3. 脆弱性の範囲およびアクションを確認し、承認するかどうかを決定します。
  4. CVE の右端にある kebab をクリックし、承認のリクエストを承認または拒否します。

10.1.6. チームへの脆弱性の報告

組織は脆弱性を絶えず再評価して報告する必要があるため、脆弱性管理プロセスを支援するために主要な利害関係者へのコミュニケーションをスケジュールすることが役立つと考える組織もあります。

Red Hat Advanced Cluster Security for Kubernetes を使用して、このように繰り返し発生する電子メールによるコミュニケーションスケジュールを作成できます。これらのコミュニケーションは、主要な利害関係者が必要とする最も関連性の高い情報に限定する必要があります。

これらの連絡を送信するには、次の質問を考慮する必要があります。

  • 利害関係者とコミュニケーションをとるときに最も影響を与えるスケジュールは何ですか ?
  • 誰が対象者となりますか ?
  • レポートで特定の重大度の脆弱性のみを送信する必要がありますか ?
  • レポートで修正可能な脆弱性のみを送信する必要がありますか ?

10.1.6.1. 脆弱性管理レポートのスケジュール

次の手順では、スケジュールされた脆弱性レポートを作成します。

手順

  1. RHACS ポータルで、Vulnerability ManagementReporting に移動します。
  2. レポートの作成 をクリックします。
  3. Report name フィールドにレポートの名前を入力します。
  4. Repeat report…​の下で、レポートの週または月ごとの頻度を選択します。
  5. レポートの Description を入力します。
  6. 修正可能な脆弱性、特定の重大度の脆弱性、または最後にスケジュールされたレポート以降にのみ発生した脆弱性を報告するかどうかを選択して、レポートの範囲を選択します。
  7. Configure resource scope については、脆弱性が適用されるリソースの範囲を選択します。
  8. メール通知機能を選択または作成して、メールでレポートを送信し、Notification and distribution の下でディストリビューション一覧を設定します。
  9. Create を選択してレポートをスケジュールします。

10.1.6.2. 脆弱性レポートの送信

以下の手順では、脆弱性レポートを送信します。

手順

  1. RHACS ポータルで、Vulnerability ManagementReporting に移動します。
  2. レポートの一覧から、レポートを選択します。
  3. レポートの右側にある kebab を選択し、Run report now をクリックします。

10.1.6.3. 脆弱性レポートの編集

以下の手順では、脆弱性レポートを編集します。

手順

  1. RHACS ポータルで、Vulnerability ManagementReporting に移動します。
  2. レポートの一覧から、レポートを選択します。
  3. レポートの右側にある kebab を選択し、Edit をクリックします。
  4. 必要に応じてレポートを変更します。
  5. Save をクリックします。

10.1.6.4. 脆弱性レポートの削除

以下の手順では、脆弱性レポートを削除します。

手順

  1. RHACS ポータルで、Vulnerability ManagementReporting に移動します。
  2. レポートの一覧から、レポートを選択します。
  3. レポートの右側にある kebab を選択し、レポートの 削除 をクリックします。

10.2. 一般的なタスク:

このセクションでは、Vulnerability ManagementDashboard ビューから実行できる共通タスクを紹介します。

10.2.1. インフラストラクチャーに影響する重大な CVE の検索

Vulnerability Management ビューを使用して、プラットフォームに最適な CVE を特定します。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Vulnerability Management ビューヘッダーで CVE を選択します。
  3. CVE ビューで、Env Impact 列ヘッダーを選択し、環境の影響に基づいて CVE を降順 (最も高いもの) に配置します。

10.2.2. 最も脆弱なイメージコンポーネントの検索

Vulnerability Management ビューを使用して、脆弱なイメージコンポーネントを特定します。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Vulnerability Management ビューヘッダーから、Application & InfrastructureComponents の順に選択します。
  3. Components ビューで CVEs 列ヘッダーを選択し、CVE 数に基づいてコンポーネントを降順 (一番大きいもの) に配置します。

10.2.3. 脆弱性のあるコンテナーイメージ層の特定

Vulnerability Management ビューを使用して、脆弱なコンポーネントと、そのコンポーネントが表示されるイメージ層を特定します。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Top Riskiest Images ウィジェットからイメージを選択します。
  3. Image の詳細ビューで、Image Findings セクションの下にある Dockerfile タブを選択します。
  4. Image Findings セクションの Dockerfile タブで、展開アイコンを選択して、イメージコンポーネントの概要を表示します。
  5. 特定のコンポーネントの展開アイコンを選択して、選択したコンポーネントに影響する CVE の詳細を取得します。

10.2.4. 修正可能な CVE のみの詳細表示

Vulnerability Management ビューを使用して、修正可能な CVE をフィルターリングして表示します。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Vulnerability Management ビューヘッダーから、Filter CVEsFixable の順に選択します。

10.2.5. ベースイメージのオペレーティングシステムの特定

Vulnerability Management ビューを使用して、ベースイメージのオペレーティングシステムを特定します。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Vulnerability Management ビューヘッダーから Images を選択します。
  3. Image OS 列の下に、すべてのイメージのベースオペレーティングシステム (OS) および OS バージョンを表示します。
  4. イメージを選択して、その詳細を表示します。ベースオペレーティングシステムは、Image SummaryDetails and Metadata セクションでも利用できます。
注記

Red Hat Advanced Cluster Security for Kubernetes は、以下のいずれかの場合に、Image OSunknown として一覧表示します。

  • オペレーティングシステム情報が利用できない場合、または
  • 使用中のイメージスキャナーでこの情報が提供されない場合。

Docker Trusted Registry、Google Container Registry、および Anchore では、この情報を提供されません。

10.2.6. リスクの高いオブジェクトの特定

Vulnerability Management ビューを使用して、環境内の主要なリスクオブジェクトを特定します。Top Risky ウィジェットは、環境内のトップリスクのイメージ、デプロイメント、クラスター、および namespace に関する情報を表示します。このリスクは、脆弱性の数と CVSS スコアに基づいて決定されます。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Top Risky ウィジェットヘッダーを選択して、リスクイメージ、デプロイメント、クラスター、および namespace の中から選択します。

    グラフの小さな円は、選択したオブジェクト (イメージ、デプロイメント、クラスター、namespace) を表します。円にマウスをかざし、その円が表すオブジェクトの概要を確認します。円を選択して、選択したオブジェクト、その関連エンティティー、およびエンティティー間の接続に関する詳細情報を表示します。

    たとえば、Top Risky Deployments by CVE Count and CVSS score を表示する場合には、グラフの各円はデプロイメントを表します。

    • デプロイメントにカーソルを合わせると、デプロイメントの概要が表示されます。これには、デプロイメント名、クラスターと namespace の名前、重大度、リスクの優先度、CVSS、および CVE カウント (修正可能を含む) が含まれます。
    • デプロイメントを選択すると、選択したデプロイメントの Deployment ビューが開きます。Deployment ビューには、デプロイメントの詳細情報が表示され、そのデプロイメントのポリシー違反、共通脆弱性、CVE、およびリスクイメージに関する情報が含まれます。
  3. ウィジェットヘッダーで View All を選択して、選択したタイプのオブジェクトをすべて表示します。たとえば、Top Risky Deployments by CVE Count and CVSS score を選択した場合には、View All を選択して、インフラストラクチャー内のすべてのデプロイメントに関する詳細情報を表示できます。

10.2.7. 最もリスクの高いイメージとコンポーネントの特定

Top Risky と同様に、Top Riskiest ウィジェットには、最もリスクの高いイメージとコンポーネントの名前が一覧表示されます。このウィジェットには、リストされたイメージ内の CVE の総数と修正可能な CVE の数も含まれています。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Top Riskiest Images ウィジェットヘッダーを選択して、リスクイメージとコンポーネントを選択します。Top Riskiest Images を表示する場合は、以下を実行します。

    • リスト内のイメージにカーソルを合わせると、イメージの概要が表示されます。これには、イメージ名、スキャン時間、CVE の数、重大度 (クリティカル、高、中、低) が含まれます。
    • イメージを選択すると、選択したイメージの Image ビューが開きます。Image ビューには、イメージの詳細が表示され、CVSS スコア別の CVE、最もリスクの高いコンポーネント、修正可能な CVE、およびイメージの Dockerfile に関する情報が含まれます。
  3. ウィジェットヘッダーで View All を選択して、選択したタイプのオブジェクトをすべて表示します。たとえば、Top Riskiest Components を選択した場合は、View All を選んでインフラストラクチャー内のすべてのコンポーネントに関する詳細情報を表示できます。

10.2.8. イメージの Dockerfile の表示

Vulnerability Management ビューを使用して、イメージの脆弱性の根本的な原因を検索します。Dockerfile を表示して、Dockerfile 内のどのコマンドが脆弱性を導入したか、およびその単一のコマンドに関連付けられているすべてのコンポーネントを正確に見つけることができます。

Dockerfile タブには、以下の情報が表示されます。

  • Dockerfile のすべてのレイヤー
  • 各レイヤーの命令とその値
  • 各レイヤーに含まれるコンポーネント
  • 各レイヤーのコンポーネントの CVE 数

特定のレイヤーで導入されたコンポーネントがある場合は、展開アイコンを選択してコンポーネントの概要を表示できます。これらのコンポーネントに CVE がある場合は、個別のコンポーネントの展開アイコンを選択して、そのコンポーネントに影響を与える CVE の詳細を取得できます。

手順

  1. RHACS ポータルに移動し、ナビゲーションメニューから Vulnerability Management をクリックします。
  2. Top Riskiest Images ウィジェットからイメージを選択します。
  3. Image の詳細ビューで、Image Findings セクションの下にある Dockerfile タブを選択します。

10.2.9. ノードの脆弱性の識別の無効化

ノードの脆弱性の識別は、デフォルトで有効にされています。RHACS ポータルから無効にできます。

手順

  1. RHACS ポータルで、Platform ConfigurationIntegrations に移動します。
  2. Image Integrations セクションで StackRox Scanner を選択します。
  3. スキャナーの一覧から StackRox スキャナーを選択して詳細を表示します。
  4. Types から Node Scanner オプションを削除します。
  5. Save を選択します。

10.2.10. アクティブではないイメージのスキャン

Red Hat Advanced Cluster Security for Kubernetes は、4 時間ごとにアクティブな (デプロイされた) イメージをすべてスキャンし、イメージスキャンの結果を更新して最新の脆弱性定義を反映します。

また、Red Hat Advanced Cluster Security for Kubernetes を設定して、アクティブではない (デプロイされていない) イメージを自動的にスキャンすることもできます。

手順

  1. Vulnerability Management ビューヘッダーで Images を選択し、すべてのイメージの一覧を表示します。
  2. Images ビューヘッダーで、Watch Images を選択します。
  3. Manage Inactive Images ダイアログで、有効化する (イメージ ID ではなく) アクティブではないイメージの名前を入力します。
  4. Add Image を選択します。次に、Red Hat Advanced Cluster Security for Kubernetes はイメージをスキャンし、エラーまたは成功のメッセージが表示されます。
  5. Return to Image list を選択して、Images ビューを表示します。

10.2.11. 特定の CVE をブロックするポリシーの作成

Vulnerability Management ビューから、新しいポリシーを作成したり、既存のポリシーに特定の CVE を追加したりすることができます。

手順

  1. Vulnerability Management ビューヘッダーから CVE をクリックします。
  2. 1 つ以上の CVE のチェックボックスを選択し、Add selected CVEs to Policy (add アイコン) をクリックします。または、リストの CVE にマウスを移動して、右側の Add アイコンを選択します。
  3. Policy Name の場合:

    • 既存のポリシーに CVE を追加するには、ドロップダウンリストから既存のポリシーを選択します。
    • 新規ポリシーを作成するには、新規ポリシーの名前を入力し、Create <policy_name> を選択します。
  4. Severity の値を選択します (CriticalHighMedium、または Low のいずれか)。
  5. ポリシーを適用する Lifecycle Stage を、Build または Deploy から選択します。また、ライフサイクルステージの両方を選択することもできます。
  6. Description ボックスに、ポリシーの詳細を入力します。
  7. ポリシーを作成して後で有効にする場合は、Enable Policy トグルをオフにします。Enable Policy トグルはデフォルトでオンになっています。
  8. このポリシーに含まれる CVE を確認してください。
  9. Save Policy をクリックします。

10.2.12. 最近検出された脆弱性の表示

Vulnerability Management ビューの Recently Detected Vulnerabilities ウィジェットには、スキャン時間と CVSS スコアに基づいて、スキャンイメージで最近検出された脆弱性の一覧が表示されます。また、CVE の影響を受けるイメージの数と、お使いの環境への影響 (パーセンテージ) に関する情報も含まれます。

  • リスト内の CVE にカーソルを合わせると、CVE の概要が表示されます。これには、スキャン時間、CVSS スコア、説明、影響、および CVSSv2 と v3 のどちらを使用してスコアリングされたかが含まれます。
  • CVE を選択すると、選択した CVE の詳細ビューが開きます。CVE の詳細ビューには、表示される CVE およびコンポーネント、イメージ、デプロイメントおよびデプロイメントの詳細が表示されます。
  • Recently Detected Vulnerabilities ウィジェットヘッダーで View All を選択し、インフラストラクチャー内のすべての CVE の一覧を表示します。CVE の一覧をフィルターリングすることもできます。

10.2.13. 最も一般的な脆弱性の表示

Vulnerability Management ビューの Mosty Common Vulnerabilities ウィジェットには、CVSS スコアで配置されたデプロイメントやイメージの最大数に影響を与える脆弱性の一覧が表示されます。

  • リスト内の CVE にカーソルを合わせると、CVE の概要が表示されます。これには、スキャン時間、CVSS スコア、説明、影響、および CVSSv2 と v3 のどちらを使用してスコアリングされたかが含まれます。
  • CVE を選択すると、選択した CVE の詳細ビューが開きます。CVE の詳細ビューには、表示される CVE およびコンポーネント、イメージ、デプロイメントおよびデプロイメントの詳細が表示されます。
  • Most Common Vulnerabilities ウィジェットヘッダーで View All を選択し、インフラストラクチャー内のすべての CVE の一覧を表示します。CVE の一覧をフィルターリングすることもできます。CVE を CSV ファイルとしてエクスポートするには、ExportDownload CVES as CSV の順に選択します。

10.2.14. 最も深刻なポリシー違反があるデプロイメントの特定

Vulnerability Management ビューのDeployments with most severe policy violations ウィジェットには、デプロイメントに影響する脆弱性の重大度の一覧が表示されます。

  • 一覧のデプロイメントにカーソルを合わせると、デプロイメントの概要が表示されます。これには、デプロイメント名、クラスターの名前、デプロイメントが存在する namespace、失敗したポリシーとその重大度の数が含まれます。
  • デプロイメントを選択すると、選択したデプロイメントの Deployment ビューが開きます。Deployment ビューには、デプロイメントの詳細情報が表示され、そのデプロイメントのポリシー違反、共通脆弱性、CVE、およびリスクイメージに関する情報が含まれます。
  • Most Common Vulnerabilities ウィジェットヘッダーで View All を選択し、インフラストラクチャー内のすべての CVE の一覧を表示します。CVE の一覧をフィルターリングすることもできます。CVE を CSV ファイルとしてエクスポートするには、ExportDownload CVES as CSV の順に選択します。

10.2.15. Kubernetes および Istio の脆弱性の多くのクラスターの検索

Vulnerability Management ビューを使用して、環境内の Kubernetes および Istio の脆弱性の多くのクラスターを特定します。

Clusters with most K8S & Istio Vulnerabilities ウィジェットには、各クラスターの Kubernetes と Istio の脆弱性の数でランク付けされたクラスターのリストが表示されます。リストの一番上にあるクラスターは、脆弱性の数が最も多いクラスターです。

手順

  1. 一覧からクラスターの 1 つをクリックして、クラスターの詳細を表示します。Cluster ビューには以下が含まれます。

    • Cluster Details セクションには、クラスターの詳細とメタデータ、最もリスクの高いオブジェクト (デプロイメント、名前空間、およびイメージ)、最近検出された脆弱性、最もリスクの高いイメージ、および最も重大なポリシー違反のあるデプロイメントが表示されます。
    • Cluster Findings セクション。これには、失敗したポリシーの一覧および修正可能な CVE の一覧が含まれます。
    • Related Entities セクション。クラスターに含まれる namespace、デプロイメント、ポリシー、イメージ、コンポーネント、CVE の数が表示されます。これらのエンティティーを選択して、詳細情報を表示できます。
  2. ウィジェットヘッダーの View All をクリックして、すべてのクラスターの一覧を表示します。

10.2.16. ノードの脆弱性の特定

Vulnerability Management ビューを使用して、ノードの脆弱性を特定できます。特定された脆弱性には、以下のような脆弱性が含まれます。

  • コア Kubernetes コンポーネント。
  • コンテナーランタイム (Docker、CRI-O、runC、および containerd)。

    注記
    • Red Hat Advanced Cluster Security for Kubernetes では、OpenShift Container Platform のノードの脆弱性の特定機能はサポートされません。
    • Red Hat Advanced Cluster Security for Kubernetes は以下のオペレーティングシステムの脆弱性を特定できます。

      • Amazon Linux 2
      • CentOS
      • Debian
      • Garden Linux (Debian 11)
      • Red Hat Enterprise Linux (RHEL)
      • Ubuntu(AWS、Azure、GCP、および GKE 固有のバージョン)

手順

  1. Vulnerability Management ビューヘッダーで Nodes を選択し、ノードに影響するすべての CVE の一覧を表示します。
  2. 一覧からノードを選択し、そのノードに影響するすべての CVE の詳細を表示します。

    1. ノードを選択すると、選択したノードの Node の詳細パネルが開きます。Node ビューには、ノードの詳細が表示され、CVSS スコア別の CVE およびそのノードの修正可能な CVE に関する情報が含まれます。
    2. 選択したノードのすべての CVE のリストを表示するには、CVEs by CVSS score で、View All を選択します。CVE の一覧をフィルターリングすることもできます。
    3. 修正可能な CVE を CSV ファイルとしてエクスポートするには、Node Findings セクションで Export as CSV を選択します。

第11章 違反への対応

Red Hat Advanced Cluster Security for Kubernetes を使用すると、ポリシー違反を表示し、違反の実際の原因にドリルダウンして、修正措置を講じることができます。

Red Hat Advanced Cluster Security for Kubernetes の組み込みポリシーは、脆弱性 (CVE)、DevOps のベストプラクティスの違反、リスクの高いビルドとデプロイのプラクティス、疑わしいランタイム動作など、さまざまなセキュリティーの検出を識別します。デフォルトのすぐに使用可能なセキュリティーポリシーを使用する場合でも、独自のカスタムポリシーを使用する場合でも、有効なポリシーが失敗すると、Red Hat Advanced Cluster Security for Kubernetes は違反を報告します。

11.1. 違反ビュー

Violations ビューですべての違反を分析し、修正措置を講じることができます。

検出された違反を確認するには、RHACS ポータルの左側のナビゲーションメニューから Violations を選択します。

Violations ビューには、各行に次の属性を持つ違反のリストが表示されます。

  • デプロイメント: デプロイメントの名前。
  • クラスター: クラスターの名前。
  • 名前空間: デプロイメントの名前空間。
  • ポリシー: 違反したポリシーの名前。
  • 実施済み: 違反が発生したときにポリシーが実施されたかどうかを示します。
  • 重大度: 重大度を LowMediumHigh、または Critical で示します。
  • カテゴリー: ポリシーカテゴリー。
  • ライフサイクル: ポリシーが適用されるライフサイクルステージ (BuildDeploy、または Runtime)。
  • 時間 - 違反が発生した日時。

他のビューと同様:

  • 列見出しを選択して、違反を昇順または降順で並べ替えることができます。
  • フィルターバーを使用して違反をフィルターリングします。詳細は、検索とフィルターリングセクションを参照してください。
  • 違反の詳細を表示するには、Violations ビューで違反を選択します。

11.2. 違反の詳細の表示

違反ビューで Violations を選択すると、右側に Violation Details パネルが開きます。

Violation Details パネルには、複数のタブでグループ化された詳細情報が表示されます。

11.2.1. 違反タブ

Violation Details パネルの Violation タブには、ポリシーにどのように違反したかの説明が表示されます。ポリシーがデプロイフェーズ属性を対象としている場合は、違反名など、ポリシーに違反した特定の値を表示できます。ポリシーが実行時アクティビティーを対象としている場合は、引数やポリシーを作成した祖先プロセスなど、ポリシーに違反したプロセスに関する詳細情報を表示できます。

11.2.2. 施行タブ

Details パネルの Enforcement タブには、選択したポリシー違反に対応して実行された施行アクションのタイプの説明が表示されます。

11.2.3. デプロイメントタブ

Details パネルの Deployment タブには、違反が適用されるデプロイメントの詳細が表示されます。

概要セクション

概要セクションには、次の情報がリストされています。

  • デプロイメント ID: デプロイメントの英数字 ID。
  • ディプロイメント名: デプロイメントの名前。
  • デプロイメントタイプ: デプロイメントのタイプ。
  • クラスター: コンテナーがデプロイされているクラスターの名前。
  • レプリカ: レプリケートされたデプロイメントの数。
  • 名前空間: デプロイされたクラスターの一意の識別子。
  • 更新: デプロイメントが更新された日時。
  • ラベル: 選択したデプロイメントに適用されるラベル。
  • アノテーション: 選択したデプロイメントに適用されるアノテーション。
  • サービスアカウント: 選択したデプロイメントのサービスアカウントの名前。
コンテナー設定セクション

コンテナー設定セクションには、以下の情報がリストされています。

  • イメージ名: 選択したデプロイメントのイメージの名前。
  • リソース:

    • CPU 要求 (コア): コンテナーにより要求されるコアの数。
    • メモリー要求 (MB): コンテナーによって要求されるメモリーサイズ。
  • ボリューム:

    • 名前: サービスがマウントされる場所の名前。
    • ソース: データソースパス。
    • 宛先: データが保存されるパス。
    • タイプ: ボリュームのタイプ。
  • シークレット: 選択したデプロイメントに関連付けられているシークレット。
セキュリティーコンテキストセクション

コンテナーが特権コンテナーとして実行されているかどうかを一覧表示します。

  • 特権:

    • 特権がある 場合は true
    • 特権がない 場合は false
ネットワークポリシーセクション

違反を含むネームスペース内のすべてのネットワークポリシーを一覧表示します。

11.2.4. ポリシータブ

Details パネルの Policy タブには、違反の原因となったポリシーの詳細が表示されます。

ポリシーの詳細セクション

ポリシーの詳細セクションには、次の情報が一覧表示されます。

  • Id: ポリシーの数値識別子。
  • 名前: ポリシーの名前。
  • 説明: ポリシーアラートの内容の詳細な説明。
  • 理論的根拠: ポリシーの確立の背後にある理由と、それが重要である理由に関する情報。
  • 修正: 違反を修正する方法に関する提案。
  • 有効: ポリシーが有効かどうかを示します。
  • カテゴリー: ポリシーのポリシーカテゴリー。
  • ライフサイクルステージ: ポリシーが属するライフサイクルステージ (BuildDeploy、または Runtime)。
  • 重大度 - 違反のリスクレベル。
ポリシー基準セクション

ポリシーのポリシー基準を一覧表示します。

第12章 検索およびフィルターリング

クラスターを保護するには、リソースを即座に見つける機能が重要です。Red Hat Advanced Cluster Security for Kubernetes 検索機能を使用して、関連するリソースをより迅速に検索します。たとえば、これを使用して、新しく公開された CVE に公開されているデプロイメントを検索したり、外部ネットワークに公開されているすべてのデプロイメントを検索したりできます。

12.1. 検索構文

検索クエリーは、次の 2 つの部分で設定されています。

  • 検索するリソースタイプを識別する属性。
  • 一致するリソースを見つける検索用語。

たとえば、visa-processor のデプロイメントですべての違反を見つけるには、検索クエリーは Deployment:visa-processor です。この検索クエリーでは、Deployment が属性であり、visa-processor が検索語です。

注記

検索語を使用する前に、属性を選択する必要があります。ただし、Risk ビューや Violations ビューなどの一部のビューでは、Red Hat Advanced Cluster Security for Kubernetes は、入力した検索語に基づいて関連する属性を自動的に適用します。

  • クエリーでは複数の属性を使用できます。複数の属性を使用する場合、結果にはすべての属性に一致するアイテムのみが含まれます。

    Namespace:frontend CVE:CVE-2018-11776 を検索すると、frontend 名前空間で CVE-2018-11776 に違反するリソースのみが返されます。

  • 各属性で複数の検索語を使用できます。複数の検索語を使用すると、結果には、いずれかの検索語に一致するすべてのアイテムが含まれます。

    検索クエリー Namespace: frontend backend を使用すると、名前空間 frontend または backend から一致する結果が返されます。

  • 複数の属性と検索語のペアを組み合わせることができます。

    検索クエリー Cluster:production Namespace:frontend CVE:CVE-2018-11776 は、production クラスターの frontend 名前空間で CVE-2018-11776 に違反するすべてのリソースを返します。

  • 検索語は単語の一部にすることができます。その場合、Red Hat Advanced Cluster Security for Kubernetes は一致するすべての結果を返します。

    Deployment:def を検索すると、結果には def で始まるすべてのデプロイメントが含まれます。

  • 特定の用語を明示的に検索するには、引用符で囲まれた検索用語を使用します。

    Deployment:"def" を検索すると、結果にはデプロイメント def のみが含まれます。

  • 検索語の前に r/ を使用して、正規表現を使用することもできます。

    Namespace:r/st.*x を検索すると、結果には名前空間 stackrox および stix からの一致が含まれます。

  • ! を使用すると、結果に表示したくない検索用語を示します。

    Namespace:!stackrox を検索すると、stackrox 名前空間を除くすべての名前空間からの一致が結果に含まれます。

  • 比較演算子 ><=>=、または <= を使用して、特定の値または値の範囲を一致させます。

    CVSS:>=6 を検索すると、結果には、Common Vulnerability Scoring System (CVSS) スコアが 6 以上のすべての脆弱性が含まれます。

12.2. オートコンプリートの検索

クエリーを入力すると、Red Hat Advanced Cluster Security for Kubernetes は属性および検索語に関連する提案を自動的に表示します。

12.3. グローバル検索の使用

グローバル検索を使用すると、環境内のすべてのリソースを検索できます。検索クエリーで使用するリソースタイプに基づいて、結果は次のカテゴリーにグループ化されます。

  • すべて (すべてのカテゴリーで一致する結果を一覧表示する)
  • 違反
  • ポリシー
  • デプロイメント
  • Images
  • シークレット

これらのカテゴリーは、RHACS ポータルのグローバル検索ページに表として一覧表示されます。カテゴリー名をクリックすると、選択したカテゴリーに属する結果を識別できます。

グローバル検索を行うには、RHACS ポータルで右上の Search を選択します。

12.4. ローカルページのフィルターリングの使用

RHACS ポータルのすべてのビュー内からローカルページのフィルターリングを使用できます。ローカルページフィルターリングはグローバル検索と同様に機能しますが、関連する属性のみが使用可能です。検索バーを選択して、特定のビューで使用可能なすべての属性を表示できます。

12.5. 一般的な検索クエリー

Red Hat Advanced Cluster Security for Kubernetes で実行できる一般的な検索クエリーを次に示します。

特定の CVE の影響を受けるデプロイメントの検索

クエリー

CVE:<CVE_number>

CVE:CVE-2018-11776

特権のある実行中のデプロイメントの検索

クエリー

Privileged:<true_or_false>

Privileged:true

外部ネットワークにさらされているデプロイメントの検索

クエリー

Exposure Level:<level>

Exposure Level:External

特定のプロセスを実行しているデプロイメントの検索

クエリー

Process Name:<process_name>

Process Name:bash

深刻であるが修正可能な脆弱性があるデプロイメントの検索

クエリー

CVSS:<expression_and_score>

CVSS:>=6 Fixable:.*

環境変数を介して公開されたパスワードを使用するデプロイメントの検索

クエリー

Environment Key:<query>

Environment Key:r/.*pass.*

特定のソフトウェアコンポーネントが含まれている実行中のデプロイメントの検索

クエリー

Component:<component_name>

Component:libgpg-error または Component:sudo

ユーザーまたはグループの検索

Kubernetes の ラベルおよびセレクター、ならびに アノテーション を使用して、メタデータをデプロイメントにアタッチします。次に、適用された注釈およびラベルに基づいてクエリーを実行し、個人またはグループを識別できます。

特定のデプロイメントを所有しているユーザーの検索
クエリー

Deployment:<deployment_name> Label:<key_value> または Deployment:<deployment_name> Annotation:<key_value>

Deployment:app-server Label:team=backend

パブリックレジストリーからイメージをデプロイしているユーザーの検索
クエリー

Image Registry:<registry_name> Label:<key_value> または Image Registry:<registry_name> Annotation:<key_value>

Image Registry:docker.io Label:team=backend

デフォルトの名前空間にデプロイしているユーザーの検索
クエリー

Namespace:default Label:<key_value> または Namespace:default Annotation:<key_value>

Namespace:default Label:team=backend

12.6. 属性の検索

以下は、Red Hat Advanced Cluster Security for Kubernetes での検索およびフィルターリング中に使用できる検索属性のリストです。

属性説明

Add Capabilities

コンテナーに追加の Linux 機能を提供します。たとえば、ファイルを変更したり、ネットワーク操作を実行したりする機能です。

Annotation

オーケストレーターオブジェクトに添付された任意の非識別メタデータ。

CPU Cores Limit

リソースが使用できるコアの最大数。

CPU Cores Request

特定のリソース用に予約されるコアの最小数。

CVE

Common Vulnerabilities and Exposures。特定の CVE 番号で使用。

CVSS

一般的な脆弱性スコアリングシステム。CVSS スコアより大なり (>)、より小なり (<)、または等号 (=) 記号で使用します。

Category

ポリシーカテゴリーには、DevOps のベストプラクティス、セキュリティーのベストプラクティス、特権、脆弱性管理、複数、および作成したカスタムポリシーカテゴリーが含まれます。

Cert Expiration

証明書の有効期限。

Cluster

Kubernetes または OpenShift Container Platform クラスターの名前。

Cluster ID

Kubernetes または OpenShift Container Platform クラスターの一意の ID。

Cluster Role

クラスター全体のロールを検索する場合は true を使用し、namespace スコープのロールを検索する場合は false を使用します。

Component

ソフトウェア (daemond、docker)、オブジェクト (イメージ、コンテナー、サービス)、レジストリー (Docker イメージのリポジトリー)。

Component Count

イメージ内のコンポーネントの数。

Component version

ソフトウェア、オブジェクト、またはレジストリーのバージョン。

Created Time

シークレットオブジェクトが作成された日時。

Deployment

デプロイメントの名前。

デプロイメントタイプ

デプロイのベースとなる Kubernetes コントローラーのタイプ。

説明

デプロイメントの説明。

Dockerfile Instruction Keyword

イメージ内の Dockerfile 命令のキーワード。

Dockerfile Instruction Value

イメージ内の Dockerfile 命令の値。

Drop Capabilities

コンテナーから削除された Linux 機能。たとえば、CAP_SETUID または CAP_NET_RAW です。

Enforcement

展開に割り当てられた強制のタイプ。たとえば、NoneScale to Zero ReplicasAdd an Unsatisfiable Node Constraint などです。

Environment Key

コンテナーの環境をさらに識別および整理するためのメタデータである、ラベルのキー値文字列のキー部分。

Environment Value

コンテナーの環境をさらに識別および整理するためのメタデータであるラベルキー値文字列の値部分。

Exposed Node Port

公開されたノードポートのポート番号。

Exposing Service

公開されたサービスの名前。

Exposing Service Port

公開されたサービスのポート番号。

Exposure Level

externalnode など、デプロイメントポートの公開のタイプ。

External Hostname

デプロイメントの外部ポート公開のホスト名。

External IP

デプロイメントの外部ポート公開の IP アドレス。

Fixable CVE Count

イメージ上の修正可能な CVE の数。

Fixed By

イメージのフラグ付きの脆弱性を修正するパッケージのバージョン文字列。

Image

イメージの名前。

Image Command

イメージで指定されているコマンド。

Image Created Time

イメージが作成された日時。

Image Entrypoint

イメージで指定されているエントリーポイントコマンド。

Image Pull Secret

デプロイメントで指定されている、イメージをプルするときに使用するシークレットの名前。

Image Pull Secret Registry

イメージプルシークレットのレジストリーの名前。

Image Registry

イメージレジストリーの名前。

Image Remote

リモートアクセス可能なイメージの表示。

Image Scan Time

イメージが最後にスキャンされた日時。

Image Tag

イメージの識別子。

Image Users

コンテナーイメージの実行時に使用するように設定されているユーザーまたはグループの名前。

Image Volumes

コンテナーイメージで設定されたボリュームの名前。

Inactive Deployment

非アクティブなデプロイメントを検索するには true を使用し、アクティブなデプロイメントを検索するには false を使用します。

Label

イメージ、コンテナー、デーモン、ボリューム、ネットワーク、およびその他のリソースをさらに識別および整理するためのメタデータである、ラベルのキー値文字列のキー部分。

Lifecycle Stage

このポリシーが設定されている、またはアラートがトリガーされたライフサイクルステージのタイプ。

Max Exposure Level

デプロイメントの場合は、特定のすべてのポート/サービスのネットワーク公開の最大レベル。

Memory Limit (MB)

リソースが使用できるメモリーの最大量。

Memory Request (MB)

特定のリソース用に予約されるメモリーの最小量。

Namespace

namespace の名前。

Namespace ID

デプロイメントに含まれる名前空間オブジェクトの一意の ID。

Node

ノードの名前。

Node ID

ノードの一意の ID。

Pod Label

個々の Pod に添付された単一の識別メタデータ。

Policy

セキュリティーポリシーの名前。

Port

デプロイメントによって公開されるポート番号。

Port Protocol

公開されたポートで使用される TCP や UDP などの IP プロトコル。

Priority

デプロイメントのリスク優先度。Risks ビューでのみ使用可能)

Privileged

特権のある稼働中のデプロイメントを検索するには true を使用し、それ以外の場合は false を使用します。

Process Ancestor

デプロイメント内のプロセスインジケーターの親プロセスの名前。

Process Arguments

デプロイメント内のプロセスインジケーターのコマンド引数。

プロセス名

デプロイメント内のプロセスインジケーターのプロセスの名前。

Process Path

デプロイメントのプロセスインジケーターのコンテナー内のバイナリーへのパス。

Process UID

デプロイメントのプロセスインジケーターの Unix ユーザー ID。

Read Only Root Filesystem

true を使用して、読み取り専用として設定されたルートファイルシステムで実行しているコンテナーを検索します。

Role

Kubernetes RBAC ロールの名前。

Role Binding

Kubernetes RBAC ロールバインディングの名前。

Role ID

Kubernetes RBAC ロールバインディングがバインドされているロール ID。

Secret

機密情報を保持する秘密オブジェクトの名前。

Secret Path

ファイルシステム内のシークレットオブジェクトへのパス。

Secret Type

シークレットのタイプ (証明書や RSA 公開鍵など)。

Service Account

サービスアカウントまたはデプロイメントのサービスアカウント名。

Severity

違反の重要度の表示: Critical、High、Medium、Low。

Subject

Kubernetes RBAC でのサブジェクトの名前。

Subject Kind

SERVICE_ACCOUNTUSERGROUP などの Kubernetes RBAC のサブジェクトのタイプ。

Taint Effect

現在ノードに適用されている汚染のタイプ。

Taint Key

現在ノードに適用されている汚染のキー。

Taint Value

現在ノードに適用されている汚染の許容値。

Toleration Key

デプロイメントに適用される許容範囲のキー。

Toleration Value

デプロイメントに適用される許容値の値。

Violation

ポリシーで指定された条件が満たされない場合に Violations ページに表示される通知。

Violation State

解決された違反を検索するのに使用します。

Violation Time

違反が最初に発生した日時。

Volume Destination

データボリュームのマウントパス。

Volume Name

ストレージの名前。

Volume ReadOnly

true を使用して、読み取り専用としてマウントされているボリュームを検索します。

Volume Source

ボリュームがプロビジョニングされる形式を示します (例: persistentVolumeClaim または hostPath)。

Volume Type

ボリュームの種別を設定します。

第13章 ユーザーアクセスの管理

13.1. Okta Identity Cloud を SAML 2.0 プロバイダーとして設定

Okta は、Red Hat Advanced Cluster Security for Kubernetes (RHACS) のシングルサインオン (SSO) プロバイダーとして使用できます。

13.1.1. Okta アプリの作成

Okta を Red Hat Advanced Cluster Security for Kubernetes の SAML 2.0 プロバイダーとして使用する前に、Okta アプリを作成する必要があります。

警告

Okta の Developer Console はカスタム SAML 2.0 アプリケーションの作成をサポートしていません。Developer Console を使用している場合は、最初に Admin Console (Classic UI) に切り替える必要があります。切り替えるには、ページの左上にある Developer Console をクリックして、Classic UI を選択します。

前提条件

  • Okta ポータルの管理者権限を持つアカウントが必要です。

手順

  1. Okta ポータルで、メニューバーから Applications を選択します。
  2. Add Application をクリックし、Create New App を選択します。
  3. Create a New Application Integration ダイアログボックスで、プラットフォームを Web のままにし、ユーザーにサインインするプロトコルに SAML 2.0 を選択します。
  4. Create をクリックします。
  5. General Settings ページで、App name フィールドにアプリの名前を入力します。
  6. Next をクリックします。
  7. SAML Settings ページで、次のフィールドに値を設定します。

    1. シングルサインオン URL

      • https://<RHACS_portal_hostname>/sso/providers/saml/acs を指定します。
      • Use this for Recipient URL and Destination URL オプションをオンのままにします。
      • RHACS ポータルにさまざまな URL でアクセスできる場合は、Allow this app to request other SSO URLs オプションをオンにして、指定した形式を使用して代替 URL を追加することでそれらを追加できます。
    2. オーディエンス URI (SP エンティティー ID)

      • 値を RHACS または任意の別の値に設定します。
      • 選択した値を覚えておいてください。Red Hat Advanced Cluster Security for Kubernetes を設定するときに、この値が必要になります。
    3. 属性ステートメント

      • 少なくとも 1 つの属性ステートメントを追加する必要があります。
      • Red Hat は、email 属性の使用を推奨しています。

        • 名前: 電子メール
        • フォーマット: 指定なし
        • 値: user.email
  8. 続行する前に、少なくとも 1 つの Attribute Statement が設定されていることを確認してください。
  9. Next をクリックします。
  10. Feedback ページで、該当するオプションを選択します。
  11. 適切な アプリの種類 を選択します。
  12. Finish をクリックします。

設定が完了すると、新しいアプリの サインオン 設定ページにリダイレクトされます。黄色のボックスには、Red Hat Advanced Cluster Security for Kubernetes を設定するのに必要な情報へのリンクが含まれています。

アプリを作成したら、Okta ユーザーをこのアプリケーションに割り当てます。Assignments タブに移動し、Red Hat Advanced Cluster Security for Kubernetes にアクセスできる個々のユーザーまたはグループのセットを割り当てます。たとえば、グループ Everyone を割り当てて、組織内のすべてのユーザーが Red Hat Advanced Cluster Security for Kubernetes にアクセスできるようにします。

13.1.2. Red Hat Advanced Cluster Security for Kubernetes での SAML 2.0 ID プロバイダーの設定

このセクションの手順を使用して、SAML 2.0 ID プロバイダーを Red Hat Advanced Cluster Security for Kubernetes と統合します。

前提条件

  • Red Hat Advanced Cluster Security for Kubernetes で ID プロバイダーを設定するためのアクセス許可が必要です。
  • Red Hat Advanced Cluster Security for Kubernetes 用に設定された Okta アプリが必要です。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess Control に移動します。
  2. Add an Auth Provider メニューを開き、SAML 2.0 を選択します。
  3. 以下の詳細を記入してください。

    • 統合名: この認証プロバイダーを識別するための名前 (OktaGoogle など)。統合名は、ユーザーが適切なサインインオプションを選択できるように、ログインページに表示されます。
    • ServiceProvider Issuer: Okta で Audience URI または SP Entity ID として使用している値、または他のプロバイダーで同様の値。
    • IdP Metadata URL: ID プロバイダーコンソールから利用可能な Identity Provider metadata の URL を使用します。IdP Metadata URL を使用しない場合は、代わりに、Okta コンソールの View Setup Instructions リンク、または他のプロバイダーの同様の場所から、必要な静的フィールドをコピーできます。
  4. 選択した ID プロバイダーを使用して Red Hat Advanced Cluster Security for Kubernetes にアクセスするユーザーの 最小アクセスルール を選択します。

    ヒント

    セットアップの完了時に、最小アクセスルール管理者 に設定します。後で、Access Control ページに戻って、ID プロバイダーのユーザーメタデータに基づいて、より調整されたアクセスルールを設定できます。

  5. Save をクリックします。
重要

SAML ID プロバイダーの認証応答の場合:

  • NotValidAfter アサーションを含み、ユーザーセッションは NotValidAfter フィールドで指定された時間が経過するまで有効なままです。有効期限が切れた後、ユーザーは再認証する必要があります。
  • NotValidAfter アサーションが含まれていない場合、ユーザーセッションは 30 日間有効であり、その後、ユーザーは再認証する必要があります。

検証

  1. RHACS ポータルで、Platform ConfigurationAccess Control に移動します。
  2. Auth Provider Rules タブを選択します。
  3. Auth Providers セクションで、設定を確認する認証プロバイダーを選択します。
  4. Auth Provider セクションのヘッダーから Test Login を選択します。新しいブラウザータブで、Test Login ページが開きます。
  5. 認証情報を使用してログインします。

    • 成功すると、Red Hat Advanced Cluster Security for Kubernetes は、ログインに使用した認証情報に対して ID プロバイダーが送信した User ID および User Attributes を表示します。
    • 失敗すると、Red Hat Advanced Cluster Security for Kubernetes は、ID プロバイダーの応答を処理できなかった理由を説明するメッセージを表示します。
  6. Test Login ブラウザータブを閉じます。

    注記

    応答が認証の成功を示している場合でも、ID プロバイダーからのユーザーメタデータに基づいて追加のアクセスルールを作成しないといけない場合があります。

13.2. Google Workspace を OIDC ID プロバイダーとして設定する

Google Workspace は、Red Hat Advanced Cluster Security for Kubernetes のシングルサインオン (SSO) プロバイダーとして使用できます。

13.2.1. GCP プロジェクトの OAuth 2.0 認証情報の設定

Google Workspace を Red Hat Advanced Cluster Security for Kubernetes の ID プロバイダーとして設定するには、最初に GCP プロジェクトの OAuth 2.0 認証情報を設定する必要があります。

前提条件

  • 新しいプロジェクトを作成するには、組織の Google Workspace アカウントへの管理者レベルのアクセス権、または既存のプロジェクトの OAuth 2.0 認証情報を作成および設定するためのパーミッションが必要です。Red Hat は、Red Hat Advanced Cluster Security for Kubernetes へのアクセスを管理する新しいプロジェクトを作成することを推奨します。

手順

  1. 新しい Google Cloud Platform (GCP) プロジェクトを作成します。プロジェクトの作成および管理 に関する Google ドキュメントのトピックをご覧ください。
  2. プロジェクトを作成したら、Google API コンソールで Credentials ページを開きます。
  3. ロゴの近くの左上隅に一覧表示されているプロジェクト名を確認して、正しいプロジェクトを使用していることを確認します。
  4. 新しい認証情報を作成するには、Create CredentialsOAuth client ID に移動します。
  5. Application typeWeb application を選択します。
  6. Name ボックスに、アプリケーションの名前 (RHACS など) を入力します。
  7. Authorized redirect URIs ボックスに、https://<stackrox_hostname>:<port_number>/sso/providers/oidc/callback と入力します。

    • <stackrox_hostname> を、Central インスタンスを公開するホスト名に置き換えます。
    • <port_number> を、Central を公開するポート番号に置き換えます。標準の HTTPS ポート 443 を使用している場合は、ポート番号を省略できます。
  8. Create をクリックします。これにより、アプリケーションと認証情報が作成され、認証情報ページにリダイレクトされます。
  9. 情報ボックスが開き、新しく作成されたアプリケーションの詳細が表示されます。情報ボックスを閉じます。
  10. .apps.googleusercontent.com で終わる クライアント ID をコピーして保存します。このクライアント ID は、Google API コンソールを使用して確認できます。
  11. 左側のナビゲーションメニューから OAuth consent screen を選択します。

    注記

    OAuth 同意画面の設定は、前の手順で作成したアプリケーションだけでなく、GCP プロジェクト全体で有効です。このプロジェクトですでに OAuth 同意画面が設定されていて、Red Hat Advanced Cluster Security for Kubernetes ログインに別の設定を適用する場合は、新しい GCP プロジェクトを作成します。

  12. OAuth 同意画面ページで、以下を行います。

    1. Application typeInternal を選択します。Public を選択すると、Google アカウントを持っている人なら誰でもログインできます。
    2. わかりやすい アプリケーション名 を入力します。この名前は、ユーザーがサインインするときに同意画面に表示されます。たとえば、RHACS または <organization_name> SSO for Red Hat Advanced Cluster Security for Kubernetes を使用します。
    3. Scopes for Google APIs に、emailprofileopenid スコープのみがリストされていることを確認します。シングルサインオンには、これらのスコープのみが必要です。追加のスコープを付与すると、機密データが公開されるリスクが高まります。

13.2.2. クライアントシークレットの指定

Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.39 以降は、クライアントシークレットを指定するときに OAuth 2.0 認証コード付与 認証フローをサポートします。この認証フローを使用すると、Red Hat Advanced Cluster Security for Kubernetes は更新トークンを使用して、OIDC ID プロバイダーで設定されたトークンの有効期限を超えてユーザーがログインし続けるようにします。

ユーザーがログアウトすると、Red Hat Advanced Cluster Security for Kubernetes はクライアント側から更新トークンを削除します。さらに、ID プロバイダー API が更新トークンの失効をサポートしている場合、Red Hat Advanced Cluster Security for Kubernetes は、更新トークンを失効させる要求も ID プロバイダーに送信します。

OIDC ID プロバイダーと統合するように Red Hat Advanced Cluster Security for Kubernetes を設定するときに、クライアントシークレットを指定できます。

注記
  • フラグメント コールバックモードクライアントシークレット を使用することはできません。
  • 既存の認証プロバイダーの設定を編集することはできません。
  • クライアントシークレット を使用する場合は、Red Hat Advanced Cluster Security for Kubernetes で新しい OIDC 統合を作成する必要があります。

Red Hat は、Red Hat Advanced Cluster Security for Kubernetes を OIDC ID プロバイダーに接続するときに、クライアントシークレットを使用することを推奨します。クライアントシークレット を使用しない場合は、Do not use Client Secret (not recommended) オプションを選択する必要があります。

13.2.3. Red Hat Advanced Cluster Security for Kubernetes における OIDC ID プロバイダーの設定

OpenID Connect (OIDC) ID プロバイダーを使用するように Red Hat Advanced Cluster Security for Kubernetes を設定できます。

前提条件

  • Google Workspace などの ID プロバイダーでアプリケーションを設定している。
  • Red Hat Advanced Cluster Security for Kubernetes で ID プロバイダーを設定するためのアクセス許可が必要です。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess Control に移動します。
  2. Add an Auth Provider メニューを開き、OpenID Connect を選択します。
  3. 以下の詳細を記入してください。

    • 統合名: 認証プロバイダーを識別するための名前。たとえば、Auth0 または Google Workspace です。統合名は、ユーザーが適切なサインインオプションを選択できるように、ログインページに表示されます。
    • コールバックモード: HTTP POST (デフォルト) を選択します。シングルページアプリケーション (SPA) の制限に基づいて設計された、フラグメント と呼ばれる代替モードも利用できます。Red Hat は、レガシー統合の フラグメント モードのみをサポートしており、新しい統合にフラグメントモードを使用することは推奨していません。
    • 発行者: ID プロバイダーのルート URL。たとえば、Google Workspace の場合は https://accounts.google.com です。詳細については、ID プロバイダーのドキュメントを参照してください。

      注記

      Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.49 以降を使用している場合、発行者 は次のことができます。

      • ルート URL の前に https+insecure:// を付けて、TLS 検証を飛ばします。この設定は安全ではなく、Red Hat は推奨していません。テスト目的でのみ使用してください。
      • ルート URL とともに ?key1=value1&key2=value2 などのクエリー文字列を指定します。Red Hat Advanced Cluster Security for Kubernetes は、発行者 の値をそのまま認証エンドポイントに追加します。これを使用して、プロバイダーのログイン画面をカスタマイズできます。たとえば、hd パラメーター を使用して Google Workspace のログイン画面を特定のホストドメインに最適化したり、pfidpadapterid パラメーター を使用して PingFederate で認証方法を事前に選択したりできます。
    • クライアント ID: 設定されたプロジェクトの OIDC クライアント ID。
  4. 選択した ID プロバイダーを使用して Red Hat Advanced Cluster Security for Kubernetes にアクセスするユーザーの 最小アクセスルール を選択します。

    ヒント

    セットアップの完了時に、最小アクセスルール管理者 に設定します。後で、Access Control ページに戻って、ID プロバイダーのユーザーメタデータに基づいて、より調整されたアクセスルールを設定できます。

  5. Save をクリックします。

検証

  1. RHACS ポータルで、Platform ConfigurationAccess Control に移動します。
  2. Auth Provider Rules タブを選択します。
  3. Auth Providers セクションで、設定を確認する認証プロバイダーを選択します。
  4. Auth Provider セクションのヘッダーから Test Login を選択します。新しいブラウザータブで、Test Login ページが開きます。
  5. 認証情報を使用してログインします。

    • 成功すると、Red Hat Advanced Cluster Security for Kubernetes は、ログインに使用した認証情報に対して ID プロバイダーが送信した User ID および User Attributes を表示します。
    • 失敗すると、Red Hat Advanced Cluster Security for Kubernetes は、ID プロバイダーの応答を処理できなかった理由を説明するメッセージを表示します。
  6. Test Login ブラウザータブを閉じます。

13.3. OpenShift Container Platform OAuth サーバーをアイデンティティープロバイダーとして設定

OpenShift Container Platform には、Red Hat Advanced Cluster Security for Kubernetes (RHACS) の認証プロバイダーとして使用できる組み込みの OAuth サーバーが含まれています。

13.3.1. OpenShift Container Platform OAuth サーバーを Red Hat Advanced Cluster Security for Kubernetes の ID プロバイダーとして設定

組み込みの OpenShift Container Platform OAuth サーバーを Red Hat Advanced Cluster Security for Kubernetes (RHACS) の ID プロバイダーとして統合するには、このセクションの手順を使用します。

前提条件

  • RHACS で ID プロバイダーを設定するには、AuthProvider 権限が必要である。
  • ID プロバイダーを介して OpenShift Container Platform OAuth サーバーでユーザーおよびグループをすでに設定しておく必要がある。ID プロバイダーの要件は、ID プロバイダーの設定の概要 を参照すること。
注記

以下の手順では、OpenShift Container Platform OAuth サーバー用に central という名前のメインルートを 1 つだけ設定します。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess Control に移動します。
  2. Add an Auth Provider メニューを開き、OpenShift Auth を選択します。
  3. Name フィールドに認証プロバイダーの名前を入力します。
  4. 選択した ID プロバイダーを使用して RHACS にアクセスするユーザーの 最小アクセスルール を選択します。

    ヒント

    セキュリティーのため、セットアップの完了時に、Minimum access roleNone に設定する事を Red Hat は推奨します。後で、Access Control ページに戻って、ID プロバイダーのユーザーメタデータに基づいて、より調整されたアクセスルールを設定できます。

  5. オプション: RHACS にアクセスするユーザーとグループのアクセスルールを追加するには、Rules セクションで Add new rule をクリックし、ルール情報を入力して Save をクリックします。アクセスを設定するには、ユーザーまたはグループの属性が必要です。

    ヒント

    グループは通常、チームまたはアクセス許可セットに関連付けられており、ユーザーよりも頻繁に変更する必要がないため、グループマッピングはより堅牢です。

    OpenShift Container Platform でユーザー情報を取得するには、以下のいずれかの方法を使用できます。

    • User ManagementUsers<username> → YAML をクリックします。
    • k8s/cluster/user.openshift.io~v1~User/<username>/yaml ファイルにアクセスし、nameuid (RHACS のuserid)、および groups の値を書き留めます。
    • OpenShift Container Platform API リファレンス で説明されているように、OpenShift Container Platform API を使用します。

    次の設定例では、次の属性を持つ Admin ロールのルールを設定する方法について説明します。

    • name: administrator
    • groups: ["system:authenticated", "system:authenticated:oauth", "myAdministratorsGroup"]
    • uid: 12345-00aa-1234-123b-123fcdef1234

    次のいずれかの手順を使用して、この管理者ロールのルールを追加できます。

    • 名前のルールを設定するには、Key ドロップダウンリストから name を選択し、Value フィールドに administrator と入力して、RoleAdministrator を選択します。
    • グループのルールを設定するには、Key ドロップダウンリストから groups を選択し、Value フィールドに myAdministratorsGroup と入力して、RoleAdmin を選択します。
    • ユーザー名のルールを設定するには、Key ドロップダウンリストから userid を選択し、Value フィールドに 12345-00aa-1234-123b-123fcdef1234 を入力して、RoleAdmin を選択します。
重要
  • OpenShift Container Platform OAuth サーバーにカスタム TLS 証明書を使用する場合は、CA のルート証明書を信頼されたルート CA として Red Hat Advanced Cluster Security for Kubernetes に追加する必要があります。そうしないと、Central は OpenShift Container Platform OAuth サーバーに接続できません。
  • roxctl CLI を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールするときに OpenShift Container Platform OAuth サーバー統合を有効にするには、Central で ROX_ENABLE_OPENSHIFT_AUTH 環境変数を true に設定します。

    $ oc -n stackrox set env deploy/central ROX_ENABLE_OPENSHIFT_AUTH=true
  • アクセスルールの場合、OpenShift Container Platform OAuth サーバーはキー Email を返しません。

13.3.2. OpenShift Container Platform OAuth サーバーの追加ルートの作成

Red Hat Advanced Cluster Security for Kubernetes ポータルを使用して OpenShift Container Platform OAuth サーバーを ID プロバイダーとして設定すると、RHACS は OAuth サーバーのルートを 1 つだけ設定します。ただし、Central カスタムリソースで注釈として指定することにより、追加のルートを作成できます。

手順

  • RHACS Operator を使用して RHACS をインストールした場合:

    1. Central カスタムリソースのパッチを含む CENTRAL_ADDITIONAL_ROUTES 環境変数を作成します。

      $ CENTRAL_ADDITIONAL_ROUTES='
      spec:
        central:
          exposure:
            loadBalancer:
              enabled: false
              port: 443
            nodePort:
              enabled: false
            route:
              enabled: true
          persistence:
            persistentVolumeClaim:
              claimName: stackrox-db
        customize:
          annotations:
            serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1
            serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2
            serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3
            serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4
      '
      1
      メインルートを設定するためのリダイレクト URI。
      2
      メインルートのリダイレクト URI 参照。
      3
      2 番目のルートを設定するためのリダイレクト。
      4
      2 番目のルートのリダイレクト参照。
    2. CENTRAL_ADDITIONAL_ROUTES パッチを Central カスタムリソースに適用します。

      $ oc patch centrals.platform.stackrox.io \
        -n <namespace> \ 1
        <custom-resource> \ 2
        --patch "$CENTRAL_ADDITIONAL_ROUTES" \
        --type=merge
      1
      <namespace> を、Central カスタムリソースを含むプロジェクトの名前に置き換えます。
      2
      <custom-resource> を Central カスタムリソースの名前に置き換えます。
  • または、Helm を使用して RHACS をインストールした場合:

    1. 次のアノテーションを values-public.yaml ファイルに追加します。

      customize:
        central:
          annotations:
            serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1
            serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2
            serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3
            serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4
      1
      メインルートを設定するためのリダイレクト。
      2
      メインルートのリダイレクトリファレンス。
      3
      2 番目のルートを設定するためのリダイレクト。
      4
      2 番目のルートのリダイレクト参照。
    2. helm upgrade を使用して、Central カスタムリソースにカスタムアノテーションを適用します。

      $ helm upgrade -n stackrox \
        stackrox-central-services rhacs/central-services \
        -f <path_to_values_public.yaml> 1
      1
      -f オプションを使用して、values-public.yaml 設定ファイルのパスを指定します。

13.4. Red Hat Advanced Cluster Security for Kubernetes での RBAC の管理

Red Hat Advanced Cluster Security for Kubernetes (RHACS) には、ロールを設定し、さまざまなユーザーに Red Hat Advanced Cluster Security for Kubernetes へのさまざまなレベルのアクセスを許可するのに使用できるロールベースのアクセス制御 (RBAC) が付属しています。

Red Hat Advanced Cluster Security for Kubernetes 3.63 には、特定の Red Hat Advanced Cluster Security for Kubernetes ユーザーまたはユーザーグループが Red Hat Advanced Cluster Security for Kubernetes と対話する方法、アクセスできるリソース、実行できるアクションを定義するきめ細かい特定の権限セットを設定できるスコープ付きアクセス制御機能が含まれています。

  • ロール は、権限セットとアクセススコープの集まりです。ルールを指定することにより、ユーザーおよびグループにロールを割り当てることができます。これらのルールは、認証プロバイダーを設定するときに設定できます。Red Hat Advanced Cluster Security for Kubernetes には 2 つのタイプのロールがあります。

    • Red Hat によって作成され、変更できないシステムロール。
    • Red Hat Advanced Cluster Security for Kubernetes 管理者がいつでも作成および変更できるカスタムロール。

      注記
      • ユーザーに複数のロールを割り当てると、割り当てられたロールの組み合わせた権限にアクセスできます。
      • カスタムロールにユーザーが割り当てられていて、そのロールを削除すると、関連付けられているすべてのユーザーが、設定した最小アクセ出力ルに転送されます。
  • アクセス許可セット は、特定のリソースに対してロールが実行できるアクションを定義する権限のセットです。リソース は、Red Hat Advanced Cluster Security for Kubernetes の機能であり、表示 (読み取り) および変更 (書き込み) 権限を設定できます。Red Hat Advanced Cluster Security for Kubernetes には、次の 2 種類の権限セットがあります。

    • Red Hat によって作成され、変更できないシステム権限セット。
    • Red Hat Advanced Cluster Security for Kubernetes 管理者がいつでも作成および変更できるカスタム権限セット。
  • アクセススコープ は、ユーザーがアクセスできる Kubernetes および OpenShift Container Platform リソースのセットです。たとえば、ユーザーが特定のプロジェクトの Pod に関する情報にのみアクセスできるようにするアクセススコープを定義できます。Red Hat Advanced Cluster Security for Kubernetes には、次の 2 種類のアクセススコープがあります。

    • Red Hat により作成され、変更できないシステムアクセススコープ。
    • Red Hat Advanced Cluster Security for Kubernetes 管理者がいつでも作成および変更できるカスタムアクセススコープ。

13.4.1. システムロール

Red Hat Advanced Cluster Security for Kubernetes には、ルールの作成時にユーザーに適用できるデフォルトのシステムロールがいくつか含まれています。必要に応じて、カスタムロールを作成することもできます。

システムロール説明

Admin

このロールは管理者を対象としています。これを使用して、すべてのリソースへの読み取りおよび書き込みアクセスを提供します。

Analyst

このロールは、変更を加えることはできないが、すべてを表示できるユーザーを対象としています。これを使用して、すべてのリソースに読み取り専用アクセスを提供します。

Continuous Integration

このロールは、CI (継続的インテグレーション) システムを対象としており、デプロイメントポリシーを適用するのに必要なアクセス許可セットが含まれています。

なし

このロールには、リソースへの読み取りおよび書き込みアクセス権がありません。このロールを、すべてのユーザーの最小アクセ出力ルとして設定できます。

Sensor Creator

Red Hat Advanced Cluster Security for Kubernetes は、このロールを使用して新しいクラスターのセットアップを自動化します。これには、セキュアなクラスターに Sensors を作成する権限セットが含まれます。

Scope Manager

このロールには、アクセススコープの作成および変更に必要な最小限の権限が含まれます。

13.4.1.1. システムロールの権限セットおよびアクセス範囲の表示

デフォルトのシステムロールの権限セットおよびアクセス範囲を表示できます。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess control に移動します。
  2. Roles を選択します。
  3. ロールの 1 つをクリックして、その詳細を表示します。詳細ページには、選択されたロールの権限セットおよびアクセス範囲が表示されます。
注記

デフォルトのシステムロールの権限セットおよびアクセス範囲を変更することはできません。

13.4.1.2. カスタムロールの作成

アクセス制御 ビューから新しいロールを作成できます。

前提条件

  • カスタムロールを作成、変更、および削除するには、Admin ロール、または AuthProvider および Role リソースの読み取りおよび書き込み権限を持つロールが必要です。
  • ロールを作成する前に、カスタムロールの権限セットおよびアクセススコープを作成する必要があります。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess control に移動します。
  2. Roles タブを選択します。
  3. Add role をクリックします。
  4. 新しいロールの Name および Description を入力します。
  5. ロールの 権限セット を選択します。
  6. ロールの アクセススコープ を選択します。
  7. Save をクリックします。

13.4.1.3. ユーザーまたはグループへのロールの割り当て

RHACS ポータルを使用して、ユーザーまたはグループにロールを割り当てることができます。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess Control に移動します。
  2. 認証プロバイダーの一覧から、認証プロバイダーを選択します。
  3. Edit minimum role and rules をクリックします。
  4. Rules セクションで、Add new rule をクリックします。
  5. Key で、useridnameemail、または group から 1 つ選択します。
  6. Value に、選択したキーに基づいたユーザー ID、名前、電子メールアドレス、またはグループの値を入力します。
  7. Role ドロップダウンメニューをクリックして、割り当てるロールを選択します。
  8. Save をクリックします。

ユーザーまたはグループごとにこれらの手順を繰り返し、異なるロールを割り当てることができます。

13.4.2. システム権限セット

Red Hat Advanced Cluster Security for Kubernetes には、ロールに適用できるデフォルトのシステム権限セットがいくつか含まれています。必要に応じて、カスタム権限セットを作成することもできます。

パーミッションセット説明

Admin

すべてのリソースへの読み取りおよび書き込みアクセスを提供します。

Analyst

すべてのリソースに読み取り専用アクセスを提供します。

Continuous Integration

このアクセス許可セットは、CI (継続的インテグレーション) システムを対象としており、デプロイメントポリシーを適用するのに必要なアクセス許可が含まれています。

None

どのリソースにも読み取りおよび書き込み権限は許可されていません。

Sensor Creator

セキュリティー保護されたクラスターでセンサーの作成に必要なリソースのパーミッションを提供します。

13.4.2.1. システム権限セットの権限の表示

RHACS ポータルで設定されたシステム権限の権限を表示できます。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess control に移動します。
  2. Permission sets を選択します。
  3. 権限セットの 1 つをクリックして、その詳細を表示します。詳細ページには、選択した権限セットに対するリソースおよびその権限の一覧が表示されます。
注記

システム権限セットの権限を変更することはできません。

13.4.2.2. カスタム権限セットの作成

Access Control ビューから新しいアクセス許可セットを作成できます。

前提条件

  • 管理者 ロール、または権限セットを作成、変更、および削除するには、AuthProvider リソースおよび Role リソースの読み取りおよび書き込み権限を持つ権限セットを持つロールが必要です。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess control に移動します。
  2. Permission sets タブを選択します。
  3. Add permission set をクリックします。
  4. 新しい権限セットの Name および Description を入力します。
  5. リソースごとに、Access level 列で、No accessRead accessRead and Write access のいずれかのアクセス許可を選択します。

    警告
    • ユーザーに権限セットを設定する場合は、次のリソースに読み取り専用の権限を付与する必要があります。

      • Alert
      • Cluster
      • Deployment
      • Image
      • NetworkPolicy
      • NetworkGraph
      • Policy
      • Secret
    • これらの権限は、新しい権限セットを作成するときに事前に選択されています。
    • これらの権限を付与しない場合、ユーザーは RHACS ポータルでページを表示する際に問題が発生します。
  6. Save をクリックします。

13.4.3. システムアクセススコープ

Red Hat Advanced Cluster Security for Kubernetes には、ロールに適用できるデフォルトのシステムアクセススコープがいくつか含まれています。必要に応じて、カスタムアクセススコープを作成することもできます。

アクセススコープ説明

Unrestricted

Red Hat Advanced Cluster Security for Kubernetes が監視するすべてのクラスターと namespace へのアクセスを提供します。

Deny All

Kubernetes および OpenShift Container Platform リソースへのアクセスを提供しません。

13.4.3.1. システムアクセススコープの詳細の表示

RHACS ポータルで、アクセススコープで許可されているまたは許可されていない Kubernetes および OpenShift Container Platform リソースを表示できます。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess control に移動します。
  2. Access scopes を選択します。
  3. アクセススコープの 1 つをクリックして、その詳細を表示します。詳細ページには、クラスターおよび名前空間の一覧、および選択したアクセススコープで許可されているものが表示されます。
注記

システムアクセススコープに許可されているリソースを変更することはできません。

13.4.3.2. カスタムアクセススコープの作成

アクセス制御 ビューから新しいアクセススコープを作成できます。

前提条件

  • 管理者 ロール、または権限セットを作成、変更、および削除するには、AuthProvider リソースおよび Role リソースの読み取りおよび書き込み権限を持つ権限セットを持つロールが必要です。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess control に移動します。
  2. Access scope タブを選択します。
  3. Add access scope をクリックします。
  4. 新しいアクセススコープの 名前説明 を入力します。
  5. Allowed resources セクションの下で、以下を行います。

    • Cluster filter および Namespace filter ボックスを使用して、一覧に表示されているクラスターおよび名前空間の一覧をフィルターリングします。
    • <Cluster_name> を展開して、そのクラスター内の namespace の一覧を表示します。
    • クラスターの Manual selection 列の下にあるトグルをオンにして、そのクラスター内のすべての namespace へのアクセスを許可します。

      注記

      特定のクラスターへのアクセスにより、ユーザーはクラスターのスコープ内の次のリソースにアクセスできます。

      • OpenShift Container Platform または Kubernetes クラスターのメタデータおよびセキュリティー情報
      • 許可されたクラスターのコンプライアンス情報
      • ノードのメタデータおよびセキュリティー情報
      • そのクラスター内のすべての名前空間とそれに関連するセキュリティー情報へのアクセス
    • namespace の Manual selection 列の下にあるトグルをオンにして、その namespace へのアクセスを許可します。

      注記

      特定の namespace にアクセスすると、namespace のスコープ内で次の情報にアクセスできます。

      • デプロイメントに関するアラートおよび違反
      • イメージの脆弱性データ
      • デプロイメントメタデータおよびセキュリティー情報
      • ロールおよびユーザー情報
      • デプロイメントのネットワークグラフ、ポリシー、およびベースライン情報
      • プロセス情報およびプロセスベースライン設定
      • 各デプロイメントの優先リスク情報
  6. ラベルに基づいてクラスターおよび namespace へのアクセスを許可する場合は、Label selection rules セクションの Add label selector をクリックします。次に、Add rules をクリックして、ラベルセレクターの キー のペアを指定します。クラスターおよび namespace のラベルを指定できます。
  7. Save をクリックします。

13.4.4. リソース定義

Red Hat Advanced Cluster Security for Kubernetes には、複数のリソースが含まれています。次の表に、リソースと、ユーザーが read または write 権限で実行できるアクションを示します。

リソース権限の読み取り書き込み許可

APIToken

既存の API トークンを一覧表示します。

新しい API トークンを作成するか、既存のトークンを取り消します。

Alert

既存のポリシー違反を表示します。

ポリシー違反を解決または編集します。

AuthPlugin

既存の認証プラグインを表示します。

これらの設定を変更します。(ローカル管理者のみ。)

AuthProvider

シングルサインオンの既存の設定を表示します。

これらの設定を変更します。

BackupPlugins

AWS S3 などの自動バックアップシステムとの既存の統合を表示します。

これらの設定を変更します。

CVE

内部でのみ使用

内部でのみ使用

Cluster

既存の保護されたクラスターを表示します。

新しい保護されたクラスターを追加し、既存のクラスターを変更または削除します。

Compliance

コンプライアンス基準および結果を表示します。

該当なし

ComplianceRunSchedule

スケジュールされたコンプライアンス実行を表示します。

スケジュールされたコンプライアンス実行を作成、変更、または削除します。

ComplianceRuns

最近のコンプライアンス実行およびその完了ステータスを表示します。

コンプライアンスの実行をトリガーします。

Config

データ保持、セキュリティー通知、およびその他の関連設定のオプションを表示します。

これらの設定を変更します。

DebugLogs

Red Hat Advanced Cluster Security for Kubernetes コンポーネントで現在のロギングの詳細レベルを表示します。

ロギングレベルを変更します。

Deployment

保護されたクラスター内のデプロイメント (ワークロード) を表示します。

該当なし

Detection

イメージまたはデプロイメント YAML のビルド時ポリシーを確認します。

該当なし

Group

ユーザーメタデータを Red Hat Advanced Cluster Security for Kubernetes に一致させる既存の RBAC ルールを表示します。

設定済みの RBAC ルールを作成、変更、または削除します。

Image

イメージ、そのコンポーネント、およびそれらの脆弱性を表示します。

該当なし

ImageComponent

内部でのみ使用

内部でのみ使用

ImageIntegration

既存のイメージレジストリー統合を一覧表示します。

イメージレジストリー統合を作成、編集、または削除します。

ImbuedLogs

内部でのみ使用

内部でのみ使用

Indicator

デプロイメントのプロセスアクティビティーを表示します。

該当なし

K8sRole

保護されたクラスターでの Kubernetes ロールベースのアクセス制御のロールを表示します。

該当なし

K8sRoleBinding

保護されたクラスターでの Kubernetes ロールベースのアクセス制御のロールバインディングを表示します。

該当なし

K8sSubject

保護されたクラスターでの Kubernetes ロールベースのアクセス制御のユーザーとグループを表示します。

該当なし

Licenses

Red Hat Advanced Cluster Security for Kubernetes の既存のライセンスのステータスを表示します。

新しいライセンスキーをアップロードします。

Namespace

保護されたクラスター内の既存の Kubernetes namespace を表示します。

該当なし

NetworkGraph

保護されたクラスター内のアクティブで許可されたネットワーク接続を表示します。

該当なし

NetworkPolicy

保護されたクラスター内の既存のネットワークポリシーを表示し、変更をシミュレートします。

保護されたクラスターにネットワークポリシーの変更を適用します。

Node

セキュリティーで保護されたクラスター内の既存の Kubernetes ノードを表示します。

該当なし

Notifier

電子メール、Jira、Webhook などの通知システムの既存の統合を表示します。

これらの統合を作成、変更、または削除します。

Policy

既存のシステムポリシーを表示します。

システムポリシーを作成、変更、または削除します。

ProbeUpload

アップロードされたプローブファイルのマニフェストを読み取ります。

Central にサポートパッケージをアップロードします。

ProcessWhitelist

プロセスベースラインを表示します。

ベースラインからプロセスを追加または削除します。

Risk

リスク結果を表示します。

該当なし

Role

既存の Red Hat Advanced Cluster Security for Kubernetes RBAC ロールおよびその権限を表示します。

ロールおよびその権限を追加、変更、または削除します。

ScannerBundle

スキャナーバンドルをダウンロードします。

該当なし

ScannerDefinitions

既存のイメージスキャナー統合を一覧表示します。

イメージスキャナー統合を作成、変更、または削除します。

Secret

保護されたクラスターのシークレットに関するメタデータを表示します。

該当なし

SensorUpgradeConfig

自動アップグレードのステータスを確認します。

保護されたクラスターの自動アップグレードを無効または有効にします。

ServiceAccount

セキュリティーで保護されたクラスター内の Kubernetes サービスアカウントを一覧表示します。

該当なし

ServiceIdentity

Red Hat Advanced Cluster Security for Kubernetes サービス間認証に関するメタデータを表示します。

サービス間認証の認証情報を取り消すか、再発行します。

User

認証プロバイダーが提供するメタデータを含め、Red Hat Advanced Cluster Security for Kubernetes インスタンスにアクセスしたユーザーを表示します。

該当なし

13.5. PKI 認証の有効化

認証にエンタープライズ認証局 (CA) を使用する場合は、Red Hat Advanced Cluster Security for Kubernetes (RHACS) を設定して、ユーザーの個人証明書を使用してユーザーを認証できます。

PKI 認証を設定した後、ユーザーおよび API クライアントは個人証明書を使用してログインできます。証明書を持たないユーザーは、API トークン、ローカル管理者パスワード、または他の認証プロバイダーを含む他の認証オプションを引き続き使用できます。PKI 認証は、Web UI、gRPC、および REST API と同じポート番号で使用できます。

PKI 認証を設定する場合、デフォルトでは、Red Hat Advanced Cluster Security for Kubernetes は、PKI、Web UI、gRPC、その他のシングルサインオン (SSO) プロバイダー、および REST API に同じポートを使用します。YAML 設定ファイルを使用してエンドポイントを設定および公開することにより、PKI 認証用に別のポートを設定することもできます。

13.5.1. RHACS ポータルを使用した PKI 認証の設定

RHACS ポータルを使用して PKI 認証を設定できます。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess Control に移動します。
  2. Add an Auth Provider をクリックし、User Certificates を選択します。
  3. Name ボックスで、この認証プロバイダーの名前を指定します。
  4. ルート CA 証明書を PEM 形式でテキストボックスに貼り付けます。
  5. オプション: 最小アクセ出力ル を変更し、属性ごとにロールマッピングを追加します。
  6. Save をクリックします。

13.5.2. roxctl CLI を使用した PKI 認証の設定

roxctl CLI を使用して PKI 認証を設定できます。

手順

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

    $ roxctl -e <hostname>:<port_number> central userpki create -c <ca_certificate_file> -r <default_role_name> <provider_name>

13.5.3. 認証キーおよび証明書の更新

RHACS ポータルを使用して、認証キーおよび証明書を更新できます。

手順

  1. 新しい認証プロバイダーを作成します。
  2. 古い認証プロバイダーから新しい認証プロバイダーにロールマッピングをコピーします。
  3. 古いルート CA キーを使用して、古い認証プロバイダーの名前を変更または削除します。

13.5.4. クライアント証明書を使用したログイン

PKI 認証を設定すると、RHACS ポータルのログインページに証明書プロンプトが表示されます。プロンプトは、設定されたルート CA により信頼されているクライアント証明書がユーザーのシステムにインストールされている場合にのみ表示されます。

このセクションで説明されている手順に従って、クライアント証明書を使用してログインします。

手順

  1. RHACS ポータルを開きます。
  2. ブラウザーのプロンプトで証明書を選択します。
  3. ログインページで、認証プロバイダー名オプションを選択し、証明書を使用してログインします。証明書を使用してログインしない場合は、管理者パスワードまたは別のログイン方法を使用してログインすることもできます。
注記

クライアント証明書を使用して RHACS ポータルにログインすると、ブラウザーを再起動しない限り、別の証明書でログインすることができません。

第14章 システムヘルスダッシュボードの使用

Red Hat Advanced Cluster Security for Kubernetes システムヘルスダッシュボードは、Red Hat Advanced Cluster Security for Kubernetes コンポーネントのヘルス関連情報を表示する単一のインターフェイスを提供します。

注記

システムヘルスダッシュボードは、Red Hat Advanced Cluster Security for Kubernetes 3.0.53 以降でのみ使用できます。

14.1. システムヘルスダッシュボードの詳細

ヘルスダッシュボードにアクセスするには、以下を行います。

  • RHACS ポータルで、Platform ConfigurationSystem Health に移動します。

ヘルスダッシュボードは、次のグループに情報を整理します。

  • クラスターヘルス - Red Hat Advanced Cluster Security for Kubernetes クラスターの全体的な状態を表示します。
  • 脆弱性の定義 - 脆弱性の定義の最終更新時刻を表示します。
  • イメージの統合 - 統合したすべてのレジストリーの状態を表示します。
  • 通知機能の統合 - 統合した通知機能 (Slack、電子メール、Jira、またはその他の同様の統合) の状態を表示します。
  • バックアップ統合 - 統合したバックアッププロバイダーの状態を表示します。

ダッシュボードには、さまざまなコンポーネントの次の状態が一覧表示されます。

  • Healthy - コンポーネントは機能しています。
  • Degraded - コンポーネントが一部正常ではありません。この状態は、クラスターが機能していることを意味しますが、一部のコンポーネントは正常ではなく、注意が必要です。
  • Unhealthy - このコンポーネントは正常ではなく、早急な対応が必要です。
  • Uninitialized - コンポーネントが、ヘルス評価について Central に報告していません。初期化されていない状態には注意が必要な場合がありますが、多くの場合、コンポーネントは数分後または統合が使用されたときにヘルスステータスを報告します。

クラスターヘルスセクション

Cluster Overview には、Red Hat Advanced Cluster Security for Kubernetes クラスターの状態に関する情報が表示されます。以下に関するヘルス状態を報告します。

  • コレクターステータス - Red Hat Advanced Cluster Security for Kubernetes が使用する Collector Pod が正常であると報告しているかどうかを示します。
  • センサーステータス - Red Hat Advanced Cluster Security for Kubernetes が使用する Sensor Pod が正常であると報告しているかどうかを示します。
  • センサーアップグレード - Central と比較すると、センサーが正しいバージョンを実行しているかどうかを示します。
  • 認証情報の有効期限 - Red Hat Advanced Cluster Security for Kubernetes の認証情報が有効期限に近づいているかどうかを示します。
注記

クラスターが Uninitialized 状態の場合は、チェックインするまで、Red Hat Advanced Cluster Security for Kubernetes により保護されているクラスターの数について報告されません。

脆弱性の定義セクション

Vulnerabilities Definition セクションには、脆弱性の定義が最後に更新された時刻と、定義が最新であるかどうかが表示されます。

統合セクション

Image IntegrationsNotifier Integrations、および Backup Integrations の 3 つの統合セクションがあります。Cluster Health セクションと同様に、このセクションには、統合が正常ではない場合にその数が一覧表示されます。それ以外の場合は、すべての統合が正常であると報告されます。

注記

Integrations セクションでは、次の条件のいずれかが満たされた場合に、正常な統合が 0 として一覧表示されます。

  • Red Hat Advanced Cluster Security for Kubernetes をサードパーティーのツールと統合していません。
  • 一部のツールと統合しましたが、統合が無効になっているか、ポリシー違反を設定していません。

14.2. RHACS ポータルを使用した診断バンドルの生成

RHACS ポータルのシステムヘルスダッシュボードを使用して、診断バンドルを生成できます。

前提条件

  • 診断バンドルを生成するには、DebugLogs リソースの read 権限が必要。

手順

  1. RHACS ポータルで、Platform ConfigurationSystem Health を選択します。
  2. System Health ビューヘッダーで、Generate Diagnostic Bundle をクリックします。
  3. Filter by clusters ドロップダウンメニューで、診断データを生成するクラスターを選択します。
  4. Filter by starting time で、診断データを含める日付および時刻 (UTC 形式) を指定します。
  5. Download Diagnostic Bundle をクリックします。

14.2.1. 関連情報

法律上の通知

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.