5.5. Compliance Operator の管理
5.5.1. Compliance Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Compliance Operator を使用する前に、これがクラスターにデプロイされていることを確認する必要があります。
この Operator を適切に機能させるには、すべてのクラスターノードのリリースバージョンが同じである必要があります。たとえば、RHCOS を実行しているノードの場合、すべてのノードの RHCOS バージョンが同じである必要があります。
Compliance Operator は、OpenShift Dedicated、Red Hat OpenShift Service on AWS Classic、Azure Red Hat OpenShift などのマネージドプラットフォームで誤った結果を報告する場合があります。詳細は、ナレッジベースの記事 Compliance Operator reports incorrect results on Managed Services を参照してください。
Compliance Operator をデプロイする前に、raw の結果出力を保存するためにクラスター内に永続ストレージを定義する必要があります。詳細は、永続ストレージの概要 および デフォルトのストレージクラスの管理 を参照してください。
5.5.1.1. Web コンソールを使用した Compliance Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
前提条件
-
admin権限がある。 -
StorageClassリソースが設定されている。
手順
-
OpenShift Container Platform Web コンソールで、Ecosystem
Software Catalog に移動します。 - Compliance Operator を検索し、Install をクリックします。
-
Installation mode および namespace のデフォルトの選択を維持し、Operator が
openshift-compliancenamespace にインストールされていることを確認します。 - Install をクリックします。
検証
インストールが正常に行われたことを確認するには、以下を実行します。
-
Ecosystem
Installed Operators ページに移動します。 -
Compliance Operator が
openshift-compliancenamespace にインストールされ、そのステータスがSucceededであることを確認します。
Operator が正常にインストールされていない場合、以下を実行します。
-
Ecosystem
Installed Operators ページに移動し、 Status列でエラーまたは失敗の有無を確認します。 -
Workloads
Pods ページに移動し、 openshift-complianceプロジェクトの Pod で問題を報告しているログの有無を確認します。
restricted な Security Context Constraints (SCC) が system:authenticated グループを含むように変更されているか、requiredDropCapabilities を追加している場合、権限の問題により Compliance Operator が正しく機能しない可能性があります。
Compliance Operator スキャナー Pod サービスアカウント用のカスタム SCC を作成できます。詳細は Compliance Operator のカスタム SCC の作成 を参照してください。
5.5.1.2. CLI を使用した Compliance Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
前提条件
-
admin権限がある。 -
StorageClassリソースが設定されている。
手順
Namespaceオブジェクトを定義します。namespace-object.yamlの例apiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" pod-security.kubernetes.io/enforce: privileged1 name: openshift-compliance- 1
- OpenShift Container Platform 4.20 では、Pod セキュリティーラベルを namespace レベルで
privilegedに設定する必要があります。
Namespaceオブジェクトを作成します。$ oc create -f namespace-object.yamlOperatorGroupオブジェクトを定義します。operator-group-object.yamlの例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: compliance-operator namespace: openshift-compliance spec: targetNamespaces: - openshift-complianceOperatorGroupオブジェクトを作成します。$ oc create -f operator-group-object.yamlSubscriptionオブジェクトを定義します。subscription-object.yamlの例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: compliance-operator-sub namespace: openshift-compliance spec: channel: "stable" installPlanApproval: Automatic name: compliance-operator source: redhat-operators sourceNamespace: openshift-marketplaceSubscriptionオブジェクトを作成します。$ oc create -f subscription-object.yaml
グローバルスケジューラー機能を設定し、defaultNodeSelector を有効にする場合は、namespace を手動で作成し、openshift-compliance namespace または Compliance Operator がインストールされている namespace のアノテーションを openshift.io/node-selector: “” で更新する必要があります。これにより、デフォルトのノードセレクターが削除され、デプロイメントの失敗を防ぐことができます。
検証
CSV ファイルを確認して、インストールが正常に完了したことを確認します。
$ oc get csv -n openshift-complianceCompliance Operator が稼働していることを確認します。
$ oc get deploy -n openshift-compliance
5.5.1.3. ROSA Hosted Control Plane (HCP) への Compliance Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
1.5.0 リリース以降の Compliance Operator は、Hosted Control Plane を使用する Red Hat OpenShift Service on AWS に対してテストされています。
Red Hat OpenShift Service on AWS Hosted Control Plane クラスターでは、コントロールプレーンへのアクセスが制限されています。コントロールプレーンは Red Hat によって管理されます。デフォルトでは、Compliance Operator は master ノードプール内のノードをスケジュールの対象とします。このプールは Red Hat OpenShift Service on AWS Hosted Control Plane のインストールでは使用できません。そのため、Operator が利用可能なノードプールでスケジュールできるように、Subscription オブジェクトを設定する必要があります。この手順は、Red Hat OpenShift Service on AWS Hosted Control Plane クラスターへのインストールを正常に行うために必要です。
前提条件
-
admin権限がある。 -
StorageClassリソースが設定されている。
手順
Namespaceオブジェクトを定義します。namespace-object.yamlファイルの例apiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" pod-security.kubernetes.io/enforce: privileged1 name: openshift-compliance- 1
- OpenShift Container Platform 4.20 では、Pod セキュリティーラベルを namespace レベルで
privilegedに設定する必要があります。
次のコマンドを実行して、
Namespaceオブジェクトを作成します。$ oc create -f namespace-object.yamlOperatorGroupオブジェクトを定義します。operator-group-object.yamlファイルの例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: compliance-operator namespace: openshift-compliance spec: targetNamespaces: - openshift-compliance以下のコマンドを実行して
OperatorGroupオブジェクトを作成します。$ oc create -f operator-group-object.yamlSubscriptionオブジェクトを定義します。subscription-object.yamlファイルの例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: compliance-operator-sub namespace: openshift-compliance spec: channel: "stable" installPlanApproval: Automatic name: compliance-operator source: redhat-operators sourceNamespace: openshift-marketplace config: nodeSelector: node-role.kubernetes.io/worker: ""1 - 1
- Operator デプロイメントを更新して、
workerノードにデプロイします。
以下のコマンドを実行して
Subscriptionオブジェクトを作成します。$ oc create -f subscription-object.yaml
検証
次のコマンドを実行してクラスターサービスバージョン (CSV) ファイルを調べ、インストールが成功したことを確認します。
$ oc get csv -n openshift-compliance次のコマンドを使用して、Compliance Operator が起動して実行されていることを確認します。
$ oc get deploy -n openshift-compliance
restricted な Security Context Constraints (SCC) が system:authenticated グループを含むように変更されているか、requiredDropCapabilities を追加している場合、権限の問題により Compliance Operator が正しく機能しない可能性があります。
Compliance Operator スキャナー Pod サービスアカウント用のカスタム SCC を作成できます。詳細は Compliance Operator のカスタム SCC の作成 を参照してください。
5.5.1.4. Hypershift Hosted Control Plane への Compliance Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Subscription ファイルを作成することで、ソフトウェアカタログを使用して Compliance Operator を Hosted Control Plane にインストールできます。
Hosted Control Plane は、テクノロジープレビュー機能としてのみ利用できます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
-
admin権限がある。
手順
以下のような
Namespaceオブジェクトを定義します。namespace-object.yamlの例apiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" pod-security.kubernetes.io/enforce: privileged1 name: openshift-compliance- 1
- OpenShift Container Platform 4.20 では、Pod セキュリティーラベルを namespace レベルで
privilegedに設定する必要があります。
次のコマンドを実行して、
Namespaceオブジェクトを作成します。$ oc create -f namespace-object.yamlOperatorGroupオブジェクトを定義します。operator-group-object.yamlの例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: compliance-operator namespace: openshift-compliance spec: targetNamespaces: - openshift-compliance以下のコマンドを実行して
OperatorGroupオブジェクトを作成します。$ oc create -f operator-group-object.yamlSubscriptionオブジェクトを定義します。subscription-object.yamlの例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: compliance-operator-sub namespace: openshift-compliance spec: channel: "stable" installPlanApproval: Automatic name: compliance-operator source: redhat-operators sourceNamespace: openshift-marketplace config: nodeSelector: node-role.kubernetes.io/worker: "" env: - name: PLATFORM value: "HyperShift"以下のコマンドを実行して
Subscriptionオブジェクトを作成します。$ oc create -f subscription-object.yaml
検証
以下のコマンドを実行して CSV ファイルを検査し、インストールが正常に完了したことを確認します。
$ oc get csv -n openshift-compliance次のコマンドを実行して、Compliance Operator が稼働していることを確認します。
$ oc get deploy -n openshift-compliance