2.3. ポリシーコントローラー
ポリシーコントローラーは、クラスターがポリシーに準拠しているかどうかを監視し、報告します。未設定のポリシーテンプレートを使用して事前定義のポリシーコントローラーおよびポリシーを適用し、Red Hat Advanced Cluster Management for Kubernetes ポリシーフレームワークを使用します。ポリシーコントローラーは Kubernetes のカスタムリソース定義 (CRD) インスタンスです。
CRD の詳細は、Extend the Kubernetes API with CustomResourceDefinitions を参照してください。ポリシーコントローラーは、ポリシー違反を修正し、クラスターのステータスを準拠させます。
製品ポリシーフレームワークを使用して、カスタムポリシーおよびポリシーコントローラーを作成できます。詳細は、カスタムポリシーコントローラーの作成 (非推奨) を参照してください。
Red Hat Advanced Cluster Management for Kubernetes の以下のポリシーコントローラーについては、次のトピックを参照してください。
重要: 設定ポリシーコントローラーポリシーのみが enforce 機能をサポートします。ポリシーコントローラーが enforce 機能をサポートしないポリシーを手動で修正する必要があります。
ポリシー管理の他のトピックについては、ガバナンス を参照してください。
2.3.1. Kubernetes 設定ポリシーコントローラー リンクのコピーリンクがクリップボードにコピーされました!
設定ポリシーコントローラーを使用して、Kubernetes リソースを設定し、クラスター全体にセキュリティーポリシーを適用できます。
設定ポリシーコントローラーは、ローカルの Kubernetes API サーバーと通信し、クラスターにある設定の一覧を取得します。CRD の詳細は、Extend the Kubernetes API with CustomResourceDefinitions を参照してください。
設定ポリシーコントローラーは、インストール時にハブクラスターに作成されます。設定ポリシーコントローラーは、enforce 機能をサポートし、以下のポリシーのコンプライアンスを監視します。
設定ポリシーの remediationAction が enforce に設定されている場合、コントローラーはターゲットのマネージドクラスターで複製ポリシーを作成します。設定ポリシーでテンプレートを使用することもできます。詳細は、設定ポリシーでのテンプレートのサポート を参照してください。
設定ポリシーコントローラーについては、以下を参照してください。
2.3.1.1. 設定ポリシーコントローラーの YAML 設定 リンクのコピーリンクがクリップボードにコピーされました!
Name: configuration-policy-example
Namespace:
Labels:
APIVersion: policy.open-cluster-management.io/v1
Kind: ConfigurationPolicy
Metadata:
Finalizers:
finalizer.policy.open-cluster-management.io
Spec:
Conditions:
Ownership:
NamespaceSelector:
Exclude:
Include:
RemediationAction:
Status:
CompliancyDetails:
Configuration-Policy-Example:
Default:
Kube - Public:
Compliant: Compliant
Events:
2.3.1.2. 設定ポリシーの例 リンクのコピーリンクがクリップボードにコピーされました!
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: policy-config
spec:
namespaceSelector:
include: ["default"]
exclude: []
remediationAction: inform
severity: low
object-templates:
- complianceType: musthave
objectDefinition:
apiVersion: v1
kind: Pod
metadata:
name: pod
spec:
containers:
- image: 'pod-image'
name:
ports:
- containerPort: 80
2.3.1.3. 設定ポリシーの YAML の表 リンクのコピーリンクがクリップボードにコピーされました!
| フィールド | 説明 |
|---|---|
| apiVersion |
必須。この値は |
| kind |
必須。ポリシーのタイプを指定するには、値を |
| metadata.name | 必須。ポリシーの名前。 |
| spec | 必須。監視する設定ポリシーと設定ポリシーの修正方法に関する仕様。 |
| spec.namespace |
namespace を使用したオブジェクトまたはリソースに必要です。ポリシーの適用先のハブクラスター内にある namespace。 |
| spec.remediationAction |
必須。ポリシーの修正を指定します。 |
| spec.remediationAction.severity |
必須。ポリシーがコンプライアンス違反の場合に重大度を指定します。パラメーター値 |
| spec.remediationAction.complianceType | 必須。マネージドクラスターに評価または適用する必要のあるロールおよび他の Kubernetes オブジェクトの予想される動作を一覧表示するのに使用されます。以下の動詞をパラメーター値として使用する必要があります。
|
NIST Special Publication 800-53 (Rev. 4) を使用するポリシーサンプルおよび、CM-Configuration-Management フォルダー の Red Hat Advanced Cluster Management がサポートするポリシーサンプルを参照してください。ポリシーがハブクラスターにどのように適用されるかについては、サポート対象のポリシー 参照してください。
ポリシーを作成してカスタマイズする方法は、セキュリティーポリシーの管理 を参照してください。コントローラーの詳細は、ポリシーコントローラー を参照してください。