2.3. ポリシーコントローラー
ポリシーコントローラーは、クラスターがポリシーに準拠しているかどうかを監視し、報告します。未設定のポリシーテンプレートを使用して事前定義のポリシーコントローラーおよびポリシーを適用し、Red Hat Advanced Cluster Management for Kubernetes ポリシーフレームワークを使用します。ポリシーコントローラーは Kubernetes のカスタムリソース定義 (CRD) インスタンスです。CRD の詳細は、「Extend the Kubernetes API with CustomResourceDefinitions」を参照してください。ポリシーコントローラーは、ポリシー違反を修正し、クラスターのステータスを準拠させます。
製品ポリシーフレームワークを使用して、カスタムポリシーおよびポリシーコントローラーを作成できます。詳細は、「カスタムポリシーコントローラーの作成」を参照してください。
重要: 設定ポリシーコントローラーだけが enforce
機能をサポートしています。ポリシーコントローラーが enforce
機能をサポートしないポリシーを手動で修正する必要があります。
Red Hat Advanced Cluster Management for Kubernetes の以下のポリシーコントローラーについては、次のトピックを参照してください。
ポリシー管理の他のトピックについては、「ガバナンス」を参照してください。
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 がサポートするポリシーサンプルを参照してください。ポリシーがハブクラスターにどのように適用されるかについては、「サポート対象のポリシー」参照してください。
ポリシーを作成してカスタマイズする方法は、「セキュリティーポリシーの管理」を参照してください。コントローラーの詳細は、「ポリシーコントローラー」を参照してください。