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 機能をサポートし、以下のポリシーのコンプライアンスを監視します。

設定ポリシーの remediationActionenforce に設定されている場合、コントローラーはターゲットのマネージドクラスターで複製ポリシーを作成します。設定ポリシーでテンプレートを使用することもできます。詳細は、設定ポリシーでのテンプレートのサポート を参照してください。

設定ポリシーコントローラーについては、以下を参照してください。

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:
Copy to Clipboard Toggle word wrap

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
  evaluationInterval:
    compliant:
    noncompliant:
Copy to Clipboard Toggle word wrap

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

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

apiVersion

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

kind

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

metadata.name

必須。ポリシーの名前。

spec

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

spec.namespace

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

spec.remediationAction

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

spec.remediationAction.severity

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

spec.remediationAction.complianceType

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

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

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

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

spec.evaluationInterval.compliant

任意。ポリシーが準拠状態にあるときに評価される頻度を定義するために使用されます。値は期間の形式に指定する必要があります。これは、時間単位接尾辞が付いた数字のシーケンスになります。たとえば、12h30m5s は 12 時間、30 分、および 5 秒を表します。ポリシー spec が更新されない限り、ポリシーが準拠クラスターで再評価されないように、never に設定することもできます。

spec.evaluationInterval.noncompliant

任意。ポリシーがコンプライアンス違反の状態にあるときに評価される頻度を定義するために使用します。evaluationInterval.compliant パラメーターと同様に、値は時間単位接尾辞が付いた数値のシーケンスにある期間の形式である必要があります。ポリシー spec が更新されない限り、ポリシーがコンプライアンス違反のクラスターで再評価されないように、never に設定することもできます。

NIST Special Publication 800-53 (Rev. 4) を使用するポリシーサンプルおよび、CM-Configuration-Management フォルダー の Red Hat Advanced Cluster Management がサポートするポリシーサンプルを参照してください。ポリシーがハブクラスターにどのように適用されるかについては、サポート対象のポリシー 参照してください。

ポリシーを作成してカスタマイズする方法は、セキュリティーポリシーの管理 を参照してください。コントローラーの詳細は、ポリシーコントローラー を参照してください。

2.3.2. 証明書ポリシーコントローラー

証明書ポリシーコントローラーは、有効期限が近い証明書、期間 (時間) が長すぎる証明書や、指定のパターンに一致しない DNS 名が含まれている証明書の検出に使用できます。

証明書ポリシーコントローラーを設定してカスタマイズするには、コントローラーポリシーの以下のパラメーターを更新します。

  • minimumDuration
  • minimumCADuration
  • maximumDuration
  • maximumCADuration
  • allowedSANPattern
  • disallowedSANPattern

以下のシナリオのいずれかの場合は、ポリシーがコンプライアンス違反になる可能性があります。

  • 証明書が、最小期間で指定されている期間以内、または最大期間で指定されている期間を超えて失効する場合
  • DNS 名が指定のパターンと一致しない場合

証明書ポリシーコントローラーは、マネージドクラスターに作成されます。このコントローラーは、ローカルの Kubernetes API サーバーと通信して、証明書が含まれるシークレット一覧を取得して、コンプライアンス違反の証明書をすべて判別します。CRD の詳細は、Extend the Kubernetes API with CustomResourceDefinitions を参照してください。

証明書ポリシーコントローラーには、enforce 機能のサポートがありません。

2.3.2.1. 証明書ポリシーコントローラーの YAML 設定

以下の証明書ポリシーの例を見て、YAML 表の要素を確認します。

apiVersion: policy.open-cluster-management.io/v1
kind: CertificatePolicy
metadata:
  name: certificate-policy-example
  namespace:
  labels: category=system-and-information-integrity
spec:
  namespaceSelector:
    include: ["default"]
  remediationAction:
  severity:
  minimumDuration:
  minimumCADuration:
  maximumDuration:
  maximumCADuration:
  allowedSANPattern:
  disallowedSANPattern:
Copy to Clipboard Toggle word wrap
2.3.2.1.1. 証明書ポリシーコントローラーの YAML の表
Expand
表2.2 パラメーターの表
フィールド説明

apiVersion

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

kind

必須。この値を CertificatePolicy に設定してポリシーの種類を指定します。

metadata.name

必須。ポリシーを識別するための名前。

metadata.namespace

必須。ポリシーが作成されるマネージドクラスター内の namespace。

metadata.labels

任意。証明書ポリシーでは、category=system-and-information-integrity ラベルでポリシーを分類して、証明書ポリシーをスムーズにクエリーできるようにします。証明書ポリシーの category キーに別の値が指定されていると、この値は証明書コントローラーにより上書きされます。

spec

必須。監視および更新する証明書の仕様。

spec.namespaceSelector

必須。ポリシーを適用するマネージドクラスターの namespace。Include および Exclude のパラメーター値を入力します。注記:

複数の証明書ポリシーを作成してそのポリシーを同じマネージドクラスターに適用する場合、各ポリシーの namespaceSelector には別の値を割り当てる必要があります。

• 証明書ポリシーコントローラーの namespaceSelector がどの namespace にも一致しない場合は、ポリシーが準拠しているとみなされます。

spec.remediationAction

必須。ポリシーの修正を指定します。このパラメーター値に inform を設定します。証明書ポリシーコントローラーがサポートするのは inform 機能のみです。

spec.severity

任意。ポリシーがコンプライアンス違反の場合に重大度をユーザーに通知します。パラメーター値 lowmedium、または high を使用します。

spec.minimumDuration

必須。値の指定がない場合、デフォルト値は 100h になります。このパラメーターで、証明書がコンプライアンス違反とみなされるまでの最小期間 (時間) を指定します。パラメーター値は Golang の期間形式を使用します。詳細は Golang Parse Duration を参照してください。

spec.minimumCADuration

任意。値を設定して、他の証明書とは異なる値で、まもなく有効期限が切れる可能性がある署名証明書を特定します。パラメーターの値が指定されていないと、CA 証明書の有効期限は minimumDuration で使用した値になります。詳細は Golang Parse Duration を参照してください。

spec.maximumDuration

任意。値を設定して、任意の制限期間を超えて作成された証明書を特定します。パラメーターは Golang の期間形式を使用します。詳細は Golang Parse Duration を参照してください。

spec.maximumCADuration

任意。値を設定して、定義した制限期間を超えて作成された署名証明書を特定します。パラメーターは Golang の期間形式を使用します。詳細は Golang Parse Duration を参照してください。

spec.allowedSANPattern

任意。証明書に定義した全 SAN エントリーと一致する必要がある正規表現。このパラメーターを使用して、パターンと DNS 名を照合します。詳細は Golang Regular Expression syntax を参照してください。

spec.disallowedSANPattern

任意。証明書で定義した SAN エントリーと一致してはいけない正規表現。このパラメーターは、パターンと DNS 名を確認します。
注記: ワイルドカード証明書を検出するには以下の SAN パターンを使用します。disallowededSANPattern: "[\\*]"

詳細は Golang Regular Expression syntax を参照してください。

2.3.2.2. 証明書ポリシーの例

証明書ポリシーコントローラーがハブクラスターに作成されると、複製ポリシーがマネージドクラスターに作成されます。証明書ポリシーのサンプルを確認するには、policy-certificate.yaml を参照してください。

証明書ポリシーの管理方法の詳細は、セキュリティーポリシーの管理 を参照してください。他のトピックについては、ポリシーコントローラー を参照してください。

2.3.3. IAM ポリシーコントローラー

IAM (ID and Access Management) ポリシーコントローラーを使用して、コンプライアンス違反の IAM ポリシーに関する通知を受信できます。IAM ポリシーで設定したパラメーターを基に、コンプライアンスチェックが行われます。

IAM ポリシーコントローラーは、クラスター内で特定のクラスターロール (ClusterRole) を割り当てたユーザーの必要な最大数を監視します。監視するデフォルトのクラスターロールは cluster-admin です。IAM ポリシーコントローラーは、ローカルの Kubernetes API サーバーと通信します。詳細は、Extend the Kubernetes API with CustomResourceDefinitions を参照してください。

IAM ポリシーコントローラーはマネージドクラスターで実行されます。詳細は、以下のセクションを参照してください。

2.3.3.1. IAM ポリシー YAML の設定

以下の IAM ポリシーの例を見て、YAML 表のパラメーターを確認します。

apiVersion: policy.open-cluster-management.io/v1
kind: IamPolicy
metadata:
  name:
spec:
  clusterRole:
  severity:
  remediationAction:
  maxClusterRoleBindingUsers:
  ignoreClusterRoleBindings:
Copy to Clipboard Toggle word wrap

2.3.3.2. IAM ポリシー YAML の表

以下のパラメーター表で説明を確認してください。

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

apiVersion

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

kind

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

metadata.name

必須。ポリシーリソースを識別する名前。

spec

必須。ポリシーの設定詳細を追加します。

spec.clusterRole

任意。監視するクラスターロール (ClusterRole)指定されていない場合は、cluster-admin にデフォルト設定されます。

spec.severity

任意。ポリシーがコンプライアンス違反の場合に重大度をユーザーに通知します。パラメーター値 lowmedium、または high を使用します。

spec.remediationAction

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

spec.ignoreClusterRoleBindings

任意。無視するクラスターのロールバインディング名を指定する正規表現 (regex) 値の一覧。これらの正規表現の値は、Go regexp 構文 に従う必要があります。デフォルトでは、名前が system: で始まるすべてのクラスターロールバインディングは無視されます。これをより厳格な値に設定することが推奨されます。クラスターのロールバインディング名を無視するには、一覧を単一の値 .^ か、または一致しない他の正規表現に設定します。

spec.maxClusterRoleBindingUsers

必須。ポリシーが違反しているとみなされるまでに利用可能な IAM rolebinding の最大数。

2.3.3.3. IAM ポリシーの例

IAM ポリシーのサンプルを確認するには、policy-limitclusteradmin.yaml を参照してください。詳細は、セキュリティーポリシーの管理 を参照してください。

他のトピックについては、ポリシーコントローラー を参照してください。

2.3.4. ポリシーセットコントローラー

ポリシーセットコントローラーは、同じ namespace で定義されるポリシーにスコープ指定されたポリシーのステータスを集約します。ポリシーセット (PolicySet) を作成して、同じ namespace にあるポリシーをグループ化します。PolicySet のすべてのポリシーは、PolicySet および Placement をバインドする PlacementBinding を作成して、選択したクラスターに配置されます。ポリシーセットがハブクラスターにデプロイされています。

また、ポリシーが複数のポリシーセットの一部である場合、既存および新規 Placement リソースはポリシーに残ります。ユーザーがポリシーセットからポリシーを削除すると、ポリシーはポリシーセットで選択したクラスターには適用されませんが、配置は残ります。ポリシーセットコントローラーは、ポリシーセット配置を含むクラスターの違反のみを確認します。

注意: Red Hat Advanced Cluster Management の強化サンプルポリシーセットは、クラスター配置を使用します。クラスター配置を使用する場合は、ポリシーを含む namespace をマネージドクラスターセットにバインドします。クラスター配置の使用の詳細については、クラスターへのポリシーのデプロイ を参照してください。

以下のセクションでは、ポリシーセットの設定について説明します。

2.3.4.1. ポリシーセット YAML の設定

ポリシーセットは、以下の YAML ファイルのようになります。

apiVersion: policy.open-cluster-management.io/v1beta1
kind: PolicySet
metadata:
  name: demo-policyset
spec:
  policies:
  - policy-demo

---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
  name: demo-policyset-pb
placementRef:
  apiGroup: apps.open-cluster-management.io
  kind: PlacementRule
  name: demo-policyset-pr
subjects:
- apiGroup: policy.open-cluster-management.io
  kind: PolicySet
  name: demo-policyset
---
apiVersion: apps.open-cluster-management.io
kind: PlacementRule
metadata:
  name: demo-policyset-pr
spec:
  clusterConditions:pagewidth:
  - status: "True"
    type: ManagedCLusterConditionAvailable
  clusterSelectors:
    matchExpressions:
      - key: name
        operator: In
        values:
          - local-cluster
Copy to Clipboard Toggle word wrap

2.3.4.2. ポリシーセットの表

以下のパラメーター表で説明を確認してください。

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

apiVersion

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

kind

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

metadata.name

必須。ポリシーリソースを識別する名前。

spec

必須。ポリシーの設定詳細を追加します。

spec.policies

任意。ポリシーセットでグループ化するポリシーの一覧。

2.3.4.3. ポリシーセットの例

apiVersion: policy.open-cluster-management.io/v1beta1
kind: PolicySet
metadata:
  name: pci
  namespace: default
spec:
  description: Policies for PCI compliance
  policies:
  - policy-pod
  - policy-namespace
status:
  compliant: NonCompliant
  placement:
  - placementBinding: binding1
    placementRule: placement1
    policySet: policyset-ps
Copy to Clipboard Toggle word wrap

セキュリティーポリシーの管理 トピックの Creating policy sets セクションを参照してください。また、デプロイメント用のポリシージェネレーターである PolicySets-- Stable を必要とする安定したポリシー PolicySets も表示します。ポリシージェネレーター ドキュメントを参照してください。

2.3.5. カスタムポリシーコントローラーの作成 (非推奨)

カスタムポリシーコントローラーの作成、適用、表示、および更新について説明します。ポリシーコントローラーがクラスターにデプロイする YAML ファイルを作成できます。以下のセクションを参照して、ポリシーコントローラーを作成します。

2.3.5.1. ポリシーコントローラーの作成

governance-policy-framework リポジトリーにあるポリシーコントローラーフレームワークを使用します。ポリシーコントローラーを作成するには、以下の手順を完了します。

  1. 以下のコマンドを実行して governance-policy-framework リポジトリーのクローンを作成します。

    git clone git@github.com:stolostron/governance-policy-framework.git
    Copy to Clipboard Toggle word wrap
  2. ポリシースキーマ定義を更新してコントローラーポリシーをカスタマイズします。ポリシーは次のような内容になります。

    metadata:
      name: samplepolicies.policies.open-cluster-management.io
    spec:
      group: policy.open-cluster-management.io
      names:
        kind: SamplePolicy
        listKind: SamplePolicyList
        plural: samplepolicies
        singular: samplepolicy
    Copy to Clipboard Toggle word wrap
  3. SamplePolicy の種類を監視するようにポリシーコントローラーを更新します。以下のコマンドを実行します。

    for file in $(find . -name "*.go" -type f); do  sed -i "" "s/SamplePolicy/g" $file; done
    for file in $(find . -name "*.go" -type f); do  sed -i "" "s/samplepolicy-controller/samplepolicy-controller/g" $file; done
    Copy to Clipboard Toggle word wrap
  4. 以下の手順を実行してポリシーコントローラーを再コンパイルし、実行します。

    1. クラスターにログインします。
    2. ユーザーアイコンを選択し、クライアントの設定 をクリックします。
    3. 設定情報をコマンドラインにコピーアンドペーストし、Enter を押します。
    4. 以下のコマンドを実行してポリシー CRD を適用し、コントローラーを起動します。

      export GO111MODULE=on
      
      kubectl apply -f deploy/crds/policy.open-cluster-management.io_samplepolicies_crd.yaml
      
      export WATCH_NAMESPACE=<cluster_namespace_on_hub>
      
      go run cmd/manager/main.go
      Copy to Clipboard Toggle word wrap

      コントローラーが実行していることを示す以下の出力が表示される場合があります。

      {“level”:”info”,”ts”:1578503280.511274,”logger”:”controller-runtime.manager”,”msg”:”starting metrics server”,”path”:”/metrics”}
      {“level”:”info”,”ts”:1578503281.215883,”logger”:”controller-runtime.controller”,”msg”:”Starting Controller”,”controller”:”samplepolicy-controller”}
      {“level”:”info”,”ts”:1578503281.3203468,”logger”:”controller-runtime.controller”,”msg”:”Starting workers”,”controller”:”samplepolicy-controller”,”worker count”:1}
      Waiting for policies to be available for processing…
      Copy to Clipboard Toggle word wrap
    5. ポリシーを作成し、コントローラーがポリシーを取得し、そのポリシーをクラスターに適用していることを確認します。以下のコマンドを実行します。

      kubectl apply -f deploy/crds/policy.open-cluster-management.io_samplepolicies_crd.yaml
      Copy to Clipboard Toggle word wrap

      ポリシーが適用されると、カスタムコントローラーによってポリシーが監視され、検出されることを示すメッセージが表示されます。メッセージは以下の内容のようになります。

    {"level":"info","ts":1578503685.643426,"logger":"controller_samplepolicy","msg":"Reconciling SamplePolicy","Request.Namespace":"default","Request.Name":"example-samplepolicy"}
    {"level":"info","ts":1578503685.855259,"logger":"controller_samplepolicy","msg":"Reconciling SamplePolicy","Request.Namespace":"default","Request.Name":"example-samplepolicy"}
    Available policies in namespaces:
    namespace = kube-public; policy = example-samplepolicy
    namespace = default; policy = example-samplepolicy
    namespace = kube-node-lease; policy = example-samplepolicy
    Copy to Clipboard Toggle word wrap
  5. 以下のコマンドを実行して、status フィールドでコンプライアンスの詳細を確認します。

    kubectl describe SamplePolicy example-samplepolicy -n default
    Copy to Clipboard Toggle word wrap

    出力は次のような内容になります。

    status:
      compliancyDetails:
        example-samplepolicy:
          cluster-wide:
          - 5 violations detected in namespace `cluster-wide`, there are 0 users violations
            and 5 groups violations
          default:
          - 0 violations detected in namespace `default`, there are 0 users violations
            and 0 groups violations
          kube-node-lease:
          - 0 violations detected in namespace `kube-node-lease`, there are 0 users violations
            and 0 groups violations
          kube-public:
          - 1 violations detected in namespace `kube-public`, there are 0 users violations
            and 1 groups violations
      compliant: NonCompliant
    Copy to Clipboard Toggle word wrap
  6. ポリシールールおよびポリシーロジックを変更して、ポリシーコントローラーの新規ルールを作成します。以下の手順を実行します。

    1. SamplePolicySpec を更新して、YAML ファイルに新規フィールドを追加します。仕様は次のような内容になります。

      spec:
        description: SamplePolicySpec defines the desired state of SamplePolicy
        properties:
          labelSelector:
            additionalProperties:
              type: string
            type: object
          maxClusterRoleBindingGroups:
            type: integer
          maxClusterRoleBindingUsers:
            type: integer
          maxRoleBindingGroupsPerNamespace:
            type: integer
          maxRoleBindingUsersPerNamespace:
            type: integer
      Copy to Clipboard Toggle word wrap
    2. samplepolicy_controller.goSamplePolicySpec 構造を新しいフィールドで更新します。
    3. samplepolicy_controller.go ファイルの PeriodicallyExecSamplePolicies 関数を、ポリシーコントローラーを実行する新しいロジックで更新します。PeriodicallyExecSamplePolicies フィールドの例については、stolostron/multicloud-operators-policy-controller を参照してください。
    4. ポリシーコントローラーを再コンパイルし、実行します。ポリシーコントローラーの作成 を参照してください。

ポリシーコントローラーが機能します。

2.3.5.2. コントローラーのクラスターへのデプロイ

カスタムポリシーコントローラーをクラスターにデプロイし、ポリシーコントローラーと ガバナンス ダッシュボードを統合します。以下の手順を実行します。

  1. 次のコマンドを実行して、ポリシーコントローラーイメージをビルドします。

    make build
    docker build . -f build/Dockerfile -t <username>/multicloud-operators-policy-controller:latest
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを実行して、イメージを選択したリポジトリーにプッシュします。たとえば、以下のコマンドを実行してイメージを Docker Hub にプッシュします。

    docker login
    
    docker push <username>/multicloud-operators-policy-controller
    Copy to Clipboard Toggle word wrap
  3. kubectl を、Red Hat Advanced Cluster Management for Kubernetes が管理するクラスターを参照するように設定します。
  4. Operator マニフェストを置き換えて、ビルトインイメージ名を使用し、ポリシーを監視するように namespace を更新します。namespace はクラスターの namespace である必要があります。マニフェストは次のような内容になります。

    sed -i "" 's|stolostron/multicloud-operators-policy-controller|ycao/multicloud-operators-policy-controller|g' deploy/operator.yaml
    sed -i "" 's|value: default|value: <namespace>|g' deploy/operator.yaml
    Copy to Clipboard Toggle word wrap
  5. 以下のコマンドを実行して RBAC ロールを更新します。

    sed -i "" 's|samplepolicies|testpolicies|g' deploy/cluster_role.yaml
    sed -i "" 's|namespace: default|namespace: <namespace>|g' deploy/cluster_role_binding.yaml
    Copy to Clipboard Toggle word wrap
  6. ポリシーコントローラーをクラスターにデプロイします。

    1. 以下のコマンドを実行して、クラスターのサービスアカウントを設定します。

      kubectl apply -f deploy/service_account.yaml -n <namespace>
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを実行して、Operator の RBAC を設定します。

      kubectl apply -f deploy/role.yaml -n <namespace>
      
      kubectl apply -f deploy/role_binding.yaml -n <namespace>
      Copy to Clipboard Toggle word wrap
    3. ポリシーコントローラーの RBAC を設定します。以下のコマンドを実行します。

      kubectl apply -f deploy/cluster_role.yaml
      kubectl apply -f deploy/cluster_role_binding.yaml
      Copy to Clipboard Toggle word wrap
    4. 以下のコマンドを実行してカスタムリソース定義 (CRD) を設定します。

      kubectl apply -f deploy/crds/policies.open-cluster-management.io_samplepolicies_crd.yaml
      Copy to Clipboard Toggle word wrap
    5. 以下のコマンドを実行して multicloud-operator-policy-controller をデプロイします。

      kubectl apply -f deploy/operator.yaml -n <namespace>
      Copy to Clipboard Toggle word wrap
    6. 以下のコマンドを実行して、コントローラーが機能していることを確認します。

      kubectl get pod -n <namespace>
      Copy to Clipboard Toggle word wrap
  7. コントローラーが監視する policy-template を作成してポリシーコントローラーを統合する必要があります。詳細は、コンソールからのクラスターセキュリティーポリシーの作成 を参照してください。
2.3.5.2.1. コントローラーデプロイメントのスケーリング

ポリシーコントローラーデプロイメントでは削除がサポートされていません。デプロイメントをスケーリングして、デプロイメントが適用される Pod を更新することができます。以下の手順を実行します。

  1. ターゲットのマネージドクラスターにログインします。
  2. カスタムポリシーコントローラーのデプロイメントに移動します。
  3. デプロイメントでスケーリングします。デプロイメントをゼロ Pod にスケーリングすると、ポリシーコントロールのデプロイメントが無効になります。

デプロイメントの詳細は、OpenShift Container Platform デプロイメント を参照してください。

ポリシーコントローラーがクラスターにデプロイされ、クラスターに統合されています。製品のポリシーコントローラーを表示します。詳細は、ポリシーコントローラー を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat