2.3. ポリシーコントローラー


ポリシーコントローラーは、クラスターがポリシーに準拠しているかどうかを監視し、報告します。未設定のポリシーテンプレートを使用して事前定義のポリシーコントローラーおよびポリシーを適用し、Red Hat Advanced Cluster Management for Kubernetes ポリシーフレームワークを使用します。ポリシーコントローラーは Kubernetes の CustomResourceDefinition (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 機能をサポートし、以下のポリシーのコンプライアンスを監視します。

設定ポリシーの remediationActionenforce に設定されている場合には、コントローラーはターゲットのマネージドクラスターで複製ポリシーを作成します。

2.3.1.1. 設定ポリシーコントローラーの YAML 構成

Name:         configuration-policy-example
Namespace:
Labels:
APIVersion:   policy.open-cluster-management.io/v1
Kind:         ConfigPolicy
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: ConfigPolicy
metadata:
  name: policy-config
spec:
  namespaceSelector:
    include: ["default"]
    exclude: []
  remediationAction: inform
    severity: low
    object-templates:
    - complianceType: musthave
      objectDefinition:
        apiVersion: v1
        kind: Pod
        metadata:
          name: nginx-pod
        spec:
          containers:
          - image: nginx:1.7.9
            name: nginx
            ports:
           - containerPort: 80

2.3.1.3. 設定ポリシーの YAML の表

表2.1 パラメーターの表
フィールド説明

apiVersion

必須。この値は policy.open-cluster-management.io/v1 に設定します。

kind

必須。ポリシーのタイプを指定するには、値を ConfigPolicy に設定します。

metadata.name

必須。ポリシーの名前。

spec

必須。監視する設定ポリシーと設定ポリシーの修正方法に関する仕様。

spec.namespaceSelector

必須。ポリシーの適用先のハブクラスター内にある namespace。include パラメーターに、ポリシーを適用する namespace を最低でも 1 つ入力します。exclude パラメーターでは、ポリシーを明示的に適用しない namespace を指定します。

spec.remediationAction

必須。ポリシーの修正を指定します。inform と入力します。

remediationAction.severity

必須。ポリシーがコンプライアンス違反の場合に重大度を指定します。パラメーター値 lowmedium、または high を使用します。

remediationAction.complianceType

必須。マネージドクラスターに評価または適用する必要のあるロールおよび他の Kubernetes オブジェクトの予想される動作をリストするために使用されます。以下の動詞をパラメーター値として使用する必要があります。

mustonlyhave: 正確な名前と関連フィールドを持つオブジェクトが存在する必要があることを示します。

musthave: 指定された object-template と同じ名前を持つオブジェクトが存在することを示します。テンプレートの他のフィールドは、オブジェクトに存在するもののサブセットです。

mustnothave: 仕様またはルールに関係なく、同じ名前またはラベルを持つオブジェクトは存在できず、削除する必要があることを示します。

ハブクラスターでポリシーを適用する方法を説明します。詳細は、「 ポリシーサンプル 」を参照してください。ポリシーを作成してカスタマイズする方法は、「セキュリティーポリシーの管理」を参照してください。

コントローラーの詳細は、「 ポリシーコントローラー 」を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.