2.3. ハブクラスターポリシーフレームワーク
ポリシーを作成および管理し、可視性を高め、標準に合わせて設定を修正するには、Red Hat Advanced Cluster Management for Kubernetes Governance のセキュリティーポリシーフレームワークを使用します。Red Hat Advanced Cluster Management for Kubernetes ガバナンスは、企業が独自のセキュリティーポリシーを導入するための拡張可能なポリシーフレームワークを提供します。
Policy リソースは、マネージドクラスターの namespace を除き、ハブクラスター上の任意の namespace に作成できます。マネージドクラスターの namespace にポリシーを作成すると、そのポリシーは Red Hat Advanced Cluster Management によって削除されます。Red Hat Advanced Cluster Management の各ポリシーは、1 つ以上のポリシーテンプレート定義にまとめることができます。ポリシー要素の詳細は、このページの ポリシー YAML の表 のセクションを参照してください。
2.3.1. 要件 リンクのコピーリンクがクリップボードにコピーされました!
各ポリシーに、ポリシードキュメントの適用先のクラスターを定義する
Placementリソースと、Red Hat Advanced Cluster Management for Kubernetes ポリシーをバインドするPlacementBindingリソースが必要です。ポリシーリソースは、関連付けられた
Placement定義に基づいてクラスターに適用され、特定の条件に一致するマネージドクラスターのリストを表示できます。environment=devラベルを持つすべてのクラスターに一致するサンプルのPlacementリソースは、次の YAML のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置とサポートされる基準の詳細は、クラスターライフサイクルドキュメントの 配置の概要 を参照してください。
Placementリソースに加えて、PlacementリソースをポリシーにバインドするためのPlacementBindingを作成する必要があります。environment=devラベルを持つすべてのクラスターに一致するサンプルのPlacementリソースは、次の YAML のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Placementリソースを使用するには、ManagedClusterSetBindingリソースを使用して、ManagedClusterSetリソースをPlacementリソースの namespace にバインドする必要があります。詳細は、ManagedClusterSetBinding リソースの作成 を参照してください。 -
コンソールからポリシーの
Placementリソースを作成すると、配置の容認のステータスがPlacementリソースに自動的に追加されます。詳細は、配置への容認の追加 参照してください。
ベストプラクティス: Placement リソースの使用時には、コマンドラインインターフェイス (CLI) を使用してポリシーの更新を行います。
2.3.2. ハブクラスターのポリシーコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、ポリシーコンポーネントを説明します。
2.3.2.1. ポリシー YAML の設定 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーの作成時に、必須パラメーターフィールドと値を含める必要があります。ポリシーコントローラーによっては、他の任意のフィールドおよび値の追加が必要になる場合があります。ポリシーの YAML 設定を以下に示します。
2.3.2.2. ポリシー YAML の表 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーパラメーターの説明は、以下の表を参照してください。
| フィールド | 任意または必須 | 説明 |
|---|---|---|
|
| 必須 |
この値は |
|
| 必須 |
ポリシーのタイプを指定するには、値を |
|
| 必須 | ポリシーリソースを識別する名前。 |
|
| 任意 | ポリシーが検証を試みる標準セットを記述する、一連のセキュリティー情報の指定に使用します。ここに記載されているすべてのアノテーションは、コンマ区切りリストを含む文字列として表示されます。 注記: コンソールの ポリシー ページで、ポリシー定義の標準およびカテゴリーに基づいてポリシー違反を表示できます。 |
|
| 任意 |
このパラメーターを |
|
| 任意 |
バインドされたポリシーのサブセットを選択するには、このパラメーターを |
|
| 任意 | ポリシーが関連するセキュリティー標準の名前。たとえば、アメリカ国立標準技術研究所 (NIST: National Institute of Standards and Technology) および Payment Card Industry (PCI) などがあります。 |
|
| 任意 | セキュリティーコントロールカテゴリーは、1 つ以上の標準に関する特定要件を表します。たとえば、システムおよび情報の整合性カテゴリーには、HIPAA および PCI 標準で必要とされているように、個人情報保護のデータ転送プロトコルが含まれる場合があります。 |
|
| 任意 | チェックされるセキュリティー制御の名前。たとえば、アクセス制御やシステムと情報のインテグリティーです。 |
|
| 必須 |
この値は |
|
| 任意 |
ポリシーの修正を指定します。パラメーターの値は |
|
| 任意 |
ポリシーをマネージドクラスターに複製するときに、ポリシーのラベルとアノテーションをコピーするかどうかを指定します。 |
|
| 任意 | コンプライアンスに関する特別な考慮事項を含む詳細な依存オブジェクトのリストを作成するために使用されます。 |
|
| 必須 | 1 つ以上のポリシーを作成し、マネージドクラスターに適用するのに使用します。 |
|
| 任意 | ポリシーテンプレートの場合は、これを使用して、コンプライアンスに関する特別な考慮事項を詳述した依存オブジェクトのリストを作成します。 |
|
| 任意 | 依存関係の基準が検証されるまで、ポリシーテンプレートを準拠としてマークするために使用されます。 重要: 一部のポリシーの種類は、強制機能をサポートしていない場合があります。 |
2.3.2.3. ポリシーサンプルファイル リンクのコピーリンクがクリップボードにコピーされました!
ロールの設定ポリシーである以下の YAML ファイルを確認します。
2.3.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management ガバナンスフレームワークの関連トピックを参照してください。
2.3.4. ポリシーの依存関係 リンクのコピーリンクがクリップボードにコピーされました!
依存関係を使用すると、クラスター上の他のポリシーが特定の状態にある場合にのみ、ポリシーをアクティブ化できます。依存関係の基準が満たされないと、ポリシーは Pending と表示され、マネージドクラスターにリソースは作成されません。基準ステータスの詳細は、ポリシーステータスを参照してください。
ポリシーの依存関係を使用して、オブジェクトの適用順序を制御できます。たとえば、Operator 用のポリシーと、Operator が管理するリソース用の別のポリシーがある場合は、Operator がインストールされるまでリソースの作成を試行しないように、2 番目のポリシーに依存関係を設定できます。これは、マネージドクラスターのパフォーマンスの向上に役立ちます。
必要なアクセス権: ポリシー管理者
次のポリシー依存関係の例を表示します。ここで、ScanSettingBinding は upstream-compliance-operator ポリシーがマネージドクラスターですでに準拠している場合にのみ作成されます。
- 1
dependenciesフィールドはPolicyオブジェクトに設定され、要件はポリシー内のすべてのポリシーテンプレートに適用されます。- 2
extraDependenciesフィールドは、個々のポリシーテンプレートで設定できます。たとえば、パラメーターは設定ポリシーに対して設定でき、ポリシーで設定されたdependenciesに加えて満たす必要がある基準を定義します。- 3
ignorePendingフィールドは、個々のポリシーテンプレートごとに設定でき、全体的なポリシーコンプライアンスが計算されるときに、そのテンプレートのPending状態がCompliantまたはNonCompliantと見なされるかを設定します。デフォルトでは、これはfalseに設定されており、PendingテンプレートによりポリシーはNonCompliantになります。これをtrueに設定すると、このテンプレートがPendingの場合でもポリシーはCompliantのままになります。これは、それがテンプレートの予想されるステータスである場合に便利です。
注記: 依存関係を使用して、別のクラスターのポリシーのステータスに基づいて、あるクラスターにポリシーを適用することはできません。
2.3.5. ポリシーコンプライアンス履歴 API の設定 (テクノロジープレビュー) (非推奨) リンクのコピーリンクがクリップボードにコピーされました!
ポリシーコンプライアンス履歴 API は、Red Hat Advanced Cluster Management for Kubernetes のポリシーコンプライアンスイベントをクエリー可能な形式で長期間保存する場合に使用できる、オプションのテクニカルプレビュー機能です。この API を使用すると、spec フィールドなどの追加の詳細を取得して、ポリシーを監査およびトラブルシューティングできます。また、ポリシーが無効化されたりクラスターから削除されたりしたときに、コンプライアンスイベントを取得できます。
ポリシーコンプライアンス履歴 API は、監査とトラブルシューティングに役立つ、ポリシーコンプライアンスイベントのコンマ区切り値 (CSV) スプレッドシートを生成することもできます。
2.3.5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーコンプライアンス履歴 API には、バージョン 13 以降の PostgreSQL サーバーが必要です。
Red Hat がサポートする方式は、
registry.redhat.io/rhel9/postgresql-15コンテナーイメージ、registry.redhat.io/rhel8/postgresql-13コンテナーイメージ、postgresql-serverRPM、またはpostgresql/serverモジュールの使用です。各方式のセットアップと設定は、該当する Red Hat 公式ドキュメントを確認してください。ポリシーコンプライアンス履歴 API は、あらゆる標準 PostgreSQL と互換性があり、Red Hat が公式にサポートする製品に限定されません。- この PostgreSQL サーバーには、Red Hat Advanced Cluster Management ハブクラスターからアクセスできる必要があります。PostgreSQL サーバーがハブクラスターの外部で実行されている場合は、ハブクラスターが PostgreSQL サーバーのポート 5432 に接続できるように、ルーティングとファイアウォールの設定を確認してください。このポートは、PostgreSQL 設定で上書きされている場合、異なる値である場合があります。
2.3.5.2. コンプライアンス履歴 API の有効化 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーコンプライアンスイベントを API に記録するようにマネージドクラスターを設定します。これは、すべてのクラスターまたはクラスターのサブセットで有効にできます。以下の手順を実行します。
PostgreSQL サーバーをクラスター管理者として設定します。Red Hat Advanced Cluster Management ハブクラスターに PostgreSQL をデプロイした場合は、
psqlコマンドを使用するために PostgreSQL ポートを一時的にポート転送します。以下のコマンドを実行します。oc -n <PostgreSQL namespace> port-forward <PostgreSQL pod name> 5432:5432
oc -n <PostgreSQL namespace> port-forward <PostgreSQL pod name> 5432:5432Copy to Clipboard Copied! Toggle word wrap Toggle overflow 別のターミナルで、次のようなコマンドを使用して PostgreSQL サーバーにローカルで接続します。
psql 'postgres://postgres:@127.0.0.1:5432/postgres'
psql 'postgres://postgres:@127.0.0.1:5432/postgres'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の SQL ステートメントを使用して、Red Hat Advanced Cluster Management ハブクラスターのユーザーとデータベースを作成します。
CREATE USER "rhacm-policy-compliance-history" WITH PASSWORD '<replace with password>'; CREATE DATABASE "rhacm-policy-compliance-history" WITH OWNER="rhacm-policy-compliance-history";
CREATE USER "rhacm-policy-compliance-history" WITH PASSWORD '<replace with password>'; CREATE DATABASE "rhacm-policy-compliance-history" WITH OWNER="rhacm-policy-compliance-history";Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーコンプライアンス履歴 API にこのデータベースを使用するには、
governance-policy-databaseSecretリソースを作成します。以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Red Hat Advanced Cluster Management がインストールされている namespace を追加します。デフォルトでは、Red Hat Advanced Cluster Management は
open-cluster-managementnamespace にインストールされます。 - 2
- PostgresQL サーバーのホスト名を追加します。PostgreSQL サーバーを Red Hat Advanced Cluster Management ハブクラスターにデプロイし、クラスターの外部に公開されていない場合は、ホスト値に
Serviceオブジェクトを使用できます。形式は<service name>.<namespace>.svcです。このアプローチは、Red Hat Advanced Cluster Management ハブクラスターのネットワークポリシーに依存することに注意してください。 - 3
- PostgreSQL サーバーの TLS 証明書に署名した証明機関の証明書ファイルを
caデータフィールドに指定する必要があります。この値を指定しない場合は、それに応じて sslmode 値を変更する必要があります。ただし、これはデータベース接続のセキュリティーが低下するため、推奨しません。
Red Hat Advanced Cluster Management ハブクラスターの復元操作のために
Secretリソースをバックアップするには、cluster.open-cluster-management.io/backupラベルを追加します。以下のコマンドを実行します。oc -n open-cluster-management label secret governance-policy-database cluster.open-cluster-management.io/backup=""
oc -n open-cluster-management label secret governance-policy-database cluster.open-cluster-management.io/backup=""Copy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL 接続をさらにカスタマイズするには、
connectionURLデータフィールドを直接使用し、PostgreSQL 接続 URI の形式で値を指定します。パスワード内の特殊文字は URL エンコードする必要があります。1 つの方法として、Python を使用してパスワードの URL エンコード形式を生成する方法があります。たとえば、パスワードが$uper<Secr&t%>の場合は、次の Python コマンドを実行して出力%24uper%3CSecr%26t%25%3Eを取得します。python -c 'import urllib.parse; import sys; print(urllib.parse.quote(sys.argv[1]))' '$uper<Secr&t%>'
python -c 'import urllib.parse; import sys; print(urllib.parse.quote(sys.argv[1]))' '$uper<Secr&t%>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow governance-policy-databaseSecretを作成した後、コマンドを実行してポリシーコンプライアンス履歴 API をテストします。OpenShiftRouteオブジェクトが同じ namespace に自動的に作成されます。Red Hat Advanced Cluster Management ハブクラスターのルートが信頼できる証明書を利用していない場合は、curl コマンドで-kフラグを指定して TLS 検証をスキップすることもできます。ただし、これは推奨されません。curl -H "Authorization: Bearer $(oc whoami --show-token)" \ "https://$(oc -n open-cluster-management get route governance-history-api -o jsonpath='{.spec.host}')/api/v1/compliance-events"curl -H "Authorization: Bearer $(oc whoami --show-token)" \ "https://$(oc -n open-cluster-management get route governance-history-api -o jsonpath='{.spec.host}')/api/v1/compliance-events"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功すると、curl コマンドは次のメッセージのような値を返します。
{"data":[],"metadata":{"page":1,"pages":0,"per_page":20,"total":0}}{"data":[],"metadata":{"page":1,"pages":0,"per_page":20,"total":0}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功しないと、curl コマンドは次の 2 つのメッセージのいずれかを返す可能性があります。
{"message":"The database is unavailable"}{"message":"The database is unavailable"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow {"message":"Internal Error"}{"message":"Internal Error"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow メッセージを受け取った場合は、次のコマンドを使用して、
open-cluster-managementnamespace 内の Kubernetes イベントを表示します。oc -n open-cluster-management get events --field-selector reason=OCMComplianceEventsDBError
oc -n open-cluster-management get events --field-selector reason=OCMComplianceEventsDBErrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow イベントから
governance-policy-propagatorログを表示する指示を受け取った場合は、次のコマンドを実行します。oc -n open-cluster-management logs -l name=governance-policy-propagator -f
oc -n open-cluster-management logs -l name=governance-policy-propagator -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ユーザー、パスワード、またはデータベースが正しく指定されていないことを示すエラーメッセージが表示される場合があります。次のメッセージの例を参照してください。
2024-03-05T12:17:14.500-0500 info compliance-events-api complianceeventsapi/complianceeventsapi_controller.go:261 The database connection failed: pq: password authentication failed for user "rhacm-policy-compliance-history"
2024-03-05T12:17:14.500-0500 info compliance-events-api complianceeventsapi/complianceeventsapi_controller.go:261 The database connection failed: pq: password authentication failed for user "rhacm-policy-compliance-history"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、
governance-policy-databaseSecretリソースを正しい PostgreSQL 接続設定で更新します。oc -n open-cluster-management edit secret governance-policy-database
oc -n open-cluster-management edit secret governance-policy-databaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.5.3. コンプライアンス履歴 API URL の設定 リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターで機能を有効にするには、ポリシーコンプライアンス履歴 API URL を設定します。以下の手順を実行します。
次のコマンドを使用して、ポリシーコンプライアンス履歴 API の外部 URL を取得します。
echo "https://$(oc -n open-cluster-management get route governance-history-api -o=jsonpath='{.spec.host}')"echo "https://$(oc -n open-cluster-management get route governance-history-api -o=jsonpath='{.spec.host}')"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は、次の情報のようになり、Red Hat Advanced Cluster Management ハブクラスターのドメイン名を含んでいます。
https://governance-history-api-open-cluster-management.apps.openshift.redhat.com
https://governance-history-api-open-cluster-management.apps.openshift.redhat.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のような
AddOnDeploymentConfigオブジェクトを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
valueパラメーター値は、コンプライアンス履歴の外部 URL に置き換えます。
-
2.3.5.3.1. すべてのマネージドクラスターで有効にする リンクのコピーリンクがクリップボードにコピーされました!
すべてのマネージドクラスターでコンプライアンス履歴 API を有効にして、マネージドクラスターからのコンプライアンスイベントを記録します。以下の手順を実行します。
次のコマンドを使用して、
governance-policy-frameworkClusterManagementAddOnオブジェクトがAddOnDeploymentConfigを使用するように設定します。oc edit ClusterManagementAddOn governance-policy-framework
oc edit ClusterManagementAddOn governance-policy-frameworkCopy to Clipboard Copied! Toggle word wrap Toggle overflow spec.supportedConfigs配列を追加または更新します。リソースの設定は次のようになります。- group: addon.open-cluster-management.io resource: addondeploymentconfigs defaultConfig: name: governance-policy-framework namespace: open-cluster-management- group: addon.open-cluster-management.io resource: addondeploymentconfigs defaultConfig: name: governance-policy-framework namespace: open-cluster-managementCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.5.3.2. 単一のマネージドクラスターでコンプライアンス履歴を有効にする リンクのコピーリンクがクリップボードにコピーされました!
単一のマネージドクラスターでコンプライアンス履歴 API を有効にして、マネージドクラスターからのコンプライアンスイベントを記録します。以下の手順を実行します。
マネージドクラスター namespace で、
governance-policy-frameworkManagedClusterAddOnリソースを設定します。次のコマンドを使用して、Red Hat Advanced Cluster Management ハブクラスターから次のコマンドを実行します。oc -n <manage-cluster-namespace> edit ManagedClusterAddOn governance-policy-framework
oc -n <manage-cluster-namespace> edit ManagedClusterAddOn governance-policy-frameworkCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<manage-cluster-namespace>プレースホルダーは、有効にするマネージドクラスターの名前に置き換えます。
-
spec.configs配列を追加または更新し、次の例のようなエントリーを含めます。- group: addon.open-cluster-management.io resource: addondeploymentconfigs name: governance-policy-framework namespace: open-cluster-management
- group: addon.open-cluster-management.io resource: addondeploymentconfigs name: governance-policy-framework namespace: open-cluster-managementCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定を確認するには、マネージドクラスター上のデプロイメントで
--compliance-api-urlコンテナー引数が使用されていることを確認します。以下のコマンドを実行します。oc -n open-cluster-management-agent-addon get deployment governance-policy-framework -o jsonpath='{.spec.template.spec.containers[1].args}'oc -n open-cluster-management-agent-addon get deployment governance-policy-framework -o jsonpath='{.spec.template.spec.containers[1].args}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は次の例のような内容になります。
["--enable-lease=true","--hub-cluster-configfile=/var/run/klusterlet/kubeconfig","--leader-elect=false","--log-encoder=console","--log-level=0","--v=-1","--evaluation-concurrency=2","--client-max-qps=30","--client-burst=45","--disable-spec-sync=true","--cluster-namespace=local-cluster","--compliance-api-url=https://governance-history-api-open-cluster-management.apps.openshift.redhat.com"]
["--enable-lease=true","--hub-cluster-configfile=/var/run/klusterlet/kubeconfig","--leader-elect=false","--log-encoder=console","--log-level=0","--v=-1","--evaluation-concurrency=2","--client-max-qps=30","--client-burst=45","--disable-spec-sync=true","--cluster-namespace=local-cluster","--compliance-api-url=https://governance-history-api-open-cluster-management.apps.openshift.redhat.com"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいポリシーコンプライアンスイベントが、すべてポリシーコンプライアンス履歴 API に記録されます。
特定のマネージドクラスターのポリシーコンプライアンスイベントが記録されていない場合は、影響を受けるマネージドクラスターの
governance-policy-frameworkログを表示します。oc -n open-cluster-management-agent-addon logs deployment/governance-policy-framework -f
oc -n open-cluster-management-agent-addon logs deployment/governance-policy-framework -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のメッセージに類似したログメッセージが表示されます。
message値が空の場合は、ポリシーコンプライアンス履歴 API の URL が正しくないか、ネットワーク通信の問題が発生しています。024-03-05T19:28:38.063Z info policy-status-sync statussync/policy_status_sync.go:750 Failed to record the compliance event with the compliance API. Will requeue. {"statusCode": 503, "message": ""}024-03-05T19:28:38.063Z info policy-status-sync statussync/policy_status_sync.go:750 Failed to record the compliance event with the compliance API. Will requeue. {"statusCode": 503, "message": ""}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ポリシーコンプライアンス履歴 API URL が正しくない場合は、次のコマンドを使用してハブクラスターの URL を編集します。
oc -n open-cluster-management edit AddOnDeploymentConfig governance-policy-framework
oc -n open-cluster-management edit AddOnDeploymentConfig governance-policy-frameworkCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: ネットワーク通信の問題が発生した場合は、ネットワークインフラストラクチャーに基づき問題を診断する必要があります。
2.3.5.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- ポリシーコンプライアンス履歴 API (テクノロジープレビュー) を参照してください。
- ハブクラスターポリシーフレームワーク を参照してください。
2.3.6. ポリシージェネレータの統合 リンクのコピーリンクがクリップボードにコピーされました!
ポリシージェネレーターを統合すると、Red Hat Advanced Cluster Management for Kubernetes ポリシーを自動的にビルドできます。ポリシージェネレーターを統合するには、ポリシージェネレーター を参照してください。
ポリシージェネレーターで実行できる操作の例は、Compliance Operator をインストールするポリシーの生成 を参照してください。
2.3.7. ポリシージェネレーター リンクのコピーリンクがクリップボードにコピーされました!
ポリシージェネレーターは、Kustomize を使用して Red Hat Advanced Cluster Management ポリシーを生成する Red Hat Advanced Cluster Management for Kubernetes アプリケーションライフサイクルサブスクリプション Red Hat OpenShift GitOps ワークフローに含まれています。ポリシージェネレーターは、設定に使用される PolicyGenerator マニフェスト YAML ファイル提供の Kubernetes マニフェスト YAML ファイルから Red Hat Advanced Cluster Management ポリシーをビルドします。ポリシージェネレーターは、Kustomize ジェネレータープラグインとして実装されます。Kustomize の詳細は、Kustomize のドキュメント を参照してください。
ポリシージェネレーターの詳細は、次のセクションを参照してください。
2.3.7.1. ポリシージェネレーター機能 リンクのコピーリンクがクリップボードにコピーされました!
ポリシージェネレーターと Red Hat Advanced Cluster Management アプリケーションライフサイクルサブスクリプション OpenShift GitOps ワークフローとの統合により、OpenShift Container Platform マネージドクラスターへの Kubernetes リソースオブジェクトの配布と、Red Hat Advanced Cluster Management ポリシーによる Kubernetes クラスターへの配布がシンプルになります。
ポリシージェネレーターを使用して、次のアクションを実行します。
- Kustomize ディレクトリーから作成されたマニフェストを含む、任意の Kubernetes マニフェストファイルを Red Hat Advanced Cluster Management 設定ポリシーに変換します。
- 生成された Red Hat Advanced Cluster Management ポリシーに挿入される前に、入力された Kubernetes マニフェストにパッチを適用します。
- Red Hat Advanced Cluster Management for Kubernetes で、Gatekeeper ポリシー違反を報告できるように追加の設定ポリシーを生成します。
- ハブクラスターでポリシーセットを生成します。
2.3.7.2. ポリシージェネレーターの設定構造 リンクのコピーリンクがクリップボードにコピーされました!
ポリシージェネレーターは、PolicyGenerator の種類および policy.open-cluster-management.io/v1 API バージョンのマニフェストで設定される Kustomize ジェネレータープラグインです。以下に、設定構造の詳細を記載しています。
プラグインを使用するには、
kustomization.yamlファイルにgeneratorsセクションを追加します。以下の例を参照してください。generators: - policy-generator-config.yaml
generators: - policy-generator-config.yaml1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 直前の例で参照される
policy-generator-config.yamlファイルは、生成するポリシーの手順を含む YAML ファイルです。
以下は、
policyDefaultsとpoliciesを含むシンプルなPolicyGenerator設定ファイルの例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
configmap.yamlは、ポリシーに組み込まれる Kubernetes マニフェスト YAML ファイルを表します。また、Kustomize ディレクトリー、または複数の Kubernetes マニフェスト YAML ファイルを含むディレクトリーへのパスを設定できます。以下は、ConfigMapの例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow また、
object-templates-rawマニフェストを使用して、追加したコンテンツを含むConfigurationPolicyを自動的に生成できます。たとえば、次の構文でマニフェストファイルを作成できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow マニフェストファイルを作成した後に、
PolicyGenerator設定ファイルを作成できます。次の YAML の例を参照し、pathにはmanifest.yamlファイルへのパスを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された
Policyリソース、生成されたPlacementリソース、およびPlacementBindingリソースは、次の例のようになります。注記: リソースの仕様は、ポリシージェネレーター設定表 (参照用) に記載されています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.7.3. ポリシージェネレーター設定表 (参照用) リンクのコピーリンクがクリップボードにコピーされました!
policyDefaults セクションのすべてのフィールド (namespace を除く) はポリシーごとにオーバーライドでき、policySetDefaults セクションのすべてのフィールドはポリシーセットごとにオーバーライドできます。
| フィールド | 任意または必須 | 説明 |
|---|---|---|
|
| 必須 |
この値は |
|
| 必須 |
ポリシーのタイプを指定するには、値を |
|
| 必須 | ポリシーリソースを識別する名前。 |
|
| 任意 |
複数のポリシーが同じ配置を使用する場合、この名前は結果の |
|
| 必須 |
|
|
| 必須 | すべてのポリシーの namespace。 |
|
| 任意 |
マニフェストとクラスターのオブジェクトを比較する場合のポリシーコントローラーの動作を決定します。使用できる値は、 |
|
| 任意 |
マニフェストメタデータセクションをクラスター上のオブジェクトと比較するときに、 |
|
| 任意 |
|
|
| 任意 |
|
|
| 任意 |
|
|
| 任意 |
ポリシーの |
|
| 任意 |
生成された設定ポリシーに設定するアノテーションのキーと値のペアです。たとえば、 |
|
| 任意 |
すべてのポリシーのラベルとアノテーションをコピーし、レプリカポリシーに追加します。デフォルトでは |
|
| 任意 | 設定ポリシーにより発行されるコンプライアンスメッセージを、現在のコンプライアンスに基づき、指定された Go テンプレートの 1 つを使用するように設定します。 |
|
| 任意 |
ポリシー違反の重大度。デフォルト値は |
|
| 任意 |
ポリシーが無効になっているかどうか、つまり、ポリシーが伝播されておらず、結果としてステータスがないことを意味します。ポリシーを有効にするデフォルト値は |
|
| 任意 |
ポリシーの修復メカニズム。パラメーターの値は |
|
| namespace に属するオブジェクトに namespace が指定されていない場合に必須 |
オブジェクトが適用されるマネージドクラスター内の namespace を決定します。 |
|
| 任意 |
特定のコンプライアンス状態にある場合にポリシーを評価する頻度を指定します。
マネージドクラスターのリソースが少ない場合は、評価間隔のポーリング間隔を長く設定して、Kubernetes API とポリシーコントローラーでの CPU とメモリーの使用量を削減できます。これらは期間を表す形式です。たとえば、 |
|
| 任意 |
準拠ポリシーの評価頻度を指定します。以前のポーリング動作を有効にする場合は、このパラメーターを |
|
| 任意 |
非準拠ポリシーの評価頻度を指定します。以前のポーリング動作を有効にする場合は、このパラメーターを |
|
| 任意 |
ポリシーが削除されたときに、ポリシーによって作成または監視されているオブジェクトを削除するかどうかを決定します。プルーニングは、ポリシーの修復アクションが |
|
| 任意 |
更新が必要な場合に、オブジェクトを削除して再作成するかどうかを記述します。
|
|
| 任意 |
クラスター上のオブジェクトとポリシー内の |
|
| 任意 |
このポリシーが適用される前に、特定のコンプライアンス状態にある必要があるオブジェクトのリスト。 |
|
| 必須 | 依存しているオブジェクトの名前。 |
|
| 任意 | 依存しているオブジェクトの namespace。デフォルトは、ポリシージェネレーターに設定されたポリシーの namespace です。 |
|
| 任意 |
オブジェクトが必要とするコンプライアンス状態。デフォルト値は |
|
| 任意 |
オブジェクトの種類。デフォルトでは、種類は |
|
| 任意 |
オブジェクトの API バージョン。デフォルト値は |
|
| 任意 | 作成するポリシーの説明。 |
|
| 任意 |
このポリシーが適用される前に、特定のコンプライアンス状態にある必要があるオブジェクトのリスト。定義した依存関係は、 |
|
| 必須 | 依存しているオブジェクトの名前。 |
|
| 任意 | 依存しているオブジェクトの namespace。デフォルトでは、値はポリシージェネレーターに設定されたポリシーの namespace 間に設定されます。 |
|
| 任意 |
オブジェクトが必要とするコンプライアンス状態。デフォルト値は |
|
| 任意 |
オブジェクトの種類。デフォルト値は |
|
| 任意 |
オブジェクトの API バージョン。デフォルト値は |
|
| 任意 |
ポリシージェネレーターがその依存関係が目的の状態に達するのを待機しているときに、コンプライアンスステータスチェックをバイパスします。デフォルト値は |
|
| 任意 |
ポリシーの |
|
| 任意 |
ポリシーテンプレートに |
|
| 任意 |
これは、ポリシーでラップされるすべてのマニフェストに対して設定ポリシーを 1 つ生成するかどうかを決定します。 |
|
| 任意 |
Gatekeeper マニフェストを設定ポリシーで定義せずに直接使用するには、 |
|
| 任意 |
このポリシーが Kyverno ポリシーマニフェストを参照すると、Kyverno ポリシーの違反時に Red Hat Advanced Cluster Management でポリシー違反を受け取るために、設定ポリシーを追加で生成するかどうかが決定されます。デフォルト値は |
|
| 任意 |
ポリシーの |
|
| 任意 |
Gatekeeper 制約の |
|
| 任意 |
ポリシーが参加するポリシーセットの配列。ポリシーセットの詳細は、 |
|
| 任意 |
ポリシーの配置マニフェストを生成します。デフォルトでは |
|
| 任意 |
ポリシーがポリシーセットの一部である場合、デフォルトでは、ポリシーセットの配置が生成されるため、ジェネレーターはこのポリシーの配置を生成しません。ポリシーの配置とポリシーセットの配置の両方でポリシーをデプロイするには、 |
|
| 任意 | ポリシーの配置設定。このデフォルトは、すべてのクラスターに一致する配置設定になります。 |
|
| 任意 | 同じクラスターラベルセレクターを含む配置を統合するための名前を指定します。 |
|
| 任意 |
|
|
| 任意 |
クラスターにすでに存在する配置を使用するには、このパラメーターを定義します。 |
|
| 任意 |
既存の配置を再利用するには、 |
|
| 任意 |
|
|
| 任意 |
|
|
| 任意 |
|
|
| 任意 |
ポリシーセットのデフォルト値。このパラメーターにリストされているデフォルト値は、 |
|
| 任意 |
ポリシーの配置設定。このデフォルトは、すべてのクラスターに一致する配置設定になります。このフィールドの説明は、 |
|
| 任意 |
ポリシーセットの配置マニフェストを生成します。デフォルトでは |
|
| 必須 |
デフォルト値または |
|
| 任意 | 作成するポリシーの説明。 |
|
| 必須 | 作成するポリシーの名前。 |
|
| 必須 |
デフォルト値、この |
|
| 必須 |
単一のファイル、ファイルのフラットディレクトリー、または 次のマニフェストがサポートされています。
|
|
| 任意 |
|
|
| 任意 |
パスのマニフェストに適用する Kustomize パッチのリスト。複数のマニフェストがある場合は、Kustomize がパッチの適用先のマニフェストを特定できるように、パッチに |
|
| 任意 |
ポリシーの |
|
| 任意 |
作成するポリシーセットのリストと、デフォルト値または |
|
| 必須 | 作成するポリシーセットの名前です。 |
|
| 任意 | 作成するポリシーセットの説明です。 |
|
| 任意 |
ポリシーセットに含まれるポリシーのリストです。 |
2.3.7.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- GitOps Operator をインストールするためのポリシーの生成 を参照してください。
- 詳細は、ポリシーセットコントローラー を参照してください。
- 詳細は、カスタマイズの適用 を参照してください。
- その他のトピックは、ガバナンスに関する ドキュメントを参照してください。
-
kustomization.yamlファイルの例を参照してください。 - Kubernetes のラベルとセレクター のドキュメントを参照してください。
- 詳細は、Gatekeeper を参照してください。
- Kustomize ドキュメント を参照してください。
2.3.8. Compliance Operator をインストールするポリシーの生成 リンクのコピーリンクがクリップボードにコピーされました!
クラスターに Compliance Operator をインストールするポリシーを生成します。Compliance Operator などの namespaced インストールモードを使用する Operator の場合は、OperatorGroup マニフェストも必要になります。
以下の手順を実行します。
Namespace、Subscription、およびcompliance-operator.yamlというOperatorGroupマニフェストを含む YAML ファイルを作成します。以下の例では、これらのマニフェストをcompliance-operatornamespace にインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PolicyGenerator設定ファイルを作成します。すべての OpenShift Container Platform マネージドクラスターに Compliance Operator をインストールする以下のPolicyGeneratorポリシーの例を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシージェネレーターを
kustomization.yamlファイルに追加します。generatorsセクションの設定は次のようになります。generators: - policy-generator-config.yaml
generators: - policy-generator-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow その結果、生成されたポリシーは次のファイルのようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
その結果、生成されたポリシーが表示されます。
2.3.9. ガバナンスポリシーフレームワークのアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management for Kubernetes ガバナンスライフサイクルを使用してクラスターのセキュリティーを強化します。製品ガバナンスのライフサイクルは、サポートポリシー、プロセス手順の使用をもとに、中央のインターフェイスページからセキュリティーおよびコンプライアンスを管理します。ガバナンスアーキテクチャーの以下の図を参照してください。
ガバナンスアーキテクチャーの図は、以下のコンポーネントの説明を参照してください。
ガバナンスポリシーフレームワーク: 前のイメージは、マネージドクラスター上で
governance-policy-frameworkPod として実行され、次のコントローラーを含むフレームワークを表しています。- 仕様同期コントローラー: ハブクラスター上のマネージドクラスター namespace 内の複製されたポリシーを、マネージドクラスター上のマネージドクラスター namespace に同期します。
- ステータス同期コントローラー: ハブおよびマネージドクラスター上の複製されたポリシー内のポリシーコントローラーからのコンプライアンスイベントを記録します。ステータスには、現在のポリシーに関連する更新のみが含まれます。ポリシーが削除されて再作成されると、過去のステータスは考慮されなくなります。
-
テンプレート同期コントローラー: 複製されたポリシー
spec.policy-templatesエントリーの定義に基づいて、マネージドクラスター上のマネージドクラスター namespace 内のオブジェクトを作成、更新、および削除します。 - Gatekeeper 同期コントローラー: Gatekeeper 制約監査結果を、対応する Red Hat Advanced Cluster Management ポリシーのコンプライアンスイベントとして記録します。
- ポリシープロパゲーターコントローラー: Red Hat Advanced Cluster Management ハブクラスター上で実行され、ルートポリシーにバインドされた配置に基づいて、ハブ上のマネージドクラスター namespace に複製されたポリシーを生成します。また、複製されたポリシーのコンプライアンスステータスをルートポリシーステータスに集約し、ルートポリシーにバインドされたポリシー自動化に基づいて自動化を開始します。
- ガバナンスポリシーアドオンコントローラー: Red Hat Advanced Cluster Management ハブクラスター上で実行され、マネージドクラスター上のポリシーコントローラーのインストールを管理します。
2.3.9.1. ガバナンスアーキテクチャーコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ガバナンスアーキテクチャーには、以下のコンポーネントも含まれます。
ガバナンスダッシュボード: ポリシーおよびクラスターの違反を含むクラウドガバナンスおよびリスクの詳細の概要を提供します。Red Hat Advanced Cluster Management for Kubernetes ポリシーフレームワークの構造、および Red Hat Advanced Cluster Management for Kubernetes Governance ダッシュボードの使用方法は、Governance ダッシュボードの管理 セクションを参照してください。
注記:
-
ポリシーがマネージドクラスターに伝播すると、最初にハブクラスターのクラスター namespace にレプリケートされ、
namespaceName.policyNameを使用して名前とラベルが付けられます。ポリシーを作成するときは、ラベル値の Kubernetes の長さ制限により、namespaceName.policyNameの長さが 63 文字を超えないようにしてください。 -
ハブクラスターでポリシーを検索すると、マネージドクラスター namespace で複製されたポリシー名が返される場合もあります。たとえば、
defaultnamespace でpolicy-dhaz-certを検索すると、ハブクラスターのポリシー名 (default.policy-dhaz-cert) がマネージドクラスターの namespace にも表示される場合があります。
-
ポリシーがマネージドクラスターに伝播すると、最初にハブクラスターのクラスター namespace にレプリケートされ、
- ポリシーベースのガバナンスフレームワーク: 地理的リージョンなどのクラスターに関連付けられた属性に基づいて、さまざまなマネージドクラスターへのポリシー作成およびデプロイメントをサポートします。オープンソースコミュニティー には、デフォルトのポリシーの例、およびクラスターにポリシーをデプロイするための手順があります。また、ポリシーに違反した場合は、ユーザーが選択したアクションを実行するように、自動化を設定できます。
-
オープンソースコミュニティー: Red Hat Advanced Cluster Management ポリシーフレームワークの基盤を使用したコミュニティーの貢献をサポートします。ポリシーコントローラーとサードパーティーのポリシーも
open-cluster-management/policy-collectionリポジトリー に含まれます。GitOps を使用して、ポリシーを投稿およびデプロイできます。
2.3.9.2. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- ポリシーコントローラーの概要 を参照してください。
- GitOps を使用したポリシーのデプロイ を参照してください。
2.3.10. ガバナンスダッシュボード リンクのコピーリンクがクリップボードにコピーされました!
Governance ダッシュボードを使用してリソースを作成、表示、編集し、セキュリティーポリシーとポリシー違反を管理します。コマンドラインとコンソールからポリシーの YAML ファイルを作成できます。コンソールからの ガバナンス ダッシュボードの詳細は、引き続きお読みください。
2.3.10.1. Governance ページ リンクのコピーリンクがクリップボードにコピーされました!
Governance ページの Overview、Policy sets、Policies には次のタブが表示されます。どの情報が表示されるかを確認するには、次の説明をお読みください。
概要
Overview タブで、Policy set violations、Policy violations、Clusters、Categories、Controls、および Standards タブから概要カードが表示されます。
ポリシーセット
ハブクラスターポリシーセットを作成および管理します。
ポリシー
- セキュリティーポリシーを作成および管理します。ポリシーの表には、ポリシーの次の詳細がリストされます。Name、Namespace、および Cluster violations が表示されます。
- Actions アイコンを選択すると、修復を編集、有効化、無効化の設定をして、ポリシーの通知、有効化、または削除ができます。特定のポリシーのカテゴリーおよび標準を表示するには、ドロップダウン矢印を選択して行を展開します。
- Manage column ダイアログボックスでテーブルの列の順序を変更します。Manage column アイコンを選択すると、ダイアログボックスが表示されます。列の順序を変更するには、Reorder アイコンを選択して列名を移動します。表に列を表示するには、その列名のチェックボックスをクリックし、Save ボタンを選択します。
複数のポリシーを選択して Actions ボタンをクリックして、完全な一括処理を行います。Filter ボタンをクリックしてポリシーテーブルをカスタマイズすることもできます。
表一覧でポリシーを選択すると、コンソールで、以下の情報タブが表示されます。
- Details: Details タブを選択して、ポリシーの情報、配置の情報を表示します。Placement の表の コンプライアンス 列には、表示されるクラスターのコンプライアンスを確認するためのリンクがあります。
- Results: Results タブを選択して、ポリシーに関連付けられた全クラスターの表リストを表示します。
- Message 列から View details リンクをクリックして、テンプレートの詳細、テンプレート YAML、および関連リソースを表示します。関連リソースを表示することもできます。View history リンクをクリックして、違反メッセージと最後のレポートの時間を表示します。
2.3.10.2. ガバナンスの自動化設定 リンクのコピーリンクがクリップボードにコピーされました!
特定のポリシーに設定済みの自動化がある場合は、自動化を選択して詳細を表示できます。自動化のスケジュール頻度オプションに関する以下の説明を参照してください。
-
Manual run: この自動化を手動で設定して 1 回実行します。自動化の実行後に、
disabledに設定されます。注記: スケジュール頻度が無効になっている場合のみ Manual run モードを選択できます。 -
Run once mode: ポリシーに違反すると、自動化が 1 回実行されます。自動化の実行後に、
disabledに設定されます。自動化がdisabledに設定された後は、引き続き自動化を手動で実行する必要があります。once mode を実行すると、target_clustersの追加変数にはポリシーに違反するクラスターのリストが自動的に指定されます。Ansible Automation Platform Job テンプレートでは、EXTRA VARIABLESセクション (extra_varsとも呼ばれる) に対してPROMPT ON LAUNCHが有効になっている必要があります。 -
Run everyEvent モード: ポリシーに違反すると、自動化はマネージドクラスターごとに固有のポリシー違反が発生するたびに毎回実行します。
DelayAfterRunSecondsパラメーターを使用して、同じクラスターで自動化を再開できるようになるまでの最小秒数を設定します。ポリシーが遅延期間中に複数回違反され、違反状態のままであると、自動化は遅延期間後に 1 回実行されます。デフォルトは 0 秒で、everyEventモードにのみ適用されます。everyEventモードを実行すると、target_clustersと Ansible Automation Platform Job テンプレートの追加変数は once モード と同じになります。 -
Disable automation: スケジュールされた自動化を
disabledに設定すると、設定が更新されるまで自動化は実行されません。
以下の変数は、Ansible Automation Platform ジョブの extra_vars で自動的に提供されます。
-
policy_name: ハブクラスターで Ansible Automation Platform ジョブを開始する非準拠のルートポリシーの名前。 -
policy_namespace: ルートポリシーの namespace。 -
hub_cluster:clustersDNSオブジェクトの値によって決定されるハブクラスターの名前。 -
policy_sets: このパラメーターには、ルートポリシーに関連付けられたすべてのポリシーセット名が含まれます。ポリシーがポリシーセット内にないと、policy_setパラメーターは空になります。 -
policy_violations: このパラメーターには、非準拠のクラスター名のリストが含まれており、値は非準拠の各クラスターのポリシーstatusフィールドです。
2.3.10.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーポリシーの作成および更新の詳細は、以下のトピックを参照してください。
2.3.11. 設定ポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
設定ポリシーの YAML ファイルは、コマンドラインインターフェイス (CLI) またはコンソールから作成できます。コンソールから設定ポリシーを作成すると、YAML エディターに YAML ファイルが表示されます。
2.3.11.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 必要なアクセス権限: 管理者およびクラスター管理者
- 既存の Kubernetes マニフェストがある場合は、ポリシージェネレーターを使用して、ポリシーにマニフェストを自動的に含めることを検討してください。ポリシージェネレーター ドキュメントを参照してください。
2.3.11.2. CLI からの設定ポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
CLI から設定ポリシーを作成するには、以下の手順を実行します。
設定ポリシーの YAML ファイルを作成します。以下のコマンドを実行します。
oc create -f configpolicy-1.yaml
oc create -f configpolicy-1.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ポリシーは以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してポリシーを適用します。
oc apply -f <policy-file-name> --namespace=<namespace>
oc apply -f <policy-file-name> --namespace=<namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してポリシーのリストを確認します。
oc get policies.policy.open-cluster-management.io --namespace=<namespace>
oc get policies.policy.open-cluster-management.io --namespace=<namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
設定ポリシーが作成されました。
2.3.11.2.1. CLI からの設定ポリシーの表示 リンクのコピーリンクがクリップボードにコピーされました!
CLI から設定ポリシーを表示するには、以下の手順を実行します。
以下のコマンドを実行して、特定の設定ポリシーの詳細を表示します。
oc get policies.policy.open-cluster-management.io <policy-name> -n <namespace> -o yaml
oc get policies.policy.open-cluster-management.io <policy-name> -n <namespace> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、設定ポリシーの詳細を表示します。
oc describe policies.policy.open-cluster-management.io <name> -n <namespace>
oc describe policies.policy.open-cluster-management.io <name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.11.2.2. コンソールからの設定ポリシーの表示 リンクのコピーリンクがクリップボードにコピーされました!
コンソールから設定ポリシーおよびそのステータスを表示します。
コンソールからクラスターにログインしたら、Governance を選択してポリシー表の一覧を表示します。注記: ポリシー表の一覧をフィルタリングするには、All policies タブまたは Cluster violations タブを選択します。
詳細を表示するポリシーを 1 つ選択します。Details、Clusters、および Templates タブが表示されます。
2.3.11.3. 設定ポリシーの無効化 リンクのコピーリンクがクリップボードにコピーされました!
設定ポリシーを無効にするには、ポリシーの Actions メニューから Disable policy を選択します。ポリシーは無効になっていますが、削除されていません。
2.3.11.4. 設定ポリシーの削除 リンクのコピーリンクがクリップボードにコピーされました!
CLI またはコンソールから設定ポリシーを削除します。以下の手順を実行します。
ターゲットクラスターからポリシーを削除するには、次のコマンドを実行します。
oc delete policies.policy.open-cluster-management.io <policy-name> -n <namespace>
oc delete policies.policy.open-cluster-management.io <policy-name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、ポリシーが削除されていることを確認します。
oc get policies.policy.open-cluster-management.io <policy-name> -n <namespace>
oc get policies.policy.open-cluster-management.io <policy-name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コンソールから設定ポリシーを削除するには、ポリシー違反テーブルで削除するポリシーの Actions アイコンをクリックし、Delete をクリックします。
ポリシーが削除されました。
2.3.11.5. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- CM-Configuration-Management フォルダー から Red Hat Advanced Cluster Management でサポート対象の設定ポリシーのサンプルを参照してください。
- または、サンプル設定ポリシーの表 を参照して、コントローラーによってモニターされる他の設定ポリシーを確認することもできます。
2.3.12. ガバナンスのための Ansible Automation Platform の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management for Kubernetes ガバナンスを Red Hat Ansible Automation Platform と統合して、ポリシー違反の自動化を作成できます。Red Hat Advanced Cluster Management コンソールで、自動化を設定できます。
2.3.12.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- サポート対象の OpenShift Container Platform バージョン
- Ansible Automation Platform バージョン 3.7.3 以降のバージョンがインストールされている。サポートされている最新バージョンの Ansible Automation Platform をインストールすることを推奨します。詳細は、Red Hat Ansible Automation Platform ドキュメント を参照してください。
Operator Lifecycle Manager から Ansible Automation Platform Resource Operator がインストールされている。Update Channel セクションで、
stable-2.x-cluster-scopedを選択します。All namespaces on the cluster (default) インストールモードを選択します。注記: Ansible Automation Platform ジョブテンプレートを実行する際は、べき等であることを確認してください。Ansible Automation Platform Resource Operator がない場合は、Red Hat OpenShift Container Platform OperatorHub ページから確認することができる。
Red Hat Ansible Automation Platform のインストールと設定の詳細は、Ansible タスクの設定 を参照してください。
2.3.12.2. コンソールからのポリシー違反自動化の作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management ハブクラスターにログインし、ナビゲーションメニューから Governance を選択し、Policies タブをクリックしてポリシーテーブルを表示します。
Automation 列の Configure をクリックして、特定のポリシーの自動化を設定します。ポリシー自動化パネルが表示されたら、自動化を作成できます。Ansible credential セクションから、ドロップダウンメニューをクリックして Ansible 認証情報を選択します。認証情報を追加する必要がある場合は、認証情報の管理 を参照してください。
注記: この認証情報は、ポリシーと同じ namespace にコピーされます。自動化の開始用に作成された AnsibleJob リソースで、この認証情報を使用します。コンソールの Credentials セクションで Ansible 認証情報に加えられた変更は、自動的に更新されます。
認証情報を選択したら、Ansible ジョブドロップダウンリストをクリックしてジョブテンプレートを選択します。Extra variables セクションで、PolicyAutomation の extra_vars セクションからパラメーター値を追加します。自動化の頻度を選択します。Run once mode、Run everyEvent mode、または Disable automation を選択できます。
Submit を選択して、ポリシー違反の自動化を保存します。Ansible ジョブの詳細パネルから View Job リンクを選択すると、このリンクから Search ページのジョブテンプレートが表示されます。自動化が正常に作成されると、Automation 列に表示されます。
注意: ポリシー自動化が関連付けられているポリシーを削除すると、ポリシー自動化はクリーンアップの一部として自動的に削除されます。
コンソールからポリシー違反の自動化が作成されました。
2.3.12.3. CLI からのポリシー違反自動化の作成 リンクのコピーリンクがクリップボードにコピーされました!
CLI からポリシー違反の自動化を設定するには、以下の手順を実行します。
-
ターミナルから、
oc loginコマンドを使用して Red Hat Advanced Cluster Management ハブクラスターに再度ログインします。 - 自動化を追加するポリシーを検索するか、作成します。ポリシー名と namespace をメモします。
以下のサンプルをガイドとして使用して、
PolicyAutomationリソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
前のサンプルの Automation テンプレート名は
Policy Compliance Templateです。この値は、ジョブテンプレート名と一致するように変更してください。 -
extra_varsセクションで、Automation テンプレートに渡す必要があるパラメーターを追加します。 -
モードを
once、everyEvent、またはdisabledに設定します。 -
policyRefは、ポリシーの名前に設定します。 -
Ansible Automation Platform 認証情報を含むこの
PolicyAutomationリソースと同じ namespace にシークレットを作成します。上記の例では、シークレット名はansible-towerです。アプリケーションライフサイクルからのサンプル を使用して、シークレットの作成方法を確認します。 PolicyAutomationリソースを作成します。注記:
以下のアノテーションを
PolicyAutomationリソースに追加することで、ポリシー自動化の即時実行を開始できます。metadata: annotations: policy.open-cluster-management.io/rerun: "true"metadata: annotations: policy.open-cluster-management.io/rerun: "true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ポリシーが
onceモードの場合は、ポリシーがコンプライアンス違反があると自動化が実行されます。target_clustersという名前のextra_vars変数が追加され、値はコンプライアンス違反のポリシーが含まれる、各マネージドクラスター名の配列です。 -
ポリシーが
everyEventモードであり、DelayAfterRunSecondsが定義された時間値を超えると、ポリシーは非準拠となり、ポリシー違反ごとに自動化が実行されます。