4.15. セキュリティーポリシーの管理
指定したセキュリティー標準、カテゴリー、および制御に基づいてクラスターのコンプライアンスを報告および検証するためのセキュリティーポリシーを作成します。
以下のセクションを参照してください。
4.15.1. セキュリティーポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーポリシーは、コマンドラインまたはコンソールから作成できます。
必要なアクセス権: クラスター管理者
重要: * ポリシーを特定のクラスターに適用するには、配置および配置バインディングを定義する必要があります。PlacementBinding
リソースは配置をバインドします。クラスターの Label selector フィールドに有効な値を入力して、Placement
および PlacementBinding
リソースを定義してください。* Placement
リソースを使用するには、ManagedClusterSetBinding
リソースを使用して、ManagedClusterSet
リソースを Placement
リソースの namespace にバインドする必要があります。詳細は、ManagedClusterSetBinding リソースの作成 を参照してください。
4.15.1.1. コマンドラインインターフェイスからのセキュリティーポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインからポリシーを作成するには、次の手順を実行します。
以下のコマンドを実行してポリシーを作成します。
oc create -f policy.yaml -n <policy-namespace>
oc create -f policy.yaml -n <policy-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーが使用するテンプレートを定義します。YAML ファイルを編集し、
policy-templates
フィールドを追加してテンプレートを定義します。ポリシーは以下の YAML ファイルのようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PlacementBinding
リソースを定義して、ポリシーをPlacement
リソースにバインドします。PlacementBinding
リソースは、次の YAML の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.15.1.1.1. コマンドラインからセキュリティーポリシーを表示する リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインからセキュリティーポリシーを表示するには、次の手順を実行します。
以下のコマンドを実行して、特定のセキュリティーポリシーの詳細を表示します。
oc get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace> -o yaml
oc get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、セキュリティーポリシーの詳細を表示します。
oc describe policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
oc describe policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.15.1.2. コンソールからのクラスターセキュリティーポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management にログインしたら、Governance ページに移動し、Create policy をクリックします。コンソールから新規ポリシーを作成すると、YAML エディターで YAML ファイルも作成されます。YAML エディターを表示するには、Create policy フォームの最初にトグルを選択して有効にします。
Create policy フォームに入力し、Submit ボタンを選択します。YAML ファイルは以下のポリシーのようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の
PlacementBinding
の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の
Placement
の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション: ポリシーの説明を追加します。
- Create Policy をクリックします。コンソールからセキュリティーポリシーが作成されました。
4.15.1.2.1. コンソールからのセキュリティーポリシーの表示 リンクのコピーリンクがクリップボードにコピーされました!
コンソールからセキュリティーポリシーとステータスを表示します。
- Governance ページに移動し、ポリシー表の一覧を表示します。注記: ポリシー表の一覧をフィルタリングするには、Policies タブまたは Cluster violations タブを選択します。
-
詳細を表示するポリシーを 1 つ選択します。Details、Clusters、および Templates タブが表示されます。クラスターまたはポリシーのステータスを判断できない場合は、
No status
メッセージが表示されます。 - または、Policies タブを選択してポリシーのリストを表示します。ポリシーの行をデプロイメントすると、Description、Standards、Controls、および Categories の詳細が表示されます。
4.15.1.3. コマンドラインからポリシーセットを作成する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、ポリシーまたは配置のないポリシーセットが作成されます。ポリシーセットの配置を作成し、クラスターに存在するポリシーを 1 つ以上設定する必要があります。ポリシーセットを作成する場合は、多くのポリシーを追加できます。
コマンドラインからポリシーセットを作成するには、次のコマンドを実行します。
oc apply -f <policyset-filename>
oc apply -f <policyset-filename>
4.15.1.4. コンソールからのポリシーセットの作成 リンクのコピーリンクがクリップボードにコピーされました!
- ナビゲーションメニューから Govern を選択します。
- Policy sets タブを選択します。
- Create policy set ボタンを選択し、フォームを完了します。
- ポリシーセットの詳細を追加し、送信 ボタンを選択します。
ポリシーがポリシーテーブルからリスト表示されます。
4.15.2. セキュリティーポリシーの更新 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーポリシーを更新する方法を学びます。
4.15.2.1. コマンドラインからポリシーセットにポリシーを追加する リンクのコピーリンクがクリップボードにコピーされました!
次のコマンドを実行して、ポリシーセットを編集します。
oc edit policysets <your-policyset-name>
oc edit policysets <your-policyset-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ポリシーセットの
policies
セクションのリストにポリシー名を追加します。 - 次のコマンドを使用して、追加したポリシーをポリシーセットの配置セクションに適用します。
oc apply -f <your-added-policy.yaml>
oc apply -f <your-added-policy.yaml>
PlacementBinding
と Placement
の両方が作成されます。
注記: 配置バインディングを削除すると、ポリシーはポリシーセットによって配置されます。
4.15.2.2. コンソールからのポリシーセットへのポリシーの追加 リンクのコピーリンクがクリップボードにコピーされました!
- Policy sets タブを選択して、ポリシーセットにポリシーを追加します。
- Actions アイコンを選択し、Edit を選択します。Edit policy set フォームが表示されます。
- フォームの Policies セクションに移動し、ポリシーセットに追加するポリシーを選択します。
4.15.2.3. セキュリティーポリシーの無効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、ポリシーは有効です。コンソールからポリシーを無効にします。
Red Hat Advanced Cluster Management for Kubernetes コンソールにログインしたら、Governance ページに移動し、ポリシー表のリストを表示します。
Actions アイコン > Disable policy の順に選択します。Disable Policy ダイアログボックスが表示されます。
Disable policy をクリックします。ポリシーが無効化されました。
4.15.3. セキュリティーポリシーの削除 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインまたはコンソールからセキュリティーポリシーを削除します。
コマンドラインから削除するには、次の手順に従います。
以下のコマンドを実行してセキュリティーポリシーを削除します。
oc delete policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
oc delete policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
oc get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
コマンドを実行して、ポリシーが削除されたことを確認します。
コンソールからセキュリティーポリシーを削除するには、次の手順を使用します。
- ナビゲーションメニューから Governance をクリックし、ポリシー表のリストを表示します。
- ポリシー違反表で、削除するポリシーの Actions アイコンをクリックします。
- Remove をクリックします。
- Remove policy ダイアログボックスから、Remove policy をクリックします。
4.15.3.1. コンソールからのポリシーセットの削除 リンクのコピーリンクがクリップボードにコピーされました!
- Policy sets タブから、ポリシーセットの Actions アイコンを選択します。Delete をクリックすると、Permanently delete Policyset? ダイアログボックスが表示されます。
- Delete ボタンをクリックします。
4.15.4. ポリシーによって作成されたリソースのクリーンアップ リンクのコピーリンクがクリップボードにコピーされました!
ポリシーによって作成されたリソースをクリーンアップするには、設定ポリシーで pruneObjectBehavior
パラメーターを使用します。pruneObjectBehavior
が設定されていると、関連するオブジェクトは、関連する設定ポリシー (または親ポリシー) が削除された後にのみクリーンアップされます。
パラメーターに使用できる値は、次の説明を参照してください。
-
DeleteIfCreated
: ポリシーによって作成されたすべてのリソースをクリーンアップします。 -
DeleteAll
: ポリシーによって管理されるすべてのリソースをクリーンアップします。 -
None
: これはデフォルト値であり、関連するリソースが削除されない以前のリリースと同じ動作を維持します。
コマンドラインからポリシーを作成するときに、YAML ファイルに値を直接設定できます。
コンソールから、Policy templates ステップの Prune Object Behavior セクションで値を選択できます。
注記:
-
Operator をインストールするポリシーに
pruneObjectBehavior
パラメーターが定義されている場合は、Operator のアンインストールを完了するのに追加のクリーンアップが必要です。このクリーンアップの一環として、Operator のClusterServiceVersion
オブジェクトを削除する必要がある場合があります。 -
マネージドクラスターで
config-policy-addon
リソースを無効にすると、pruneObjbectBehavior
は無視されます。ポリシーの関連リソースを自動的にクリーンアップするには、アドオンを無効にする前に、マネージドクラスターからポリシーを削除する必要があります。
4.15.5. ポリシーコマンドラインツール リンクのコピーリンクがクリップボードにコピーされました!
policytools
コマンドラインツールを使用すると、ポリシーをローカルで操作して、作成とデバッグを支援できます。policytools
コマンドラインツールは、ハブクラスターコンソールからダウンロードできます。コマンドラインツール を参照してください。
template-resolver
template-resolver
はポリシーに埋め込まれているマネージドクラスターとハブクラスターテンプレートを解決するpolicytools
のサブコマンドです。template-resolver
は、ファイルまたは標準入力から読み取ります。ハブクラスターテンプレートを使用してポリシーを解決するには、Red Hat Advanced Cluster Management にインポートされるマネージドクラスターの名前を
--cluster-name
引数に指定する必要があります。また、ハブクラスターを参照するkubeconfig
ファイルへのパスを--hub-kubeconfig
引数に指定する必要があります。入力ポリシーで
.ObjectName
または.ObjectNamespace
テンプレート変数が使用されている場合は、--object-name
および--object-namespace
引数を使用して値を設定する必要があります。template-resolver
サブコマンドは、マネージドクラスターとハブクラスターに接続して、テンプレートを解決するために必要な情報を取得します。--save-resources
および--save-hub-resources
引数を使用してパスを指定し、template-resolver
が取得するリソースを保存します。保存されたファイルは、dryrun
サブコマンドの入力として使用できます。dryrun
dryrun
は、クラスターの状態の静的入力リソースを使用して、ConfigurationPolicy
リソースをローカルで評価するpolicytools
のサブコマンドです。ポリシーを実行するには、
--policy
フラグを使用してConfigurationPolicy
YAML にパスを追加します。現在のクラスターの状態として使用される追加のリソース YAML ファイルを提供できます。たとえば、ポリシーで namespace の特定の設定を定義する場合は、現在の namespace の状態を指定して、ポリシーが何を行うかを確認します。同じリソースファイル内に複数のリソースを含めることができます。デフォルトでは、
dryrun
は、ポリシーで定義されたオブジェクトの望ましい状態とそれらのリソースの現在の状態の違い、およびConfigurationPolicy
によって作成されるコンプライアンスメッセージを出力します。コンプライアンスメッセージを別のファイルに保存するには、--messages-path
引数を使用します。関連オブジェクトに関する追加情報を含む完全なポリシーステータスを保存するには、--status-path
引数を使用します。入力に基づいてポリシーが
NonCompliant
の場合、ツールはゼロ以外の終了コードを返します。結果のステータスを既知のステータスと比較するには、--desired-status
引数を使用します。たとえば、ポリシーが不足しているリソースを報告していることを確認するには、不足しているリソースを.relatedObjects
リスト内に含める YAML ファイルを提供します。ポリシーがNonCompliant
であることを確認するには、compliant: NonCompliant
行を含む YAML ファイルを作成します。
4.15.6. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- ポリシー YAML ファイルの詳細な説明は、ハブクラスターポリシーフレームワーク [ポリシーの概要] を参照してください。
- 有効な式は、Kubernetes ドキュメントの セットベースの要件をサポートするリソース を参照してください。
-
Stable 版の
Policysets
(PolicySets-- Stable) を参照してください。PolicySets のデプロイにはポリシージェネレーターが必要です。 - ポリシーに関する他のトピックは、ガバナンス を参照してください。
4.15.7. 非接続環境での Operator ポリシーの管理 リンクのコピーリンクがクリップボードにコピーされました!
インターネットに接続していない (切断状態の) Red Hat OpenShift Container Platform クラスターへの Red Hat Advanced Cluster Management for Kubernetes ポリシーのデプロイが必要になる場合があります。デプロイするポリシーを、Operator Lifecycle Manager Operator をインストールするポリシーのデプロイに使用する場合は、Operator カタログのミラーリング の手順に従う必要があります。
Operator イメージへのアクセスを検証するには、次の手順を実行します。
ポリシーで使用するために必要なパッケージが利用可能であることを検証するには、必要なパッケージが利用可能であることの確認 を参照してください。次のポリシーがデプロイされているマネージドクラスターで使用される各イメージレジストリーの可用性を検証する必要があります。
-
container-security-operator
-
非推奨:
gatekeeper-operator-product
-
compliance-operator
-
ソースが利用可能であることを検証するには、イメージコンテンツソースポリシーの設定 を参照してください。イメージコンテンツソースポリシーは、切断されたマネージドクラスターのそれぞれに存在する必要があり、プロセスを簡素化するためにポリシーを使用してデプロイできます。次のイメージソースの場所の表を参照してください。
Expand ガバナンスポリシーの種類 イメージソースの場所 コンテナーのセキュリティー
registry.redhat.io/quay
コンプライアンス
registry.redhat.io/compliance
ゲートキーパー
registry.redhat.io/rhacm2
4.15.8. ポリシーセットを使用した Red Hat OpenShift Platform Plus のインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Openshift Platform Plus ポリシーセットを適用するためのガイダンスは、引き続きお読みください。Red Hat OpenShift ポリシーセットを適用すると、Red Hat Advanced Cluster Security で保護されたクラスターサービスと Compliance Operator がすべての OpenShift Container Platform マネージドクラスターにデプロイされます。
4.15.8.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーセットを適用する前に、次の手順を完了してください。
サブスクリプションをクラスターに適用できるようにするには、
policy-configure-subscription-admin-hub.yaml
ポリシーを適用し、修復アクションをenforce
に設定する必要があります。次の YAML をコピーして、コンソールの YAML エディターに貼り付けます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドラインインターフェイスから以前の YAML を適用するには、以下のコマンドを実行します。
oc apply -f policy-configure-subscription-admin-hub.yaml
oc apply -f policy-configure-subscription-admin-hub.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Policy Generator kustomize プラグインをインストールします。Kustomize v4.5 以降を使用してください。Operator をインストールするためのポリシーの生成 を参照してください。
ポリシーは
policies
namespace にインストールされます。その namespace をClusterSet
にバインドする必要があります。たとえば、以下のサンプル YAML をコピーして適用し、namespace をデフォルトのClusterSet
にバインドします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、コマンドラインインターフェイスから
ManagedClusterSetBinding
リソースを適用します。oc apply -f managed-cluster.yaml
oc apply -f managed-cluster.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
前提条件を満たしたら、ポリシーセットを適用できます。
4.15.8.2. Red Hat OpenShift Platform Plus ポリシーセットの適用 リンクのコピーリンクがクリップボードにコピーされました!
-
Red Hat OpenShift Plus の前提条件設定が含まれている
openshift-plus/policyGenerator.yaml
ファイルを使用します。 Kustomize
コマンドを使用して、ポリシーをハブクラスターに適用します。kustomize build --enable-alpha-plugins | oc apply -f -
kustomize build --enable-alpha-plugins | oc apply -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: インストールしたくない OpenShift Platform Plus のコンポーネントは、
policyGenerator.yaml
ファイルを編集し、それらのコンポーネントのポリシーを削除またはコメントアウトします。
4.15.8.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- ポリシーセットの概要は、Red Hat OpenShift Platform Plus policy set を参照してください。
- トピックの最初の ポリシーセットを使用した Red Hat OpenShift Platform Plus のインストール に戻ります。
4.15.9. OperatorPolicy リソースを使用して Operator をインストールする リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターに Operator Lifecycle Manager (OLM) マネージドオペレーターをインストールするには、Policy
定義で OperatorPolicy
ポリシーテンプレートを使用します。
4.15.9.1. Quay をインストールするための OperatorPolicy リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Operator カタログを使用して channel
チャネルに最新の Quay Operator をインストールする次の Operator ポリシーサンプルを参照してください。
OperatorPolicy
ポリシーテンプレートを追加すると、コントローラーを使用してクラスター上に operatorGroup
オブジェクトおよび subscription
オブジェクトが作成されます。その結果、インストールの残りの部分は OLM によって完了します。マネージドクラスターの OperatorPolicy
リソースの .status.Conditions
フィールドと .status.relatedObjects
フィールドで、所有リソースの正常性を確認できます。
Operator ポリシーのステータスを確認するには、マネージドクラスターで次のコマンドを実行します。
oc -n <managed cluster namespace> get operatorpolicy install-quay
oc -n <managed cluster namespace> get operatorpolicy install-quay
4.15.9.2. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
Operator ポリシーコントローラー を参照してください。