2.8. セキュリティーポリシーの管理
指定したセキュリティー標準、カテゴリー、および制御に基づいてクラスターのコンプライアンスを報告および検証するためのセキュリティーポリシーを作成します。
以下のセクションを参照してください。
2.8.1. セキュリティーポリシーの作成
コマンドラインインターフェイス (CLI) またはコンソールからセキュリティーポリシーを作成できます。
必要なアクセス権限: クラスターの管理者
重要: ポリシーを特定のクラスターに適用するには、配置および配置バインディングを定義する必要があります。Cluster selector フィールドに値を入力して、Placement
と PlacementBinding
を定義します。
有効な式については、Kubernetes ドキュメントの セットベースの要件をサポートするリソース を参照してください。Red Hat Advanced Cluster Management for Kubernetes ポリシーに必要なオブジェクトの定義を表示します。
- PlacementBinding: プレースメントをバインドします。
ポリシー YAML ファイルに関する詳細は、ポリシーの概要 を参照してください。
2.8.1.1. コマンドラインインターフェイスからのセキュリティーポリシーの作成
コマンドラインインターフェイス (CLI) からポリシーを作成するには、以下の手順を実行します。
以下のコマンドを実行してポリシーを作成します。
oc create -f policy.yaml -n <policy-namespace>
ポリシーが使用するテンプレートを定義します。YAML ファイルを編集し、
policy-templates
フィールドを追加してテンプレートを定義します。ポリシーは以下の YAML ファイルのようになります。apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: policy1 spec: remediationAction: "enforce" # or inform disabled: false # or true namespaceSelector: include: - "default" - "my-namespace" policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: operator # namespace: # will be supplied by the controller via the namespaceSelector spec: remediationAction: "inform" object-templates: - complianceType: "musthave" # at this level, it means the role must exist and must have the following rules apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: example objectDefinition: rules: - complianceType: "musthave" # at this level, it means if the role exists the rule is a musthave apiGroups: ["extensions", "apps"] resources: ["deployments"] verbs: ["get", "list", "watch", "create", "delete","patch"]
PlacementBinding
を定義して、ポリシーをPlacementRule
(非推奨) をバインドします。PlacementBinding
は以下の YAML の例のようになります。apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding1 placementRef: name: placement1 apiGroup: apps.open-cluster-management.io kind: PlacementRule subjects: - name: policy1 apiGroup: policy.open-cluster-management.io kind: Policy
2.8.1.1.1. CLI からのセキュリティーポリシーの表示
以下の手順を実行して、CLI からセキュリティーポリシーを表示します。
以下のコマンドを実行して、特定のセキュリティーポリシーの詳細を表示します。
oc get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace> -o yaml
以下のコマンドを実行して、セキュリティーポリシーの詳細を表示します。
oc describe policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
2.8.1.2. コンソールからのクラスターセキュリティーポリシーの作成
Red Hat Advanced Cluster Management にログインしたら、Governance ページに移動し、Create policy をクリックします。コンソールから新規ポリシーを作成すると、YAML エディターで YAML ファイルも作成されます。YAML エディターを表示するには、Create policy フォームの最初にトグルを選択して有効にします。
Create policy フォームに入力し、Submit ボタンを選択します。YAML ファイルは以下のポリシーのようになります。
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: policy-pod annotations: policy.open-cluster-management.io/categories: 'SystemAndCommunicationsProtections,SystemAndInformationIntegrity' policy.open-cluster-management.io/controls: 'control example' policy.open-cluster-management.io/standards: 'NIST,HIPAA' policy.open-cluster-management.io/description: spec: complianceType: musthave namespaces: exclude: ["kube*"] include: ["default"] pruneObjectBehavior: None object-templates: - complianceType: musthave objectDefinition: apiVersion: v1 kind: Pod metadata: name: pod1 spec: containers: - name: pod-name image: 'pod-image' ports: - containerPort: 80 remediationAction: enforce disabled: false
次の
PlacementBinding
の例を参照してください。apiVersion: apps.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-pod placementRef: name: placement-pod kind: PlacementRule apiGroup: apps.open-cluster-management.io subjects: - name: policy-pod kind: Policy apiGroup: policy.open-cluster-management.io
以下の
PlacementRule
の例を参照してください。apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-pod spec: clusterConditions: [] clusterSelector: matchLabels: cloud: "IBM"
- オプション: ポリシーの説明を追加します。
- Create Policy をクリックします。コンソールからセキュリティーポリシーが作成されました。
2.8.1.2.1. コンソールからのセキュリティーポリシーの表示
コンソールからセキュリティーポリシーとステータスを表示します。
- Governance ページに移動し、ポリシー表の一覧を表示します。注記: ポリシー表の一覧をフィルタリングするには、Policies タブまたは Cluster violations タブを選択します。
-
詳細を表示するポリシーを 1 つ選択します。Details、Clusters、および Templates タブが表示されます。クラスターまたはポリシーのステータスを判断できない場合は、
No status
メッセージが表示されます。 - または、Policies タブを選択してポリシーのリストを表示します。ポリシーの行をデプロイメントすると、Description、Standards、Controls、および Categories の詳細が表示されます。
2.8.1.3. CLI からのポリシーセットの作成
デフォルトでは、ポリシーまたは配置のないポリシーセットが作成されます。ポリシーセットの配置を作成し、クラスターに存在するポリシーを 1 つ以上設定する必要があります。ポリシーセットを作成する場合は、多くのポリシーを追加できます。
以下のコマンドを実行して CLI からポリシーセットを作成します。
oc apply -f <policyset-filename>
2.8.1.4. コンソールからのポリシーセットの作成
- ナビゲーションメニューから Govern を選択します。
- Policy sets タブを選択します。
- Create policy set ボタンを選択し、フォームを完了します。
- ポリシーセットの詳細を追加し、送信 ボタンを選択します。
-
安定した
Policysets
を表示します。これには、デプロイメントに Policy Generator が必要です (PolicySets--Stable)。
2.8.2. セキュリティーポリシーの更新
セキュリティーポリシーを更新する方法を学びます。
2.8.2.1. CLI からのポリシーセットへのポリシーの追加
次のコマンドを実行して、ポリシーセットを編集します。
oc edit policysets <your-policyset-name>
-
ポリシーセットの
policies
セクションのリストにポリシー名を追加します。 - 次のコマンドを使用して、追加したポリシーをポリシーセットの配置セクションに適用します。
oc apply -f <your-added-policy.yaml>
PlacementBinding
と PlacementRule
の両方が作成されます。
注記: 配置バインディングを削除すると、ポリシーはポリシーセットによって配置されます。
2.8.2.2. コンソールからのポリシーセットへのポリシーの追加
- Policy sets タブを選択して、ポリシーセットにポリシーを追加します。
- Actions アイコンを選択し、Edit を選択します。Edit policy set フォームが表示されます。
- フォームの Policies セクションに移動し、ポリシーセットに追加するポリシーを選択します。
2.8.2.3. セキュリティーポリシーの無効化
デフォルトでは、ポリシーは有効です。コンソールからポリシーを無効にします。
Red Hat Advanced Cluster Management for Kubernetes コンソールにログインしたら、Governance ページに移動し、ポリシー表のリストを表示します。
Actions アイコン > Disable policy の順に選択します。Disable Policy ダイアログボックスが表示されます。
Disable policy をクリックします。ポリシーが無効化されました。
2.8.3. セキュリティーポリシーの削除
CLI またはコンソールからセキュリティーポリシーを削除します。
CLI からセキュリティーポリシーを削除します。
以下のコマンドを実行してセキュリティーポリシーを削除します。
oc delete policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
ポリシーを削除すると、ターゲットクラスターから削除されます。
oc get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
コマンドを実行して、ポリシーが削除されたことを確認します。
コンソールからセキュリティーポリシーを削除します。
ナビゲーションメニューから Governance をクリックし、ポリシー表のリストを表示します。ポリシー違反表で、削除するポリシーの Actions アイコンをクリックします。
Remove をクリックします。Remove policy ダイアログボックスから、Remove policy をクリックします。
2.8.3.1. コンソールからのポリシーセットの削除
- Policy sets タブから、ポリシーセットの Actions アイコンを選択します。Delete をクリックすると、Permanently delete Policyset? ダイアログボックスが表示されます。
- Delete ボタンをクリックします。
他のポリシーの管理については、セキュリティーポリシーの管理 を参照してください。ポリシーに関する他のトピックは、ガバナンス を参照してください。
2.8.4. ポリシーによって作成されたリソースのクリーンアップ
ポリシーによって作成されたリソースをクリーンアップするには、設定ポリシーで pruneObjectBehavior
パラメーターを使用します。pruneObjectBehavior
が設定されていると、関連するオブジェクトは、関連する設定ポリシー (または親ポリシー) が削除された後にのみクリーンアップされます。
パラメーターに使用できる値は、次の説明を参照してください。
-
DeleteIfCreated
: ポリシーによって作成されたすべてのリソースをクリーンアップします。 -
DeleteAll
: ポリシーによって管理されるすべてのリソースをクリーンアップします。 -
None
: これはデフォルト値であり、関連するリソースが削除されない以前のリリースと同じ動作を維持します。
コマンドラインからポリシーを作成するときに、YAML ファイルに値を直接設定できます。
コンソールから、Policy templates ステップの Prune Object Behavior セクションで値を選択できます。
注記:
-
Operator をインストールするポリシーに
pruneObjectBehavior
パラメーターが定義されている場合は、Operator のアンインストールを完了するのに追加のクリーンアップが必要です。このクリーンアップの一環として、Operator のClusterServiceVersion
オブジェクトを削除する必要がある場合があります。 -
マネージドクラスターで
config-policy-addon
リソースを無効にすると、pruneObjbectBehavior
は無視されます。ポリシーの関連リソースを自動的にクリーンアップするには、アドオンを無効にする前に、マネージドクラスターからポリシーを削除する必要があります。
2.8.5. 設定ポリシーの管理
設定ポリシーの作成、適用、表示、および更新を説明します。
必要なアクセス権限: 管理者およびクラスター管理者
2.8.5.1. 設定ポリシーの作成
設定ポリシーの YAML ファイルは、コマンドラインインターフェイス (CLI) またはコンソールから作成できます。
既存の Kubernetes マニフェストがある場合は、ポリシージェネレーターを使用して、ポリシーにマニフェストを自動的に含めることを検討してください。ポリシージェネレーター ドキュメントを参照してください。設定ポリシーの作成は、以下のセクションを参照してください。
2.8.5.1.1. CLI からの設定ポリシーの作成
CLI から設定ポリシーを作成するには、以下の手順を実行します。
設定ポリシーの YAML ファイルを作成します。以下のコマンドを実行します。
oc create -f configpolicy-1.yaml
設定ポリシーは以下のようになります。
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: policy-1 namespace: my-policies policy-templates: - apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: mustonlyhave-configuration spec: namespaceSelector: include: ["default"] exclude: ["kube-system"] remediationAction: inform disabled: false complianceType: mustonlyhave object-templates:
以下のコマンドを実行してポリシーを適用します。
oc apply -f <policy-file-name> --namespace=<namespace>
以下のコマンドを実行してポリシーのリストを確認します。
oc get policies.policy.open-cluster-management.io --namespace=<namespace>
設定ポリシーが作成されました。
2.8.5.1.2. CLI からの設定ポリシーの表示
CLI から設定ポリシーを表示するには、以下の手順を実行します。
以下のコマンドを実行して、特定の設定ポリシーの詳細を表示します。
oc get policies.policy.open-cluster-management.io <policy-name> -n <namespace> -o yaml
以下のコマンドを実行して、設定ポリシーの詳細を表示します。
oc describe policies.policy.open-cluster-management.io <name> -n <namespace>
2.8.5.1.3. コンソールからの設定ポリシーの作成
コンソールから設定ポリシーを作成すると、YAML エディターで YAML ファイルも作成されます。
- コンソールからクラスターにログインし、ナビゲーションメニューから Governance を選択します。
- Create policy をクリックします。仕様パラメーターの設定ポリシーのいずれかを選択して、作成するポリシーを指定します。
ポリシーフォームを完了して、設定ポリシーの作成を続行します。以下のフィールドに適切な値を入力するか、選択します。
- 名前
- Specifications
- Cluster selector
- Remediation action
- Standards
- Categories
- Controls
- Create をクリックします。設定ポリシーが作成されました。
2.8.5.1.4. コンソールからの設定ポリシーの表示
コンソールから設定ポリシーおよびそのステータスを表示します。
コンソールからクラスターにログインしたら、Governance を選択してポリシー表の一覧を表示します。注記: ポリシー表の一覧をフィルタリングするには、All policies タブまたは Cluster violations タブを選択します。
詳細を表示するポリシーを 1 つ選択します。Details、Clusters、および Templates タブが表示されます。
2.8.5.2. 設定ポリシーの更新
設定ポリシーの更新については、以下のセクションを参照してください。
2.8.5.2.1. 設定ポリシーの無効化
設定ポリシーを無効にします。前述の説明と同様に、ログインして ガバナンス ページに移動し、タスクを完了します。
- 表リストから設定ポリシーの Actions アイコンを選択し、Disable をクリックします。Disable Policy ダイアログボックスが表示されます。
- Disable policy をクリックします。
ポリシーは無効になっていますが、削除されていません。
2.8.5.3. 設定ポリシーの削除
CLI またはコンソールから設定ポリシーを削除します。
次の手順で、CLI から設定ポリシーを削除します。
次のコマンドを実行して、1 つまたは複数のターゲットクラスターからポリシーを削除します。
oc delete policies.policy.open-cluster-management.io <policy-name> -n <namespace>
- 以下のコマンドを実行して、ポリシーが削除されていることを確認します。
oc get policies.policy.open-cluster-management.io <policy-name> -n <namespace>
次の手順で、コンソールから設定ポリシーを削除します。
- ナビゲーションメニューから Governance をクリックし、ポリシー表のリストを表示します。
- ポリシー違反テーブルで削除するポリシーの Actions アイコンをクリックし、Remove をクリックします。
- Remove policy ダイアログボックスから、Remove policy をクリックします。
ポリシーが削除されました。
2.8.5.4. 関連情報
- CM-Configuration-Management フォルダーから Red Hat Advanced Cluster Management でサポート対象の設定ポリシーのサンプルを参照してください。
- または、サンプル設定ポリシーの表 を参照して、コントローラーによってモニターされる他の設定ポリシーを確認することもできます。他のポリシーの管理は、セキュリティーポリシーの管理 を参照してください。
2.8.6. gatekeeper Operator ポリシーの管理
Gatekeeper Operator ポリシーを使用して、Gatekeeper Operator と Gatekeeper をマネージドクラスターにインストールします。次のセクションでは、Gatekeeper Operator ポリシーの作成、表示、および更新を説明します。
必要なアクセス権限: クラスターの管理者
2.8.6.1. Gatekeeper Operator ポリシーを使用した Gatekeeper のインストール
ガバナンスフレームワークを使用して Gatekeeper Operator をインストールします。Gatekeeper Operator は OpenShift Container Platform カタログで利用できます。詳細は、OpenShift Container Platform ドキュメント の Operator のクラスターへの追加 を参照してください。
設定ポリシーコントローラーを使用して Gatekeeper Operator ポリシーをインストールします。インストール時に、Operator グループおよびサブスクリプションは Gatekeeper Operator をプルし、これをマネージドクラスターにインストールします。次に、Gatekeeper Operator は Gatekeeper custom resource を作成して Gatekeeper を設定します。Gatekeeper Operator のカスタムリソース のサンプルを表示します。
Gatekeeper Operator ポリシーは、Red Hat Advanced Cluster Management 設定ポリシーコントローラーによって監視されます。ここでは、enforce
修復アクションがサポートされます。Gatekeeper Operator ポリシーは、enforce
に設定するとコントローラーが自動的に作成します。
2.8.6.2. コンソールからの gatekeeper ポリシーの作成
コンソールから gatekeeper ポリシーを作成して、インストールします。あるいは、Additional resources セクションに移動してサンプル YAML を参照し、policy-gatekeeper-operator.yaml
をデプロイします。
クラスターにログインしたら、Governance ページに移動します。
Create policy を選択します。フォームを完了したら、Specifications フィールドから Gatekeeper Operator を選択します。ポリシーのパラメーター値が自動的に設定され、ポリシーはデフォルトで inform
に設定されます。Gatekeeper をインストールするには、修復アクションを enforce
に設定します。
注記: デフォルト値は Operator によって生成されます。
2.8.6.2.1. Gatekeeper operator のカスタムリソース
apiVersion: operator.gatekeeper.sh/v1alpha1 kind: Gatekeeper metadata: name: gatekeeper spec: audit: replicas: 1 logLevel: DEBUG auditInterval: 10s constraintViolationLimit: 55 auditFromCache: Enabled auditChunkSize: 66 emitAuditEvents: Enabled resources: limits: cpu: 500m memory: 150Mi requests: cpu: 500m memory: 130Mi validatingWebhook: Enabled webhook: replicas: 2 logLevel: ERROR emitAdmissionEvents: Enabled failurePolicy: Fail resources: limits: cpu: 480m memory: 140Mi requests: cpu: 400m memory: 120Mi nodeSelector: region: "EMEA" affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: auditKey: "auditValue" topologyKey: topology.kubernetes.io/zone tolerations: - key: "Example" operator: "Exists" effect: "NoSchedule" podAnnotations: some-annotation: "this is a test" other-annotation: "another test"
2.8.6.3. gatekeeper および gatekeeper Operator のアップグレード
Gatekeeper および Gatekeeper Operator のバージョンをアップグレードできます。Gatekeeper Operator を Gatekeeper Operator ポリシーを使用してインストールする場合は、installPlanApproval
の値に注意してください。installPlanApproval
が Automatic
に設定されていると、Operator が自動的にアップグレードされます。
installPlanApproval
が Manual
に設定されている場合は、各クラスターの Gatekeeper Operator のアップグレードを手動で承認する必要があります。
2.8.6.4. Gatekeeper Operator ポリシーの更新
次のセクションを参照して、Gatekeeper Operator ポリシーを更新する方法を確認してください。
2.8.6.4.1. コンソールからの gatekeeper Operator ポリシーの表示
コンソールから gatekeeper Operator ポリシーおよびそのステータスを表示します。
コンソールからクラスターにログインしたら、Governance をクリックし、ポリシー表の一覧を表示します。注記: ポリシー表の一覧をフィルタリングするには、Policies タブまたは Cluster violations タブを選択します。
詳細を表示するには、policy-gatekeeper-operator
ポリシーを選択します。Clusters タブを選択して、ポリシー違反を表示します。
2.8.6.4.2. Gatekeeper Operator ポリシーの無効化
Gatekeeper Operator ポリシーを無効にします。
Red Hat Advanced Cluster Management for Kubernetes コンソールにログインしたら、Governance ページに移動し、ポリシー表のリストを表示します。
policy-gatekeeper-operator
ポリシーの Actions アイコンを選択し、Disable をクリックします。Disable Policy ダイアログボックスが表示されます。
Disable policy をクリックします。policy-gatekeeper-operator
ポリシーが無効になりました。
2.8.6.5. Gatekeeper Operator ポリシーの削除
CLI またはコンソールから Gatekeeper Operator ポリシーを削除します。
CLI から Gatekeeper Operator ポリシーを削除します。
以下のコマンドを実行し、Gatekeeper Operator ポリシーを削除します。
oc delete policies.policy.open-cluster-management.io <policy-gatekeeper-operator-name> -n <namespace>
ポリシーを削除すると、ターゲットクラスターから削除されます。
以下のコマンドを実行して、ポリシーが削除されていることを確認します。
oc get policies.policy.open-cluster-management.io <policy-gatekeeper-operator-name> -n <namespace>
コンソールから Gatekeeper Operator ポリシーを削除します。
Governance ページに移動し、ポリシー表の一覧を表示します。
前のコンソールの手順と同様に、
policy-gatekeeper-operator
ポリシーの Actions アイコンをクリックします。Remove をクリックしてポリシーを削除します。Remove policy ダイアログボックスから、Remove policy をクリックします。
Gatekeeper Operator ポリシーが削除されました。
2.8.6.6. Gatekeeper ポリシー、Gatekeeper、および Gatekeeper Operator ポリシーのアンインストール
Gatekeeper ポリシー、Gatekeeper、および Gatekeeper Operator ポリシーをアンインストールするには、以下の手順を実行します。
マネージドクラスターに適用される Gatekeeper
Constraint
およびConstraintTemplate
を削除します。-
Gatekeeper Operator ポリシーを編集します。Gatekeeper
Constraint
およびConstraintTemplate
の作成に使用したConfigurationPolicy
テンプレートを見つけます。 -
ConfigurationPolicy
テンプレートのcomplianceType
の値をmustnothave
に変更します。 - ポリシーを保存して適用します。
-
Gatekeeper Operator ポリシーを編集します。Gatekeeper
マネージドクラスターから Gatekeeper インスタンスを削除します。
-
Gatekeeper Operator ポリシーを編集します。Gatekeeper カスタムリソースの作成に使用した
ConfigurationPolicy
テンプレートを見つけます。 -
ConfigurationPolicy
テンプレートのcomplianceType
の値をmustnothave
に変更します。
-
Gatekeeper Operator ポリシーを編集します。Gatekeeper カスタムリソースの作成に使用した
マネージドクラスターにある Gatekeeper Operator を削除します。
-
Gatekeeper Operator ポリシーを編集します。サブスクリプション CR の作成に使用した
ConfigurationPolicy
テンプレートを見つけます。 -
ConfigurationPolicy
テンプレートのcomplianceType
の値をmustnothave
に変更します。
-
Gatekeeper Operator ポリシーを編集します。サブスクリプション CR の作成に使用した
Gatekeeper ポリシー、Gatekeeper、および Gatekeeper Operator ポリシーはアンインストールされました。
2.8.6.7. 関連情報
- Gatekeeper の詳細は、Gatekeeper 制約および制約テンプレートの統合 を参照してください。
- Policy Gatekeeper の例を参照してください。
- Gatekeeper Operator ポリシーに使用できるオプションのパラメーターの説明は、Gatekeeper Helm Chart を参照してください。
- サードパーティーポリシーと製品の統合に関する詳細は、サードパーティーポリシーコントローラーの統合 を参照してください。
2.8.7. 非接続環境での Operator ポリシーの管理
インターネットに接続していない (切断状態の) Red Hat OpenShift Container Platform クラスターへの Red Hat Advanced Cluster Management for Kubernetes ポリシーのデプロイが必要になる場合があります。デプロイメントするポリシーを使用して、Operator Lifecycle Manager Operator をインストールするポリシーをデプロイメントする場合は、Operator カタログのミラーリング の手順に従う必要があります。
Operator イメージへのアクセスを検証するには、次の手順を実行します。
ポリシーで使用するために必要なパッケージが利用可能であることを検証するには、必要なパッケージが利用可能であることの確認 を参照してください。次のポリシーがデプロイされているマネージドクラスターで使用される各イメージレジストリーの可用性を検証する必要があります。
-
container-security-operator
-
非推奨:
gatekeeper-operator-product
-
compliance-operator
-
ソースが利用可能であることを検証するには、イメージコンテンツソースポリシーの設定 を参照してください。イメージコンテンツソースポリシーは、切断されたマネージドクラスターのそれぞれに存在する必要があり、プロセスを簡素化するためにポリシーを使用してデプロイできます。次のイメージソースの場所の表を参照してください。
ガバナンスポリシーの種類 イメージソースの場所 コンテナーのセキュリティー
registry.redhat.io/quay
コンプライアンス
registry.redhat.io/compliance
ゲートキーパー
registry.redhat.io/rhacm2
2.8.8. ポリシーセットを使用した Red Hat OpenShift Platform Plus のインストール
Red Hat Openshift Platform Plus ポリシーセットを適用するためのガイダンスについては、引き続きお読みください。Red Hat OpenShift ポリシーセットを適用すると、Red Hat Advanced Cluster Security で保護されたクラスターサービスと Compliance Operator がすべての OpenShift Container Platform マネージドクラスターにデプロイされます。
2.8.8.1. 前提条件
ポリシーセットを適用する前に、次の手順を完了してください。
サブスクリプションをクラスターに適用できるようにするには、
policy-configure-subscription-admin-hub.yaml
ポリシーを適用し、修復アクションをenforce
に設定する必要があります。次の YAML をコピーして、コンソールの YAML エディターに貼り付けます。apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: policy-configure-subscription-admin-hub annotations: policy.open-cluster-management.io/standards: NIST SP 800-53 policy.open-cluster-management.io/categories: CM Configuration Management policy.open-cluster-management.io/controls: CM-2 Baseline Configuration spec: remediationAction: inform disabled: false policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: policy-configure-subscription-admin-hub spec: remediationAction: inform severity: low object-templates: - complianceType: musthave objectDefinition: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: open-cluster-management:subscription-admin rules: - apiGroups: - app.k8s.io resources: - applications verbs: - '*' - apiGroups: - apps.open-cluster-management.io resources: - '*' verbs: - '*' - apiGroups: - "" resources: - configmaps - secrets - namespaces verbs: - '*' - complianceType: musthave objectDefinition: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: open-cluster-management:subscription-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: open-cluster-management:subscription-admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: kube:admin - apiGroup: rbac.authorization.k8s.io kind: User name: system:admin --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-policy-configure-subscription-admin-hub placementRef: name: placement-policy-configure-subscription-admin-hub kind: PlacementRule apiGroup: apps.open-cluster-management.io subjects: - name: policy-configure-subscription-admin-hub kind: Policy apiGroup: policy.open-cluster-management.io --- apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-policy-configure-subscription-admin-hub spec: clusterConditions: - status: "True" type: ManagedClusterConditionAvailable clusterSelector: matchExpressions: - {key: name, operator: In, values: ["local-cluster"]}
コマンドラインインターフェイスから以前の YAML を適用するには、以下のコマンドを実行します。
oc apply -f policy-configure-subscription-admin-hub.yaml
- Policy Generator kustomize プラグインをインストールします。Kustomize v4.5 以降を使用してください。Operator をインストールするためのポリシーの生成 を参照してください。
ポリシーは
policies
namespace にインストールされます。その namespace をClusterSet
にバインドする必要があります。たとえば、以下のサンプル YAML をコピーして適用し、namespace をデフォルトのClusterSet
にバインドします。apiVersion: cluster.open-cluster-management.io/v1beta2 kind: ManagedClusterSetBinding metadata: name: default namespace: policies spec: clusterSet: default
次のコマンドを実行して、コマンドラインインターフェイスから
ManagedClusterSetBinding
リソースを適用します。oc apply -f managed-cluster.yaml
前提条件を満たしたら、ポリシーセットを適用できます。
2.8.8.2. Red Hat OpenShift Platform Plus ポリシーセットの適用
-
Red Hat OpenShift Plus の前提条件設定が含まれている
openshift-plus/policyGenerator.yaml
ファイルを使用します。openshift-plus/policyGenerator.yaml
を参照してください。 Kustomize
コマンドを使用して、ポリシーをハブクラスターに適用します。kustomize build --enable-alpha-plugins | oc apply -f -
注記: インストールしたくない OpenShift Platform Plus のコンポーネントについては、
policyGenerator.yaml
ファイルを編集し、それらのコンポーネントのポリシーを削除またはコメントアウトします。
2.8.8.3. 関連情報
- ポリシーセットの概要は、Red Hat OpenShift Platform Plus policy set を参照してください。
- トピックの最初の ポリシーセットを使用した Red Hat OpenShift Platform Plus のインストール に戻ります。