$ oc explain fileintegrity.spec
与任何 Kubernetes 自定义资源 (CR) 一样,您可以运行 oc explain fileintegrity
,然后使用以下命令查看各个属性:
$ oc explain fileintegrity.spec
$ oc explain fileintegrity.spec.config
属性 | 描述 |
---|---|
|
必须与节点标签匹配的关键值对映射,以便 AIDE Pod 才能在该节点上调度。典型用法是仅设置一个键值对,其中 |
|
一个布尔属性。如果设置为 |
|
指定容忍度,以便在具有自定义污点的节点上进行调度。如果未指定,则会应用默认容忍度,该容忍度允许在控制平面节点上运行。 |
|
AIDE 完整性检查之间暂停的秒数。在节点上频繁进行 AIDE 检查可能会占用大量资源,因此指定更长的间隔时间可能很有用。默认为 |
|
在 |
|
包含自定义 AIDE 配置的 ConfigMap 的名称。如果省略,则会创建默认配置。 |
|
包含自定义 AIDE 配置的 ConfigMap 的命名空间。如果未设置,则 FIO 将生成适合 RHCOS 系统的默认配置。 |
|
在由 |
|
开始第一次 AIDE 完整性检查之前等待的秒数。默认为 0。此属性是可选的。 |
默认文件完整性操作员配置存储在与FileIntegrity
CR 同名的 ConfigMap 中。
要检查默认配置,请运行
$ oc describe cm/worker-fileintegrity
以下是 ConfigMap 的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
一些 OpenShift Container Platform 特定的/etc/
下的排除项
配置 AIDE 内部行为的任何条目(例如DBDIR
、LOGDIR
、database
和database_out
)都将被操作员覆盖。操作员将在所有要监视完整性更改的路径之前添加前缀/hostroot/
。这使得更容易重用现有的 AIDE 配置,这些配置通常可能并非针对容器化环境量身定制,并且从根目录开始。
|
此示例侧重于为在控制平面节点上运行的扫描仪定义自定义配置,该扫描仪基于为worker-fileintegrity
CR 提供的默认配置。如果您计划部署作为守护进程集运行并在控制平面节点上的/opt/mydaemon
下存储其数据的自定义软件,此工作流程可能很有用。
复制默认配置。
使用必须监视或排除的文件编辑默认配置。
将编辑后的内容存储在新 ConfigMap 中。
通过spec.config
中的属性将FileIntegrity
对象指向新的 ConfigMap。
提取默认配置
$ oc extract cm/worker-fileintegrity --keys=aide.conf
这将创建一个名为aide.conf
的文件,您可以对其进行编辑。为了说明操作员如何后处理路径,此示例添加了一个没有前缀的排除目录
$ 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
基于此文件创建一个 ConfigMap
$ oc create cm master-aide-conf --from-file=aide.conf
定义引用 ConfigMap 的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
操作员处理提供的 ConfigMap 文件,并将结果存储在与FileIntegrity
对象同名的 ConfigMap 中
$ oc describe cm/master-fileintegrity | grep /opt/mydaemon
!/hostroot/opt/mydaemon