6.4. カスタム File Integrity Operator の設定
6.4.1. FileIntegrity オブジェクト属性の表示
Kubernetes カスタムリソース (CR) の場合と同様に、oc explain fileintegrity
を実行してから、以下を使用して個別の属性を参照できます。
$ oc explain fileintegrity.spec
$ oc explain fileintegrity.spec.config
6.4.2. 重要な属性
属性 | 説明 |
---|---|
|
AIDE Pod が該当ノードでスケジュール対象にするために使用する、ノードのラベルと一致する必要があるキーと値のペアのマップ。通常は、 |
|
ブール値の属性。 |
| カスタムテイントを持つノードにスケジュールする容認を指定します。指定されない場合は、デフォルトの容認 (Toleration) が適用され、これにより容認はコントロールプレーンノード (別名マスターノード) で実行できます。 |
|
AIDE 整合性チェックの間に一時停止する秒数。ノード上で AIDE チェックを頻繁に実行すると、多くのリソースが消費する可能性があるため、間隔をより長く指定することができます。デフォルトは |
|
ノードで保持する |
| カスタム AIDE 設定を含む configMap の名前。省略した場合、デフォルトの設定が作成されます。 |
| カスタム AIDE 設定を含む configMap の namespace。設定されていない場合、FIO は RHCOS システムに適したデフォルト設定を生成します。 |
|
|
6.4.3. デフォルト設定の確認
デフォルトの File Integrity Operator 設定は、 FileIntegrity
CR と同じ名前で設定マップに保存されます。
手順
デフォルトの設定を確認するには、以下を実行します。
$ oc describe cm/worker-fileintegrity
6.4.4. デフォルトの File Integrity Operator 設定について
以下は、設定マップの aide.conf
キーの抜粋です。
@@define DBDIR /hostroot/etc/kubernetes @@define LOGDIR /hostroot/etc/kubernetes database=file:@@{DBDIR}/aide.db.gz database_out=file:@@{DBDIR}/aide.db.gz gzip_dbout=yes verbose=5 report_url=file:@@{LOGDIR}/aide.log report_url=stdout PERMS = p+u+g+acl+selinux+xattrs CONTENT_EX = sha512+ftype+p+u+g+n+acl+selinux+xattrs /hostroot/boot/ CONTENT_EX /hostroot/root/\..* PERMS /hostroot/root/ CONTENT_EX
FileIntegrity
インスタンスのデフォルト設定は、以下のディレクトリー下にあるファイルの範囲を指定します。
-
/root
-
/boot
-
/usr
-
/etc
以下のディレクトリーは対象外です。
-
/var
-
/opt
-
/etc/
下の一部の OpenShift 固有の除外対象
6.4.5. カスタム AIDE 設定の指定
DBDIR
、LOGDIR
、database
、および database_out
などの AIDE 内部動作を設定するエントリーは Operator によって上書きされます。Operator は、整合性に関する変更の有無についてすべてのパスを監視できるよう接頭辞を /hostroot/
に追加します。これにより、コンテナー化された環境用にカスタマイズされない既存の AIDE 設定を再使用や、ルートディレクトリーからの開始がより容易になります。
/hostroot
は、AIDE を実行する Pod がホストのファイルシステムをマウントするディレクトリーです。設定を変更すると、データベースの再初期化がトリガーされます。
6.4.6. カスタム File Integrity Operator 設定の定義
この例では、worker-fileintegrity
CR に提供されるデフォルト設定に基づいてコントロールプレーンノード (別名マスターノード) で実行されるスキャナーのカスタム設定を定義することに重点を置いています。このワークフローは、デーモンセットとして実行されているカスタムソフトウェアをデプロイし、そのデータをコントロールプレーンノードの /opt/mydaemon
の下に保存する場合に役立ちます。
手順
- デフォルト設定のコピーを作成します。
- デフォルト設定を、監視するか、除外する必要があるファイルで編集します。
- 編集したコンテンツを新たな設定マップに保存します。
-
spec.config
の属性を使用して、FileIntegrity
オブジェクトを新規の設定マップにポイントします。 デフォルト設定を抽出します。
$ oc extract cm/worker-fileintegrity --keys=aide.conf
これにより、編集可能な
aide.conf
という名前のファイルが作成されます。この例では、Operator のパスの後処理方法を説明するために、接頭辞なしで除外ディレクトリーを追加します。$ vim aide.conf
出力例
/hostroot/etc/kubernetes/static-pod-resources !/hostroot/etc/kubernetes/aide.* !/hostroot/etc/kubernetes/manifests !/hostroot/etc/docker/certs.d !/hostroot/etc/selinux/targeted !/hostroot/etc/openvswitch/conf.db
コントロールプレーンノードに固有のパスを除外します。
!/opt/mydaemon/
その他のコンテンツを
/etc
に保存します。/hostroot/etc/ CONTENT_EX
このファイルに基づいて設定マップを作成します。
$ oc create cm master-aide-conf --from-file=aide.conf
設定マップを参照する
FileIntegrity
CR マニフェストを定義します。apiVersion: fileintegrity.openshift.io/v1alpha1 kind: FileIntegrity metadata: name: master-fileintegrity namespace: openshift-file-integrity spec: nodeSelector: node-role.kubernetes.io/master: "" config: name: master-aide-conf namespace: openshift-file-integrity
Operator は指定された設定マップファイルを処理し、結果を
FileIntegrity
オブジェクトと同じ名前の設定マップに保存します。$ oc describe cm/master-fileintegrity | grep /opt/mydaemon
出力例
!/hostroot/opt/mydaemon
6.4.7. カスタムのファイル整合性設定の変更
ファイル整合性の設定を変更するには、生成される設定マップを変更しないでください。その代わりに、spec.name
、namespace
、および key
属性を使用して FileIntegrity
オブジェクトにリンクされる設定マップを変更します。