15.2. 違反の詳細の表示
Violations ビューで違反を選択すると、違反に関する詳細情報が含まれるウィンドウが開きます。複数のタブにグループ化された詳細情報が表示されます。
15.2.1. 違反タブ
Violation Details パネルの Violation タブには、ポリシーにどのように違反したかの説明が表示されます。ポリシーがデプロイフェーズ属性を対象としている場合は、違反名など、ポリシーに違反した特定の値を表示できます。ポリシーが実行時アクティビティーを対象としている場合は、引数やポリシーを作成した祖先プロセスなど、ポリシーに違反したプロセスに関する詳細情報を表示できます。
15.2.2. デプロイメントタブ
Details パネルの Deployment タブには、違反が適用されるデプロイメントの詳細が表示されます。
概要セクション
Deployment overview セクションには、以下の情報が一覧表示されます。
- デプロイメント ID: デプロイメントの英数字 ID。
- Deployment name: デプロイメントの名前。
- Deployment type: デプロイメントのタイプ。
- Cluster: コンテナーがデプロイされているクラスターの名前。
- Namespace: デプロイされたクラスターの一意の識別子。
- Replicas: レプリケートされたデプロイメントの数。
- Created: デプロイメントが作成された日時。
- Updated: デプロイメントが更新された日時。
- ラベル: 選択したデプロイメントに適用されるラベル。
- アノテーション: 選択したデプロイメントに適用されるアノテーション。
- サービスアカウント: 選択したデプロイメントのサービスアカウントの名前。
コンテナー設定セクション
Container configuration セクションには、以下の情報がリストされています。
コンテナー: コンテナーごとに、以下の情報を提供します。
- イメージ名: 選択したデプロイメントのイメージの名前。名前をクリックすると、イメージに関する詳細情報が表示されます。
Resources: このセクションでは、次のフィールドの情報を提供します。
- CPU 要求 (コア): コンテナーにより要求されるコアの数。
- CPU 制限 (コア) : コンテナーが要求できるコアの最大数。
- メモリー要求 (MB): コンテナーによって要求されるメモリーサイズ。
- メモリー制限 (MB) : コンテナーが要求できる最大メモリー。
- ボリューム: コンテナーにマウントされているボリューム (存在する場合)。
シークレット: 選択したデプロイメントに関連付けられているシークレット。シークレットごとに、次のフィールドの情報を提供します。
- 名前: シークレットの名前。
- コンテナーパス: シークレットが保存される場所。
- 名前: サービスがマウントされる場所の名前。
- ソース: データソースパス。
- 宛先: データが保存されるパス。
- タイプ: ボリュームのタイプ。
ポート設定セクション
Port configuration セクションには、次のフィールドを含む、デプロイメント内のポートに関する情報が表示されます。
ports: デプロイメントによって公開されるすべてのポート、およびこのデプロイメントとポートに関連付けられたすべての Kubernetes サービス (存在する場合)。ポートごとに、次のフィールドがリストされます。
- containerPort: デプロイメントによって公開されるポート番号。
- protocol: ポートで使用されるプロトコル (TCP や UDP など)。
- exposure: ロードバランサーやノードポートなど、サービスの公開方法。
exposureInfo: このセクションでは、次のフィールドの情報を提供します。
- level: サービスが内部でポートを公開するか、外部に公開するかどうかを示します。
- serviceName : Kubernetes サービスの名前。
- serviceID: RHACS に保存されている Kubernetes サービスの ID。
- serviceClusterIp: クラスター内 の別のデプロイメントまたはサービスがこのサービスにアクセスするために使用できる IP アドレス。これは外部 IP アドレスではありません。
- servicePort: サービスによって使用されるポート。
- nodePort: 外部トラフィックがノードに入ってくるノード上のポート。
- externalIps: クラスターの外部からサービスに外部アクセスするために使用できる IP アドレス (存在する場合)。このフィールドは内部サービスでは利用できません。
セキュリティーコンテキストセクション
Security context セクションには、コンテナーが特権コンテナーとして実行されているかどうかがリストされます。
特権:
-
特権がある 場合は
true
。 -
特権がない 場合は
false
。
-
特権がある 場合は
ネットワークポリシーセクション
Network policy セクションには、namespace と、違反を含む namespace 内のすべてのネットワークポリシーがリストされます。ネットワークポリシー名をクリックして、ネットワークポリシーの完全な YAML ファイルを表示します。
15.2.3. ポリシータブ
Details パネルの Policy タブには、違反の原因となったポリシーの詳細が表示されます。
ポリシーの概要セクション
Policy overview セクションには、次の情報が一覧表示されます。
- Severity: 必要な注意の量に関するポリシーのランク付け (critical、high、medium、または low)。
-
Categories: ポリシーのポリシーカテゴリー。ポリシーカテゴリーは、Policy categories タブの Platform Configuration
Policy Management にリストされます。 - Type: ポリシーがユーザー生成 (ユーザーによって作成されたポリシー) であるか、システムポリシー (デフォルトで RHACS に組み込まれているポリシー) であるか。
- Description: ポリシーアラートの内容の詳細な説明。
- Rationale: ポリシーの確立の背後にある理由と、それが重要である理由に関する情報。
- Guidance: 違反に対処する方法に関する提案。
- MITRE ATT&CK : このポリシーに適用される MITRE tactics and techniques があるかどうかを示します。
ポリシーの動作
Policy behavior セクションでは、次の情報を提供します。
-
ライフサイクルステージ: ポリシーが属するライフサイクルステージ (
Build
、Deploy
、またはRuntime
)。 Event source: このフィールドは、ライフサイクルステージが
Runtime
の場合にのみ適用されます。次のいずれかです。- Deployment: イベントソースにプロセスおよびネットワークアクティビティー、Pod 実行、Pod ポート転送が含まれる場合、RHACS はポリシー違反をトリガーします。
- Audit logs: イベントソースが Kubernetes 監査ログレコードと一致すると、RHACS はポリシー違反をトリガーします。
Response: 応答は次のいずれかになります。
- Inform: ポリシー違反では、違反リストに違反が生成されます。
- Inform and enforce: 違反が適用されます。
Enforcement: 応答が Inform and enforce に設定されている場合、次のステージに設定されている適用タイプがリストされます。
- Build: イメージがポリシーの基準と一致すると、RHACS は継続的インテグレーション (CI) ビルドに失敗します。
Deploy: Deploy 段階では、RHACS アドミッションコントローラーが設定され実行されている場合、RHACS はポリシーの条件に一致するデプロイメントの作成と更新をブロックします。
- アドミッションコントローラーが適用されているクラスターでは、Kubernetes または OpenShift Container Platform サーバーがすべての非準拠のデプロイメントをブロックします。他のクラスターでは、RHACS は準拠していないデプロイメントを編集して、Pod がスケジュールされないようにします。
- 既存のデプロイメントの場合、ポリシーの変更は、Kubernetes イベントが発生したときに、基準が次に検出されたときにのみ適用されます。適用の詳細は、「デプロイステージのセキュリティーポリシーの適用」を参照してください。
- Runtime: Pod 内のイベントがポリシーの基準に一致すると、RHACS はすべての Pod を削除します。
ポリシー条件セクション
Policy criteria セクションには、ポリシーのポリシー条件が一覧表示されます。
15.2.3.1. デプロイステージのセキュリティーポリシーの実施
Red Hat Advanced Cluster Security for Kubernetes は、デプロイ時のポリシーに対して、アドミッションコントローラーによるハードな適用と RHACS Sensor によるソフトな適用という 2 つの形式のセキュリティーポリシー適用をサポートしています。アドミッションコントローラーは、ポリシーに違反するデプロイメントの作成または更新をブロックします。アドミッションコントローラーが無効または使用できない場合、Sensor はポリシーに違反するデプロイメントのレプリカを 0
にスケールダウンして強制を実行できます。
ポリシーの適用は、実行中のアプリケーションまたは開発プロセスに影響を与える可能性があります。適用オプションを有効にする前に、すべての利害関係者に通知し、自動適用アクションに対応する方法を計画してください。
15.2.3.1.1. ハードエンフォースメント
ハードエンフォースメントは、RHACS アドミッションコントローラーによって実行されます。アドミッションコントローラーが適用されているクラスターでは、Kubernetes または OpenShift Container Platform サーバーがすべての非準拠のデプロイメントをブロックします。アドミッションコントローラーは、CREATE
および UPDATE
操作をブロックします。デプロイ時の強制が有効に設定されたポリシーを満たす Pod の作成または更新リクエストはすべて失敗します。
Kubernetes アドミッション Webhook は、CREATE
、UPDATE
、DELETE
、または CONNECT
操作のみをサポートします。RHACS アドミッションコントローラーは、CREATE
および UPDATE
操作のみをサポートします。kubectl patch
、kubectl set
、kubectl scale
などの操作は、UPDATE 操作ではなく、PATCH 操作です。Kubernetes では PATCH 操作がサポートされていないため、RHACS は PATCH 操作の強制を実行できません。
ブロックを強制するには、RHACS でクラスターに対して次の設定を有効にする必要があります。
- Enforce on Object Creates: Dynamic Configuration セクションのこのトグルは、アドミッションコントロールサービスの動作を制御します。これを機能させるには、Static Configuration セクションの Configure Admission Controller Webhook to listen on Object Creates トグルをオンにする必要があります。
- オブジェクトの更新時に強制: Dynamic Configuration セクションのこのトグルは、アドミッションコントロールサービスの動作を制御します。これを機能させるには、Static Configuration セクションの Configure Admission Controller Webhook to listen on Object Updates トグルをオンにする必要があります。
Static Configuration 設定の項目を変更した場合に、その変更を有効にするにはセキュアクラスターを再デプロイする必要があります。
15.2.3.1.2. ソフトな適用
ソフトな適用は RHACS Sensor によって実行されます。このエンフォースメントにより、操作が開始しなくなります。ソフトな適用では、Sensor はレプリカを 0 にスケーリングし、Pod がスケジュールされるのを防ぎます。このエンフォースメントでは、クラスター内で準備ができていないデプロイメントが使用可能になります。
ソフトな適用が設定されていて、Sensor がダウンしている場合、RHACS は適用を実行できません。
15.2.3.1.3. namespace の除外
デフォルトでは、RHACS は、stackrox
、kube-system
、istio-system
namespace などの特定の管理 namespace をエンフォースメントブロックから除外します。その理由は、RHACS が正しく機能するためには、これらの namespace 内の一部の項目をデプロイする必要があるためです。
15.2.3.1.4. 既存のデプロイメントへのエンフォースメント
既存のデプロイメントの場合、ポリシーの変更は、Kubernetes イベントが発生したときに、基準が次に検出されたときにのみ適用されます。ポリシーに変更を加えた場合は、Policy Management を選択し、Reassess All をクリックしてポリシーを再評価する必要があります。このアクションは、新しい受信 Kubernetes イベントがあるかどうかに関係なく、すべての既存のデプロイメントにデプロイポリシーを適用します。ポリシーに違反があった場合は、RHACS がエンフォースメントを実行します。
関連情報