6.6. 执行高级自定义 File Integrity Operator 任务


6.6.1. 重新初始化数据库

如果 File Integrity Operator 检测到计划进行的更改,则可能需要重新初始化数据库。

流程

  • 使用 file-integrity.openshift.io/re-init 注解 FileIntegrity 自定义资源(CR):

    $ oc annotate fileintegrities/worker-fileintegrity file-integrity.openshift.io/re-init=

    旧的数据库和日志文件已备份,新的数据库被初始化。旧的数据库和日志保留在 /etc/kubernetes 下的节点上,参见使用 oc debug 生成的 Pod 中的以下输出:

    输出示例

     ls -lR /host/etc/kubernetes/aide.*
    -rw-------. 1 root root 1839782 Sep 17 15:08 /host/etc/kubernetes/aide.db.gz
    -rw-------. 1 root root 1839783 Sep 17 14:30 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_38
    -rw-------. 1 root root   73728 Sep 17 15:07 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_55
    -rw-r--r--. 1 root root       0 Sep 17 15:08 /host/etc/kubernetes/aide.log
    -rw-------. 1 root root     613 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_38
    -rw-r--r--. 1 root root       0 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_55

    为了提供一些永久记录,生成的配置映射不归 FileIntegrity 所有,因此需要手动清理。因此,任何之前的完整性失败仍在 FileIntegrityNodeStatus 对象中可见。

6.6.2. 机器配置集成

在 OpenShift Container Platform 4 中,集群节点配置通过 MachineConfig 对象提供。您可以假定因 MachineConfig 对象导致的对文件进行的更改是预期行为,不应该导致文件完整性扫描失败。为禁止由于 MachineConfig 对象更新导致对文件进行更改,File Integrity Operator 会监视节点对象;在更新节点期间,会暂停 AIDE 扫描。更新完成后,数据库会重新初始化并恢复扫描。

此暂停和恢复逻辑只适用于通过 MachineConfig API 进行的更新,因为它们反映在节点对象注解中。

6.6.3. 探索守护进程集

每个 FileIntegrity 对象代表多个节点上的扫描。扫描本身由守护进程集管理的 Pod 执行。

要查找代表 FileIntegrity 对象的守护进程集,请运行:

$ oc -n openshift-file-integrity get ds/aide-worker-fileintegrity

要列出该守护进程集中的 Pod,请运行:

$ oc -n openshift-file-integrity get pods -lapp=aide-worker-fileintegrity

要查看单个 AIDE Pod 的日志,调用其中一个 Pod 上的 oc logs

$ oc -n openshift-file-integrity logs pod/aide-worker-fileintegrity-mr8x6

输出示例

Starting the AIDE runner daemon
initializing AIDE db
initialization finished
running aide check
...

由 AIDE 守护进程创建的配置映射不会保留,在 File Integrity Operator 处理后会被删除。但是,如果失败和出错,这些配置映射的内容会被复制到 FileIntegrityNodeStatus 对象指向的配置映射中。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.