検索

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

download PDF

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

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

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

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

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

手順

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

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

      注記

      アラートを転送する前に、RHACS を 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 セクションで、次の手順を実行します。

    1. ポリシーが適用される Lifecycle stages (BuildDeploy、または Runtime) を選択します。複数のステージを選択できます。

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

      • Deployment: イベントソースにプロセスとネットワークアクティビティー、Pod 実行、および Pod ポート転送が含まれている場合に、RHACS はポリシー違反をトリガーします。
      • イベントソースが Kubernetes 監査ログレコードと一致すると、RHACS はポリシー違反をトリガーします。
  6. Response method には、次のいずれかのオプションを選択します。

    1. Inform: 違反の一覧に違反を追加する。
    2. inform および enforce: アクションを実施します。
  7. オプション: 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 を削除します。

      警告

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

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

    1. Policy Section にポリシーフィールドをクリックしてドラッグし、基準を追加します。

      注記

      利用可能なポリシーフィールドは、ポリシーに選択したライフサイクルステージによって異なります。たとえば、Kubernetes access policies または Networking 下の基準は、ランタイムライフサイクルのポリシーを作成するときに利用できますが、ビルドライフサイクルのポリシーを作成する場合は利用できません。ポリシー条件の詳細 (条件に関する情報や、条件が使用可能なライフサイクルフェーズなど) については、「関連情報」セクションの「ポリシー条件」を参照してください。

    2. オプション: Add condition をクリックして、ポリシーをトリガーする追加の基準を含むポリシーセクションを追加します (たとえば、古いイメージに対してトリガーするには、image taglatest はないこと image age を設定し、イメージがビルドされてからの最小日数を指定できます)。
  10. Next をクリックします。
  11. 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 ライフサイクルステージ) をチェックする場合、効果はありません。

  12. Next をクリックします。
  13. Review policy セクションで、ポリシー違反をプレビューします。
  14. 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 は、CREATEUPDATEDELETE、または CONNECT 操作のみをサポートします。RHACS アドミッションコントローラーは、CREATE および UPDATE 操作のみをサポートします。kubectl patchkubectl setkubectl 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 は、stackroxkube-systemistio-system namespace などの特定の管理 namespace をエンフォースメントブロックから除外します。その理由は、RHACS が正しく機能するためには、これらの namespace 内の一部の項目をデプロイする必要があるためです。

6.4.1.1.4. 既存のデプロイメントへのエンフォースメント

既存のデプロイメントの場合、ポリシーの変更は、Kubernetes イベントが発生したときに、基準が次に検出されたときにのみ適用されます。ポリシーに変更を加えた場合は、Policy Management を選択し、Reassess All をクリックしてポリシーを再評価する必要があります。このアクションは、新しい受信 Kubernetes イベントがあるかどうかに関係なく、すべての既存のデプロイメントにデプロイポリシーを適用します。ポリシーに違反があった場合は、RHACS がエンフォースメントを実行します。

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

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

手順

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

6.4.3. ポリシー条件

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

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

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

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

    • Regex! (正規表現) は、リストされたフィールドに正規表現のみを使用できることを示します。
    • AND!、または OR は、属性に前述の論理演算子のみを使用できることを示します。
    • 正規表現 の ✕ / NOT / 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 などの他の意味。
属性説明JSON 属性許可される値RegexNOTAND、ORフェーズ

セクション: イメージレジストリー

Image Registry

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

Image Registry

String

正規表現、
NOT、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Image Name

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

Image Remote

String

正規表現、
NOT、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Image Tag

イメージの識別子。

Image Tag

String

正規表現、
NOT、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Image Signature

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

Image Signature Verified By

すでに設定されているイメージ署名統合の有効な ID

! OR のみ

Build
Deploy
Runtime (Runtime 条件で使用する場合)

セクション: イメージの内容

The Common Vulnerabilities and Exposures (CVE) is fixable

この基準は、評価しているデプロイメント内のイメージに修正可能な CVE がある場合にのみ違反となります。

Fixable

ブール値

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Days Since CVE Was First Discovered In Image

この基準は、RHACS が特定のイメージ内で CVE を検出してから、指定された日数を超えた場合にのみ違反となります。

Days Since CVE Was First Discovered In Image

整数

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Days Since CVE Was First Discovered In System

この基準は、RHACS が監視するすべてのクラスター内にデプロイされた全イメージから CVE を検出してから、指定された日数を超えた場合にのみ違反となります。

Days Since CVE Was First Discovered In System

整数

Build
Deploy
Runtime (Runtime 条件で使用する場合)

イメージの経過時間

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

イメージの経過時間

整数

Build
Deploy
Runtime (Runtime 条件で使用する場合)

イメージのスキャン期間

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

イメージのスキャン期間

整数

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Image User

Dockerfile の USER ディレクティブと一致します。詳細は、https://docs.docker.com/engine/reference/builder/#user を参照してください。

Image User

String

正規表現、
NOT、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Dockerfile Line

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

Dockerfile Line

LABEL、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、USER、WORKDIR、ONBUILD のいずれか

! 値 (AND、OR) の正規表現のみ

Build
Deploy
Runtime (Runtime 条件で使用する場合)

イメージのスキャンステータス

イメージがスキャンされたかどうかを確認します。

スキャンされていないイメージ

ブール値

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Common Vulnerability Scoring System (CVSS)

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

CVSS

<、>、<=、>=、または何もなし (等しいことを意味します)
— と —
10 進数 (オプションの小数値を含む数値)。

例:
>=5 または
9.5

AND, OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

重大度

CVSS またはベンダーに基づく脆弱性の重大度。Low、Moderate、Important、Critical のいずれかです。

重大度

<、>、⇐、>=、または何もなし (等しいことを意味します)
— と — 
次のうちのひとつ:
UNKNOWN
LOW
MODERATE
IMPORTANT
CRITICAL

例:
>=IMPORTANT、または
CRITICAL

AND, OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Fixed By

イメージのフラグ付きの脆弱性を修正するパッケージのバージョン文字列。この基準は、CVE 基準などを使用して脆弱性を特定する他の基準に加えて使用される場合があります。

Fixed By

String

正規表現、
NOT、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

CVE

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

CVE

String

正規表現、
NOT、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Image Component

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

Image Component

key=value

value はオプションです。

値が見つからない場合は、"key=" の形式にする必要があります。

正規表現、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

Image OS

イメージのベースオペレーティングシステムの名前およびバージョン番号。たとえば、alpine:3.17.3 です。

Image OS

String

正規表現、
NOT、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

イメージラベルが必要

Docker イメージラベルが存在することを確認します。このポリシーは、デプロイメントのイメージに指定されたラベルがない場合にトリガーされます。キーおよび値フィールドの両方に正規表現を使用して、ラベルを照合できます。Require Image Label ポリシー条件は、Docker レジストリーと統合する場合にのみ機能します。Docker ラベルの詳細は、Docker のドキュメント (https://docs.docker.com/config/labels-custom-metadata/) を参照してください。

Required Image Label

key=value

value はオプションです。

値が見つからない場合は、"key=" の形式にする必要があります。

正規表現、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

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

特定の Docker イメージラベルが使用されていないことを確認します。このポリシーは、デプロイメントのイメージに指定されたラベルがある場合にトリガーされます。キーおよび値フィールドの両方に正規表現を使用して、ラベルを照合できます。'Disallow Image Label policy' 条件は、Docker レジストリーと統合する場合にのみ適用されます。Docker ラベルの詳細は、Docker のドキュメント (https://docs.docker.com/config/labels-custom-metadata/) を参照してください。

Disallowed Image Label

key=value

value はオプションです。

値が見つからない場合は、"key=" の形式にする必要があります。

正規表現、
AND、OR

Build
Deploy
Runtime (Runtime 条件で使用する場合)

セクション: コンテナー設定

Environment Variable

名前または値で環境変数を確認します。環境変数属性を含むポリシーを作成するときに、ポリシーを照合する環境変数のタイプを選択できます。たとえば、デプロイメント YAML で raw 値を直接指定したり、config map、シークレット、フィールド、リソース要求や制限から値への参照を指定したりできます。デプロイメント YAML で直接指定された raw 値以外のタイプの場合、ポリシールールの対応する value 属性が無視されます。この場合、ポリシーの照合は、指定された環境変数のタイプの存在に基づいて評価されます。さらに、この条件では、raw 値以外のタイプの空でない value 属性を持つポリシーの作成が許可されません。

Environment Variable

RAW=key=value により、デプロイメント YAML で直接指定された環境変数を、特定のキーおよび値と照合します。キーのみを照合する場合は、value 属性を省略できます。

環境変数が設定 YAML で定義されていない場合は、SOURCE=KEY という形式を使用できます。SOURCE は次のいずれかのオブジェクトです。

  • SECRET_KEY (SecretKeyRef)
  • CONFIG_MAP_KEY (ConfigMapRef)
  • FIELD (FieldRef)
  • RESOURCE_FIELD (ResourceFieldRef)

上記のリストでは、API オブジェクトのラベルを指定してから、括弧内でユーザーインターフェイスのラベルを指定しています。

! キーと値の正規表現 (RAW を使用している場合)
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Container CPU Request

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

Container CPU Request

<、>、⇐、>=、または何もなし (等しいことを意味します)
— と — 
10 進数 (オプションの小数値を含む数値)

例:
>=5 または
9.5

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 フィールドの値のみを確認します。

Privileged Container

ブール値: 各 PodSecurityContextprivileged フィールドの値が true に設定されている場合、true

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Root filesystem writeability

デプロイメントが readOnlyFilesystem モードで設定されているかどうかを確認します。

Read-Only Root Filesystem

ブール値: 各 PodSecurityContextreadOnlyRootFilesystem フィールドの値が true に設定されている場合、true

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Seccomp Profile Type

デプロイメントに定義された seccomp プロファイルのタイプ。seccomp オプションが Pod レベルとコンテナーレベルの両方で指定されている場合、コンテナーオプションが Pod オプションをオーバーライドします。Security Context を参照してください。

Seccomp Profile Type

以下のいずれかになります。

UNCONFINED
RUNTIME_DEFAULT
LOCALHOST

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Privilege escalation

デプロイメントでコンテナープロセスが親プロセスよりも多くの権限を取得できる場合にアラートを出します。

Allow Privilege Escalation

ブール値

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Drop Capabilities

コンテナーからドロップする必要がある Linux 機能。指定された機能がドロップされない場合にアラートを発行します。たとえば、SYS_ADMIN および SYS_BOOT を使用して設定されており、デプロイメントでこれら 2 つの機能の 1 つだけ が削除されるか、どちらも 削除されない場合、アラートが発生します。

Drop Capabilities

以下のいずれかになります。

ALL
AUDIT_CONTROL
AUDIT_READ
AUDIT_WRITE
BLOCK_SUSPEND
CHOWN
DAC_OVERRIDE
DAC_READ_SEARCH
FOWNER
FSETID
IPC_LOCK
IPC_OWNER
KILL
LEASE
LINUX_IMMUTABLE
MAC_ADMIN
MAC_OVERRIDE
MKNOD
NET_ADMIN
NET_BIND_SERVICE
NET_BROADCAST
NET_RAW
SETGID
SETFCAP
SETPCAP
SETUID
SYS_ADMIN
SYS_BOOT
SYS_CHROOT
SYS_MODULE
SYS_NICE
SYS_PACCT
SYS_PTRACE
SYS_RAWIO
SYS_RESOURCE
SYS_TIME
SYS_TTY_CONFIG
SYSLOG
WAKE_ALARM

AND

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Add Capabilities

Raw パケットを送信したり、ファイルパーミッションをオーバーライドする機能など、コンテナーには追加できない Linux 機能。指定された機能が追加されたときにアラートを出します。たとえば、NET_ADMIN または NET_RAW で設定されており、デプロイメントマニフェスト YAML ファイルにこれら 2 つの機能のうち少なくとも 1 つが含まれている場合、アラートが発生します。

Add Capabilities

AUDIT_CONTROL
AUDIT_READ
AUDIT_WRITE
BLOCK_SUSPEND
CHOWN
DAC_OVERRIDE
DAC_READ_SEARCH
FOWNER
FSETID
IPC_LOCK
IPC_OWNER
KILL
LEASE
LINUX_IMMUTABLE
MAC_ADMIN
MAC_OVERRIDE
MKNOD
NET_ADMIN
NET_BIND_SERVICE
NET_BROADCAST
NET_RAW
SETGID
SETFCAP
SETPCAP
SETUID
SYS_ADMIN
SYS_BOOT
SYS_CHROOT
SYS_MODULE
SYS_PACCT
SYS_PTRACE
SYS_RAWIO
SYS_RESOURCE
SYS_TIME
SYS_TTY_CONFIG
SYSLOG
WAKE_ALARM

OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Container Name

コンテナーの名前。

Container Name

String

正規表現、
NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

AppArmor プロファイル

コンテナーで使用されるアプリケーション Armor ("AppArmor") プロファイル。

AppArmor プロファイル

String

正規表現、
NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Liveness Probe

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

Liveness Probe

ブール値

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Readiness Probe

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

Readiness Probe

ブール値

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

セクション: デプロイメントメタデータ

Disallowed Annotation

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

Disallowed Annotation

key=value

value はオプションです。

値が見つからない場合は、"key=" の形式にする必要があります。

正規表現、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Required Label

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

Required Label

key=value

value はオプションです。

値が見つからない場合は、"key=" の形式にする必要があります。

正規表現、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Required Annotation

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

Required Annotation

key=value

value はオプションです。

値が見つからない場合は、"key=" の形式にする必要があります。

正規表現、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Runtime Class

デプロイメントの RuntimeClass

Runtime Class

String

正規表現、
NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

ホストネットワーク

HostNetwork が有効になっているかどうかを確認します。これは、コンテナーが別のネットワークスタック内に配置されないことを意味します (たとえば、コンテナーのネットワークはコンテナー化されていません)。これは、コンテナーがホストのネットワークインターフェイスに完全にアクセスできることを意味します。

ホストネットワーク

ブール値

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

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、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

レプリカ

デプロイメントレプリカの数。oc scale を使用してデプロイメントのレプリカを 0 から特定の数値にスケーリングする場合は、デプロイメントがポリシーに違反すると、アドミッションコントローラーがこのアクションをブロックします。

レプリカ

<、>、⇐、>=、または何もなし (等しいことを意味します)
—と— 
10 進数 (オプションの小数値を含む数値)。

例:
>=5 または
9.5

NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

セクション: ストレージ

Volume Name

ストレージの名前。

Volume Name

String

正規表現、
NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Volume Source

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

Volume Source

String

正規表現、
NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Volume Destination

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

Volume Destination

String

正規表現、
NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Volume Type

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

Volume Type

String

正規表現、
NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

マウントされたボリュームの書き込み可能性

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

書き込み可能なマウント済みボリューム

ブール値

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

マウントの伝播

コンテナーが BidirectionalHost to Container、または None モードでボリュームをマウントしているかどうかを確認します。

マウントの伝播

以下のいずれかになります。

NONE
HOSTTOCONTAINER
BIDIRECTIONAL

NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

ホストマウントの書き込み可能性

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

Writable Host Mount

ブール値

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

セクション: ネットワーク

プロトコル

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

公開ポートプロトコル

String

正規表現、
NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

ポート

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

公開されるポート

<、>、⇐、>=、または何もなし (等しいことを意味します)
— と — 
整数。

例:
1024 以上
22

NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Exposed Node Port

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

Exposed Node Port

(公開ポートと同じ)

NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Port Exposure

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

ポートの公開方法

以下のいずれかになります。

UNSET
EXTERNAL
NODE
HOST
INTERNAL
ROUTE

NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

検出された予期しないネットワークフロー

検出されたネットワークトラフィックがデプロイメントのネットワークベースラインの一部であるかどうかを確認します。

検出された予期しないネットワークフロー

ブール値

Runtime ONLY - Network

Ingress Network Policy

イングレス Kubernetes ネットワークポリシーの有無を確認します。

Ingress Network Policy がある

ブール値

正規表現、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Egress Network Policy

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

Egress Network Policy がある

ブール値

正規表現、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

セクション: プロセスアクティビティー

プロセス名

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

プロセス名

String

正規表現、
NOT、
AND、OR

ランタイム のみ - プロセス

Process Ancestor

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

Process Ancestor

String

正規表現、
NOT、
AND、OR

ランタイム のみ - プロセス

Process Arguments

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

Process Arguments

String

正規表現、
NOT、
AND、OR

ランタイム のみ - プロセス

Process UID

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

Process UID

整数

NOT、
AND、OR

ランタイム のみ - プロセス

Unexpected Process Executed

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

Unexpected Process Executed

ブール値

ランタイム のみ - プロセス

セクション: Kubernetes アクセス

Service Account

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

Service Account

String

正規表現、
NOT、
AND、OR

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Automount Service Account Token

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

Automount Service Account Token

ブール値

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

Minimum RBAC Permissions

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

Minimum RBAC Permissions

以下のいずれかになります。

DEFAULT
ELEVATED_IN_NAMESPACE
ELEVATED_CLUSTER_WIDE
CLUSTER_ADMIN

NOT

デプロイ
ランタイム (ランタイムの条件とともに使用する場合)

セクション: Kubernetes イベント

Kubernetes Action

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

Kubernetes Resource

以下のいずれかになります。

PODS_EXEC
PODS_PORTFORWARD

! OR のみ

Runtime ONLY - Kubernetes Events

Kubernetes User Name

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

Kubernetes User Name

ハイフン (-) とコロン (:) のみを含む英数字

正規表現、
NOT,
!OR のみ

Runtime ONLY - Kubernetes Events

Kubernetes User Group

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

Kubernetes User Groups

ハイフン (-) とコロン (:) のみを含む英数字

正規表現、
NOT,
!OR のみ

Runtime ONLY - Kubernetes Events

Kubernetes Resource Type

アクセスされた Kubernetes リソースのタイプ。

Kubernetes Resource

以下のいずれかになります。

config map
シークレット
ClusterRoles
ClusterRoleBindings
NetworkPolicies
SecurityContextConstraints
EgressFirewalls

! OR のみ

Runtime ONLY - Audit Log

Kubernetes API Verb

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

Kubernetes API Verb

以下のいずれかになります。

CREATE
DELETE
GET
PATCH
UPDATE

! OR のみ

Runtime ONLY - Audit Log

Kubernetes Resource Name

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

Kubernetes Resource Name

ハイフン (-) とコロン (:) のみを含む英数字

正規表現、
NOT,
!OR のみ

Runtime ONLY - Audit Log

User Agent

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

User Agent

String

正規表現、
NOT,
!OR のみ

Runtime ONLY - Audit Log

Source IP Address

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

Source IP Address

IPV4 または IPV6 アドレス

正規表現、
NOT,
!OR のみ

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 以降を使用している。

手順

  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 をクリックしてポリシーの作成を続行します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.