6.5. カスタム File Integrity Operator の設定

6.5.1. FileIntegrity オブジェクト属性の表示

Kubernetes カスタムリソース (CR) の場合と同様に、oc explain fileintegrity を実行してから、以下を使用して個別の属性を参照できます。

$ oc explain fileintegrity.spec
$ oc explain fileintegrity.spec.config

6.5.2. 重要な属性

表6.1 重要な spec および spec.config 属性

属性説明

spec.nodeSelector

AIDE Pod が該当ノードでスケジュール対象にするために使用する、ノードのラベルと一致する必要があるキーと値のペアのマップ。通常は、node-role.kubernetes.io/worker: "" がすべてのワーカーノードで AIDE をスケジュールし、node.openshift.io/os_id: "rhcos" がすべての Red Hat Enterprise Linux CoreOS (RHCOS) ノードでスケジュールする単一のキーと値のペアのみを設定します。

spec.debug

ブール値の属性。true に設定すると、AIDE デーモンセットの Pod で実行されるデーモンは追加の情報を出力します。

spec.tolerations

カスタムテイントを持つノードにスケジュールする容認を指定します。指定されない場合は、デフォルトの容認 (Toleration) が適用され、これにより容認はコントロールプレーンノードで実行できます。

spec.config.gracePeriod

AIDE 整合性チェックの間に一時停止する秒数。ノード上で AIDE チェックを頻繁に実行すると、多くのリソースが消費する可能性があるため、間隔をより長く指定することができます。デフォルトは 900 (15 分) です。

maxBackups

ノードで保持する re-init 化プロセスから残った AIDE データベースとログのバックアップの最大数。この数を超える古いバックアップは、デーモンによって自動的に削除されます。

spec.config.name

カスタム AIDE 設定を含む configMap の名前。省略した場合、デフォルトの設定が作成されます。

spec.config.namespace

カスタム AIDE 設定を含む configMap の namespace。設定されていない場合、FIO は RHCOS システムに適したデフォルト設定を生成します。

spec.config.key

namenamespace で指定された設定マップに実際の AIDE 設定を含むキー。デフォルト値は aide.conf です。

spec.config.initialDelay

最初の AIDE 整合性チェックを開始するまで待機する秒数。デフォルトは 0 に設定されています。この属性は任意です。

6.5.3. デフォルト設定の確認

デフォルトの File Integrity Operator 設定は、 FileIntegrity CR と同じ名前で設定マップに保存されます。

手順

  • デフォルトの設定を確認するには、以下を実行します。

    $ oc describe cm/worker-fileintegrity

6.5.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 Container Platform 固有の除外対象

6.5.5. カスタム AIDE 設定の指定

DBDIRLOGDIRdatabase、および database_out などの AIDE 内部動作を設定するエントリーは Operator によって上書きされます。Operator は、整合性に関する変更の有無についてすべてのパスを監視できるよう接頭辞を /hostroot/ に追加します。これにより、コンテナー化された環境用にカスタマイズされない既存の AIDE 設定を再使用や、ルートディレクトリーからの開始がより容易になります。

注記

/hostroot は、AIDE を実行する Pod がホストのファイルシステムをマウントするディレクトリーです。設定を変更すると、データベースの再初期化がトリガーされます。

6.5.6. カスタム File Integrity Operator 設定の定義

この例では、worker-fileintegrity CR に提供されるデフォルト設定に基づいてコントロールプレーンノードで実行されるスキャナーのカスタム設定を定義することに重点を置いています。このワークフローは、デーモンセットとして実行されているカスタムソフトウェアをデプロイし、そのデータをコントロールプレーンノードの /opt/mydaemon の下に保存する場合に役立ちます。

手順

  1. デフォルト設定のコピーを作成します。
  2. デフォルト設定を、監視するか、除外する必要があるファイルで編集します。
  3. 編集したコンテンツを新たな設定マップに保存します。
  4. spec.config の属性を使用して、FileIntegrity オブジェクトを新規の設定マップにポイントします。
  5. デフォルト設定を抽出します。

    $ 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
  6. このファイルに基づいて設定マップを作成します。

    $ oc create cm master-aide-conf --from-file=aide.conf
  7. 設定マップを参照する 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.5.7. カスタムのファイル整合性設定の変更

ファイル整合性の設定を変更するには、生成される設定マップを変更しないでください。その代わりに、spec.namenamespace、および key 属性を使用して FileIntegrity オブジェクトにリンクされる設定マップを変更します。