6.4. カスタムポリシーの作成
デフォルトのポリシーを使用することに加えて、Red Hat Advanced Cluster Security for Kubernetes でカスタムポリシーを作成することもできます。
新しいポリシーを構築するには、既存のポリシーのクローンを作成するか、ゼロから新規ポリシーを作成します。
- RHACS ポータルの Risk ビューのフィルター条件をもとにポリシーを作成することもできます。
-
また、ポリシー条件に論理演算子ではなく
AND
、OR
およびNOT
を使用して高度なポリシーを作成することもできます。
6.4.1. システムポリシービューからのセキュリティーポリシーの作成
システムポリシービューから新しいセキュリティーポリシーを作成できます。
手順
-
RHACS ポータルで、Platform Configuration
Policy Management に移動します。 - Create policy をクリックします。
Policy details セクションに、ポリシーに関する以下の情報を入力します。
- ポリシーの Name を入力します。
オプション: Attach notifiers セクションの下にある利用可能な Notifier から選択して、通知機能をポリシーに割り当てることもできます。
注記アラートを転送する前に、RHACS を Webhook、Jira、PagerDuty、Splunk などの通知プロバイダーと統合する必要があります。
-
このポリシーの 重大度 レベルを選択します (
Critical
、High
、Medium
、またはLow
のいずれか)。 - このポリシーに適用するポリシーの Categories を選択します。カテゴリーの作成に関する詳細は、このドキュメントの後半で「ポリシーカテゴリーの作成および管理」を参照してください。
- Description フィールドに、ポリシーの詳細を入力します。
- Rationale フィールドにポリシーが存在する理由の説明を入力します。
- Guidance フィールドでこのポリシーの違反を解決するための手順を入力します。
オプション: MITRE ATT&CK セクションで、ポリシーに指定する tactics and the techniques を選択します。
- Add tactic をクリックし、ドロップダウンリストから調整を選択します。
- Add technique をクリックして、選択した戦略の手法を追加します。戦略には、複数の手法を指定できます。
- Next をクリックします。
Policy behavior セクションで、次の手順を実行します。
ポリシーが適用される Lifecycle stages (Build、Deploy、または Runtime) を選択します。複数のステージを選択できます。
- ビルド時ポリシーは、CVE や Dockerfile 手順などのイメージフィールドに適用されます。
- デプロイ時のポリシーにはすべてのビルドタイムポリシー条件を含めることができますが、特権モードで実行したり、Docker ソケットをマウントするなど、クラスター設定からのデータを含めることもできます。
- ランタイムポリシーには、すべてのビルド時およびデプロイ時のポリシー条件を含めることができますが、ランタイム時のプロセス実行に関するデータを含めることもできます。
オプション: Runtime lifecycle stage を選択した場合は、以下の Event sources のいずれかを選択します。
- Deployment: イベントソースにプロセスとネットワークアクティビティー、Pod 実行、および Pod ポート転送が含まれている場合に、RHACS はポリシー違反をトリガーします。
- イベントソースが Kubernetes 監査ログレコードと一致すると、RHACS はポリシー違反をトリガーします。
Response method には、次のいずれかのオプションを選択します。
- Inform: 違反の一覧に違反を追加する。
- inform および enforce: アクションを実施します。
オプション: Inform and enforce を選択した場合は、Configure enforcement behavior で、各ライフサイクルのトグルを使用してポリシーの適用動作を選択します。Lifecycle stages の設定時に選択したステージでのみ使用できます。適用の振る舞いは、ライフサイクルの各ステージで異なります。
- Build: イメージがポリシーの基準と一致すると、RHACS は継続的インテグレーション (CI) ビルドに失敗します。
Deploy: Deploy 段階では、RHACS アドミッションコントローラーが設定され実行されている場合、RHACS はポリシーの条件に一致するデプロイメントの作成と更新をブロックします。
- アドミッションコントローラーが適用されているクラスターでは、Kubernetes または OpenShift Container Platform サーバーがすべての非準拠のデプロイメントをブロックします。他のクラスターでは、RHACS は準拠していないデプロイメントを編集して、Pod がスケジュールされないようにします。
- 既存のデプロイメントの場合、ポリシーの変更は、Kubernetes イベントが発生したときに、基準が次に検出されたときにのみ適用されます。適用の詳細は、「デプロイステージのセキュリティーポリシーの適用」を参照してください。
Runtime - Pod のイベントがポリシーの基準と一致すると、RHACS はすべての Pod を削除します。
警告ポリシーの適用は、実行中のアプリケーションまたは開発プロセスに影響を与える可能性があります。適用オプションを有効にする前に、すべての利害関係者に通知し、自動適用アクションに対応する方法を計画してください。
- Next をクリックします。
Policy Criteria セクションで、ポリシーをトリガーする属性を設定します。
Policy Section にポリシーフィールドをクリックしてドラッグし、基準を追加します。
注記利用可能なポリシーフィールドは、ポリシーに選択したライフサイクルステージによって異なります。たとえば、
Kubernetes access policies
またはNetworking
下の基準は、ランタイムライフサイクルのポリシーを作成するときに利用できますが、ビルドライフサイクルのポリシーを作成する場合は利用できません。ポリシー条件の詳細 (条件に関する情報や、条件が使用可能なライフサイクルフェーズなど) については、「関連情報」セクションの「ポリシー条件」を参照してください。-
オプション: Add condition をクリックして、ポリシーをトリガーする追加の基準を含むポリシーセクションを追加します (たとえば、古いイメージに対してトリガーするには、
image tag
がlatest
はないこと やimage age
を設定し、イメージがビルドされてからの最小日数を指定できます)。
- Next をクリックします。
Policy scope セクションで、以下を設定します。
- Add inclusion scope をクリックして、Restrict by 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 ライフサイクルステージ) をチェックする場合、効果はありません。
- Next をクリックします。
- Review policy セクションで、ポリシー違反をプレビューします。
- Save をクリックします。
6.4.1.1. デプロイステージのセキュリティーポリシーの実施
Red Hat Advanced Cluster Security for Kubernetes は、デプロイ時のポリシーに対して、アドミッションコントローラーによるハードな適用と RHACS Sensor によるソフトな適用という 2 つの形式のセキュリティーポリシー適用をサポートしています。アドミッションコントローラーは、ポリシーに違反するデプロイメントの作成または更新をブロックします。アドミッションコントローラーが無効または使用できない場合、Sensor はポリシーに違反するデプロイメントのレプリカを 0
にスケールダウンして強制を実行できます。
ポリシーの適用は、実行中のアプリケーションまたは開発プロセスに影響を与える可能性があります。適用オプションを有効にする前に、すべての利害関係者に通知し、自動適用アクションに対応する方法を計画してください。
6.4.1.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 設定の項目を変更した場合に、その変更を有効にするにはセキュアクラスターを再デプロイする必要があります。
6.4.1.1.2. ソフトな適用
ソフトな適用は RHACS Sensor によって実行されます。このエンフォースメントにより、操作が開始しなくなります。ソフトな適用では、Sensor はレプリカを 0 にスケーリングし、Pod がスケジュールされるのを防ぎます。このエンフォースメントでは、クラスター内で準備ができていないデプロイメントが使用可能になります。
ソフトな適用が設定されていて、Sensor がダウンしている場合、RHACS は適用を実行できません。
6.4.1.1.3. namespace の除外
デフォルトでは、RHACS は、stackrox
、kube-system
、istio-system
namespace などの特定の管理 namespace をエンフォースメントブロックから除外します。その理由は、RHACS が正しく機能するためには、これらの namespace 内の一部の項目をデプロイする必要があるためです。
6.4.1.1.4. 既存のデプロイメントへのエンフォースメント
既存のデプロイメントの場合、ポリシーの変更は、Kubernetes イベントが発生したときに、基準が次に検出されたときにのみ適用されます。ポリシーに変更を加えた場合は、Policy Management を選択し、Reassess All をクリックしてポリシーを再評価する必要があります。このアクションは、新しい受信 Kubernetes イベントがあるかどうかに関係なく、すべての既存のデプロイメントにデプロイポリシーを適用します。ポリシーに違反があった場合は、RHACS がエンフォースメントを実行します。
6.4.2. リスクビューからのセキュリティーポリシーの作成
リスク ビューで展開のリスクを評価しているときに、ローカルページフィルタリングを適用すると、使用しているフィルタリング条件をもとに新しいセキュリティーポリシーを作成できます。
手順
- RHACS ポータルに移動し、ナビゲーションメニューから Risk を選択します。
- ポリシーを作成するローカルページのフィルタリング条件を適用します。
- New Policy を選択し、必須フィールドに入力して新規ポリシーを作成します。
6.4.3. ポリシー条件
Policy Criteria セクションで、ポリシーをトリガーするデータを設定できます。
以下の表に記載されている属性に基づいてポリシーを設定できます。
この表では、以下のようになります。
正規表現、AND、OR、および NOT 列は、特定の属性とともに正規表現およびその他の論理演算子を使用できるかどうかを示します。
-
Regex の
!
(正規表現) は、リストされたフィールドに正規表現のみを使用できることを示します。 -
AND の
!
、または OR は、属性に前述の論理演算子のみを使用できることを示します。 - 正規表現 の ✕ / NOT / AND、OR 列は、属性がこれらのいずれもサポートしていないことを示します (正規表現、否定、論理演算子)。
-
Regex の
- RHACS バージョン 列は、属性を使用する必要がある Red Hat Advanced Cluster Security for Kubernetes のバージョンを示します。
論理組み合わせ演算子の
AND
およびOR
は、以下の属性には使用できません。-
ブール値:
true
およびfalse
最小値セマンティクス。たとえば、以下のようになります。
- 最小 RBAC パーミッション
- イメージ作成からの日数
-
ブール値:
NOT
論理演算子は、以下の属性に使用できません。-
ブール値:
true
およびfalse
-
<
、>
、<=
、>=
演算子など、比較をすでに使用している数値。 複数の値を指定できる複合条件。たとえば、以下のようになります。
- Dockerfile 行。命令と引数の両方が含まれます。
- 環境変数。名前と値の両方で構成されます。
- Add Capabilities、Drop Capabilities、Days since image was created、Days since image was last scanned などの他の意味。
-
ブール値:
属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND、OR | フェーズ |
---|---|---|---|---|---|
セクション: イメージレジストリー | |||||
Image Registry | イメージレジストリーの名前。 | Image Registry | String |
正規表現、 |
Build、 |
Image Name |
| Image Remote | String |
正規表現、 |
Build、 |
Image Tag | イメージの識別子。 | Image Tag | String |
正規表現、 |
Build、 |
Image Signature | イメージの署名を検証するために使用できる署名統合のリスト。署名がないか、提供された署名統合の少なくとも 1 つによって署名が検証できないイメージに関するアラートを作成します。 | Image Signature Verified By | すでに設定されているイメージ署名統合の有効な ID |
! |
Build、 |
セクション: イメージの内容 | |||||
The Common Vulnerabilities and Exposures (CVE) is fixable | この基準は、評価しているデプロイメント内のイメージに修正可能な CVE がある場合にのみ違反となります。 | Fixable | ブール値 | ✕ |
Build、 |
Days Since CVE Was First Discovered In Image | この基準は、RHACS が特定のイメージ内で CVE を検出してから、指定された日数を超えた場合にのみ違反となります。 | Days Since CVE Was First Discovered In Image | 整数 | ✕ |
Build、 |
Days Since CVE Was First Discovered In System | この基準は、RHACS が監視するすべてのクラスター内にデプロイされた全イメージから CVE を検出してから、指定された日数を超えた場合にのみ違反となります。 | Days Since CVE Was First Discovered In System | 整数 | ✕ |
Build、 |
イメージの経過時間 | イメージの作成日からの最小日数。 | イメージの経過時間 | 整数 | ✕ |
Build、 |
イメージのスキャン期間 | イメージが最後にスキャンされた後の最小日数。 | イメージのスキャン期間 | 整数 | ✕ |
Build、 |
Image User | Dockerfile の USER ディレクティブと一致します。詳細は、https://docs.docker.com/engine/reference/builder/#user を参照してください。 | Image User | String |
正規表現、 |
Build、 |
Dockerfile Line | 命令と引数の両方を含む、Dockerfile の特定の行。 | Dockerfile Line | LABEL、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、USER、WORKDIR、ONBUILD のいずれか |
! 値 (AND、OR) の正規表現のみ |
Build、 |
イメージのスキャンステータス | イメージがスキャンされたかどうかを確認します。 | スキャンされていないイメージ | ブール値 | ✕ |
Build、 |
Common Vulnerability Scoring System (CVSS) |
CVSS: 指定の CVSS よりスコアが大きい ( | CVSS |
<、>、<=、>=、または何もなし (等しいことを意味します)
例: | AND, OR |
Build、 |
重大度 | CVSS またはベンダーに基づく脆弱性の重大度。Low、Moderate、Important、Critical のいずれかです。 | 重大度 |
<、>、⇐、>=、または何もなし (等しいことを意味します)
例: | AND, OR |
Build、 |
Fixed By | イメージのフラグ付きの脆弱性を修正するパッケージのバージョン文字列。この基準は、CVE 基準などを使用して脆弱性を特定する他の基準に加えて使用される場合があります。 | Fixed By | String |
正規表現、 |
Build、 |
CVE | Common Vulnerabilities and Exposures。特定の CVE 番号で使用。 | CVE | String |
正規表現、 |
Build、 |
Image Component | イメージに存在する特定のソフトウェアコンポーネントの名前とバージョン番号。 | Image Component |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
Build、 |
Image OS |
イメージのベースオペレーティングシステムの名前およびバージョン番号。たとえば、 | Image OS | String |
正規表現、 |
Build、 |
イメージラベルが必要 |
Docker イメージラベルが存在することを確認します。このポリシーは、デプロイメントのイメージに指定されたラベルがない場合にトリガーされます。キーおよび値フィールドの両方に正規表現を使用して、ラベルを照合できます。 | Required Image Label |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
Build、 |
許可されていないイメージラベル | 特定の Docker イメージラベルが使用されていないことを確認します。このポリシーは、デプロイメントのイメージに指定されたラベルがある場合にトリガーされます。キーおよび値フィールドの両方に正規表現を使用して、ラベルを照合できます。'Disallow Image Label policy' 条件は、Docker レジストリーと統合する場合にのみ適用されます。Docker ラベルの詳細は、Docker のドキュメント (https://docs.docker.com/config/labels-custom-metadata/) を参照してください。 | Disallowed Image Label |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
Build、 |
セクション: コンテナー設定 | |||||
Environment Variable |
名前または値で環境変数を確認します。環境変数属性を含むポリシーを作成するときに、ポリシーを照合する環境変数のタイプを選択できます。たとえば、デプロイメント YAML で raw 値を直接指定したり、config map、シークレット、フィールド、リソース要求や制限から値への参照を指定したりできます。デプロイメント YAML で直接指定された raw 値以外のタイプの場合、ポリシールールの対応する | Environment Variable |
RAW=key=value により、デプロイメント YAML で直接指定された環境変数を、特定のキーおよび値と照合します。キーのみを照合する場合は、
環境変数が設定 YAML で定義されていない場合は、
上記のリストでは、API オブジェクトのラベルを指定してから、括弧内でユーザーインターフェイスのラベルを指定しています。 |
! キーと値の正規表現 (RAW を使用している場合) |
デプロイ、 |
Container CPU Request | 特定のリソース用に予約されているコア数を確認します。 | Container CPU Request |
<、>、⇐、>=、または何もなし (等しいことを意味します)
例: | AND, OR |
デプロイ、 |
Container CPU Limit | リソースが使用できるコアの最大数を確認します。 | Container CPU Limit | (コンテナーの CPU 要求と同じ) | AND, OR |
デプロイ、 |
Container Memory Request | 要求される MB 数 (小数値を含む)。 | Container Memory Request | (コンテナーの CPU 要求と同じ) | AND, OR |
デプロイ、 |
Container Memory Limit | リソースが使用できるメモリーの最大量を確認します。 | Container Memory Limit | (コンテナーの CPU 要求と同じ) | AND, OR |
デプロイ、 |
Privileged container |
デプロイメントが特権モードで設定されているかどうかを確認します。この条件は、各 Pod セキュリティーコンテキスト 内の | Privileged Container |
ブール値: 各 | ✕ |
デプロイ、 |
Root filesystem writeability |
デプロイメントが | Read-Only Root Filesystem |
ブール値: 各 | ✕ |
デプロイ、 |
Seccomp Profile Type |
デプロイメントに定義された | Seccomp Profile Type |
以下のいずれかになります。
UNCONFINED | ✕ |
デプロイ、 |
Privilege escalation | デプロイメントでコンテナープロセスが親プロセスよりも多くの権限を取得できる場合にアラートを出します。 | Allow Privilege Escalation | ブール値 | ✕ |
デプロイ、 |
Drop Capabilities |
コンテナーからドロップする必要がある Linux 機能。指定された機能がドロップされない場合にアラートを発行します。たとえば、 |
Drop Capabilities |
以下のいずれかになります。
ALL | AND |
デプロイ、 |
Add Capabilities |
Raw パケットを送信したり、ファイルパーミッションをオーバーライドする機能など、コンテナーには追加できない Linux 機能。指定された機能が追加されたときにアラートを出します。たとえば、 | Add Capabilities |
AUDIT_CONTROL | OR |
デプロイ、 |
Container Name | コンテナーの名前。 | Container Name | String |
正規表現、 |
デプロイ、 |
AppArmor プロファイル | コンテナーで使用されるアプリケーション Armor ("AppArmor") プロファイル。 | AppArmor プロファイル | String |
正規表現、 |
デプロイ、 |
Liveness Probe | コンテナーが liveness プローブを定義するかどうか。 | Liveness Probe | ブール値 | ✕ |
デプロイ、 |
Readiness Probe | コンテナーが readiness プローブを定義するかどうか。 | Readiness Probe | ブール値 | ✕ |
デプロイ、 |
セクション: デプロイメントメタデータ | |||||
Disallowed Annotation | 指定された環境の Kubernetes リソースには存在できないアノテーション。 | Disallowed Annotation |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
デプロイ、 |
Required Label | Kubernetes で必要なラベルが存在するかどうかを確認します。 | Required Label |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
デプロイ、 |
Required Annotation | Kubernetes に必要なアノテーションの有無を確認します。 | Required Annotation |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
デプロイ、 |
Runtime Class |
デプロイメントの | Runtime Class | String |
正規表現、 |
デプロイ、 |
ホストネットワーク |
| ホストネットワーク | ブール値 | ✕ |
デプロイ、 |
Host PID | Process ID (PID) namespace がコンテナーとホスト間で分離されているかどうかを確認します。これにより、異なる PID namespace 内のプロセスが同じ PID を持つことができます。 | Host PID | ブール値 | ✕ |
デプロイ、 |
Host IPC | ホスト上の IPC (POSIX/SysV IPC) namespace (名前付き共有メモリーセグメント、セマフォ、メッセージキューを分離する namespace) が、コンテナーと共有されているかどうかを確認します。 | Host IPC | ブール値 | ✕ |
デプロイ、 |
Namespace | デプロイメントが属する namespace の名前。 | Namespace | String |
正規表現、 |
デプロイ、 |
レプリカ |
デプロイメントレプリカの数。 | レプリカ |
<、>、⇐、>=、または何もなし (等しいことを意味します)
例: |
NOT、 |
デプロイ、 |
セクション: ストレージ | |||||
Volume Name | ストレージの名前。 | Volume Name | String |
正規表現、 |
デプロイ、 |
Volume Source |
ボリュームがプロビジョニングされるフォームを示します。たとえば、 | Volume Source | String |
正規表現、 |
デプロイ、 |
Volume Destination | ボリュームがマウントされるパス。 | Volume Destination | String |
正規表現、 |
デプロイ、 |
Volume Type | ボリュームの種別を設定します。 | Volume Type | String |
正規表現、 |
デプロイ、 |
マウントされたボリュームの書き込み可能性 | 書き込み可能な状態でマウントされるボリューム。 | 書き込み可能なマウント済みボリューム | ブール値 | ✕ |
デプロイ、 |
マウントの伝播 |
コンテナーが | マウントの伝播 |
以下のいずれかになります。
NONE |
NOT、 |
デプロイ、 |
ホストマウントの書き込み可能性 | リソースが、書き込み権限のあるホストにパスをマウントしている。 | Writable Host Mount | ブール値 | ✕ |
デプロイ、 |
セクション: ネットワーク | |||||
プロトコル | 公開されるポートによって使用される TCP や UDP などのプロトコル。 | 公開ポートプロトコル | String |
正規表現、 |
デプロイ、 |
ポート | デプロイメントによって公開されるポート番号。 | 公開されるポート |
<、>、⇐、>=、または何もなし (等しいことを意味します)
例: |
NOT、 |
デプロイ、 |
Exposed Node Port | デプロイメントによって外部に公開されるポート番号。 | Exposed Node Port | (公開ポートと同じ) |
NOT、 |
デプロイ、 |
Port Exposure | ロードバランサーやノードポートなど、サービスの公開方法。 | ポートの公開方法 |
以下のいずれかになります。
UNSET |
NOT、 |
デプロイ、 |
検出された予期しないネットワークフロー | 検出されたネットワークトラフィックがデプロイメントのネットワークベースラインの一部であるかどうかを確認します。 | 検出された予期しないネットワークフロー | ブール値 | ✕ | Runtime ONLY - Network |
Ingress Network Policy | イングレス Kubernetes ネットワークポリシーの有無を確認します。 | Ingress Network Policy がある | ブール値 |
正規表現、 |
デプロイ、 |
Egress Network Policy | エグレス Kubernetes ネットワークポリシーの有無を確認します。 | Egress Network Policy がある | ブール値 |
正規表現、 |
デプロイ、 |
セクション: プロセスアクティビティー | |||||
プロセス名 | デプロイメントで実行されるプロセスの名前。 | プロセス名 | String |
正規表現、 | ランタイム のみ - プロセス |
Process Ancestor | デプロイメントで実行されるプロセスの親プロセスの名前。 | Process Ancestor | String |
正規表現、 | ランタイム のみ - プロセス |
Process Arguments | デプロイメントで実行されるプロセスのコマンド引数。 | Process Arguments | String |
正規表現、 | ランタイム のみ - プロセス |
Process UID | デプロイメントで実行されるプロセスの UNIX ユーザー ID。 | Process UID | 整数 |
NOT、 | ランタイム のみ - プロセス |
Unexpected Process Executed | デプロイメントにあるロックされたプロセスベースラインで、プロセス実行がリスト表示されていないデプロイメントを確認します。 | Unexpected Process Executed | ブール値 | ✕ | ランタイム のみ - プロセス |
セクション: Kubernetes アクセス | |||||
Service Account | サービスアカウントの名前 | Service Account | String |
正規表現、 |
デプロイ、 |
Automount Service Account Token | デプロイメント設定がサービスアカウントトークンを自動的にマウントするかどうかを確認します。 | Automount Service Account Token | ブール値 | ✕ |
デプロイ、 |
Minimum RBAC Permissions |
デプロイメントの Kubernetes サービスアカウントに、指定のレベル以上 ( | Minimum RBAC Permissions |
以下のいずれかになります。
DEFAULT | NOT |
デプロイ、 |
セクション: Kubernetes イベント | |||||
Kubernetes Action |
| Kubernetes Resource |
以下のいずれかになります。
PODS_EXEC |
! | Runtime ONLY - Kubernetes Events |
Kubernetes User Name | リソースにアクセスしたユーザーの名前。 | Kubernetes User Name | ハイフン (-) とコロン (:) のみを含む英数字 |
正規表現、 | Runtime ONLY - Kubernetes Events |
Kubernetes User Group | リソースにアクセスしたユーザーが属するグループの名前。 | Kubernetes User Groups | ハイフン (-) とコロン (:) のみを含む英数字 |
正規表現、 | Runtime ONLY - Kubernetes Events |
Kubernetes Resource Type | アクセスされた Kubernetes リソースのタイプ。 | Kubernetes Resource |
以下のいずれかになります。
config map |
! | Runtime ONLY - Audit Log |
Kubernetes API Verb |
| Kubernetes API Verb |
以下のいずれかになります。
CREATE |
! | Runtime ONLY - Audit Log |
Kubernetes Resource Name | アクセスされた Kubernetes リソースの名前。 | Kubernetes Resource Name | ハイフン (-) とコロン (:) のみを含む英数字 |
正規表現、 | Runtime ONLY - Audit Log |
User Agent |
ユーザーがリソースへのアクセスに使用したユーザーエージェント。例: | User Agent | String |
正規表現、 | Runtime ONLY - Audit Log |
Source IP Address | ユーザーがリソースにアクセスした IP アドレス。 | Source IP Address | IPV4 または IPV6 アドレス |
正規表現、 | Runtime ONLY - Audit Log |
Is Impersonated User | サービスアカウントまたは他のアカウントで権限を偽装ユーザーによって要求が行われたかどうかを確認します。 | Is Impersonated User | ブール値 | ✕ | Runtime ONLY - Audit Log |
6.4.3.1. ポリシー条件への論理条件の追加
ドラッグアンドドロップポリシーフィールドパネルを使用して、ポリシー条件に論理条件を指定できます。
前提条件
- Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.45 以降を使用している。
手順
Policy Criteria セクションで、Add a new condition を選択して、新しいポリシーセクションを追加します。
- Edit アイコンをクリックして、ポリシーセクションの名前を変更できます。
- Drag out a policy field セクションには、複数のカテゴリーで利用可能なポリシー条件がリスト表示されます。これらのカテゴリーを展開したり折りたたんだりして、ポリシー条件属性を表示できます。
- policy セクションの Drop a policy field エリアに属性をドラッグします。
選択する属性のタイプに応じて、選択した属性の条件を設定するオプションが異なります。以下に例を示します。
-
ブール値が
Read-Only Root Filesystem
の属性を選択すると、READ-ONLY
オプションおよびWRITABLE
オプションが表示されます。 環境変数
が複合値の属性を選択すると、Key
、Value
、およびValue From
フィールドの値を入力するオプションと、利用可能なオプションの他の値を追加するアイコンが表示されます。- 属性に複数の値を組み合わせるには、Add アイコンをクリックします。
-
ポリシーセクションでリスト表示されている論理演算子
AND
またはOR
をクリックして、AND
演算子とOR
演算子を切り替えることもできます。演算子間の切り替えは、ポリシーセクション内でのみ機能し、2 つの異なるポリシーセクション間では機能しません。
-
ブール値が
-
これらの手順を繰り返して、複数の
AND
およびOR
条件を指定できます。追加した属性の条件を設定したら、Next をクリックしてポリシーの作成を続行します。