5.4. Policy as Code の管理


ポリシーを Kubernetes カスタムリソース (CR) として保存し、Argo CD などの Kubernetes ネイティブの継続的デリバリー (CD) ツールを使用してクラスターに適用することで、Policy as Code を作成および管理できます。

5.4.1. polices as code の管理

ポリシーを Kubernetes カスタムリソース (CR) として保存し、Argo CD などの Kubernetes ネイティブの継続的デリバリー (CD) ツールを使用してクラスターに適用することで、Policy as Code を作成および管理できます。

Policy as Code は、RHACS ポータルを使用する代わりに、YAML または JSON でポリシーを作成する Kubernetes セキュリティーアーキテクトにとって便利です。GitOps ワークフローを使用して Kubernetes 設定をすでに管理している GitOps 管理者にとっても、これは便利です。

RHACS では、デフォルトのポリシーの使用やシステム用のカスタムポリシーの作成が可能です。Policy as Code 機能を使用すると、カスタムポリシーをダウンロードして変更するか、空のファイルから作成して、ローカルでカスタムポリシーを作成できます。ローカルでポリシーを作成するには、ポリシーの望ましい状態を表す CR を作成します。次に、Argo CD などの継続的デリバリーツールを使用して、RHACS を実行しているクラスターを追跡、管理し、ポリシーを適用します。CR を作成または更新し、CI/CD ツールを使用して適用すると、RHACS データベースに保存されているポリシーが作成または更新されます。

この機能を使用すると、RHACS は Central がインストールされている namespace (通常は stackrox namespace) に新しい Kubernetes コントローラーをインストールします。Argo CD ワークフローでは、RHACS がインストールされているのと同じ namespace に Policy as Code を適用するように Argo CD を設定します。この接続を設定すると、RHACS のコントローラーは、個別の Kubernetes CR ファイルとして管理される新規、更新、または削除されたポリシーに関する情報を Kubernetes API から受信します。RHACS は、ポリシー CR を RHACS データベースに保存されているポリシーと調整します。

Argo CD を使用しない GitOps ワークフローでは、RHACS API を介して RHACS の Central に接続するように GitOps リポジトリーを設定します。CR は使用されません。

5.4.1.1. ポリシードリフトについて

ポリシーは RHACS ポータルで編集、削除、および作成でき、外部からも作成できるため、ポリシーのドリフト が発生する可能性があります。ドリフトは、RHACS の Central のポリシーのバージョンが Kubernetes のポリシーのバージョンと一致しない場合に発生します。

ドリフトは、Kubernetes カスタムリソースを変更する代わりに、RHACS ポータルまたは API を使用して外部で管理されているポリシーに変更を適用したときに発生する可能性があります。RHACS はドリフトを防ぐことができず、(手動での変更は可能であるが) RHACS を使用した変更は推奨されません。ドリフトは、導入後 10 時間以内に自動的に解決されます。

5.4.1.2. RHACS ポータルを使用したコードでのポリシーの作成

RHACS ポータルを使用して既存のポリシーを YAML ファイルとして保存することで、コード内に新しいポリシーを作成できます。

前提条件

  • RHACS リリース 4.6 以降がインストールされている。
  • マニフェストインストールメソッド (roxctl メソッドとも呼ばれます) を使用して RHACS をインストールした場合は、次のコマンドを使用して、helm/chart/crds/config.stackrox.io_securitypolicies.yaml の .zip ファイルにある config.stackrox.io CRD を手動で適用する必要があります。

    $ kubectl create -f helm/chart/crds/config.stackrox.io_securitypolicies.yaml
    Copy to Clipboard Toggle word wrap

手順

RHACS ポータルを使用して CR を作成し、コードで新しいポリシーを作成するには以下を実行します。

  1. Policy Management ページで、新しいポリシーを作成するか、デフォルトポリシーを複製します。

    注記

    デフォルトポリシーを CR として保存する前に、そのポリシーを複製する必要があります。

  2. ポリシーが表示されている行のオーバーフローメニュー ( kebab ) をクリックしてから、Save as Custom Resource を選択します。複数のポリシーを一度に保存するには、それらを選択して、Bulk actions Save as Custom Resources をクリックします。
  3. ポリシーを編集した後、次のいずれかの方法で保存した CR を適用できます。

    • oc apply または kubectl apply コマンドを使用して、Central がインストールされている Kubernetes namespace に CR を直接適用します。
    • Argo CD または GitOps ツールを使用して、Central がインストールされている Kubernetes namespace に CR をプッシュします。

5.4.1.3. CR を構築することによるコードでのポリシーの作成

ポリシーの CR を構築することで、コード内に新しいポリシーを作成できます。

  1. エディターを使用して、次の属性のポリシーの CR を作成します。

    kind: SecurityPolicy
    apiVersion: config.stackrox.io/v1alpha1
    metadata:
      name: short-name
    spec:
      policyName: A longer form name
    # ...
    Copy to Clipboard Toggle word wrap
    ヒント

    ポリシー仕様を定義するために使用できるフィールドを理解するには、kubectl explain securitypolicy.spec などのコマンドを入力してオンラインドキュメントを使用します。

  2. 次のいずれかを実行して、保存された CR を適用します。

    • oc apply または kubectl apply コマンドを使用して、Central がインストールされている Kubernetes namespace に CR を直接適用します。
    • Argo CD または GitOps ツールを使用して、Central がインストールされている Kubernetes namespace に CR をプッシュします。

5.4.1.4. policy as code 機能の無効化

policy as code 機能は、RHACS をインストールすると自動的に有効になりますが、無効にすることもできます。

手順

policy as code 機能を無効にするには、RHACS のインストールに使用した方法に応じて、次のいずれかのタスクを実行します。

  • Operator を使用して RHACS をインストールした場合は、spec.configAsCode.configAsCodeComponent フィールドを Disabled に設定します。
  • Helm チャートを使用して RHACS をインストールした場合は、values.yaml ファイルの configAsCode.enabled フィールドを false に設定します。
  • マニフェストインストールメソッド (roxctl メソッドとも呼ばれます) を使用して RHACS をインストールした場合は、次のコマンドを実行して config-controller デプロイメントを削除します。

    $ kubectl -n stackrox delete deployment config-controller 
    1
    Copy to Clipboard Toggle word wrap
    1
    OpenShift Container Platform の場合は、kubectl の代わりに oc を使用します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat