在里面本系列的第一部分,我讨论了红帽的合规操作员用于固定OpenShift 4.x群集。我快速概述了安装,然后浏览了如何启动合规性扫描并查看高级结果。我还通过应用操作员随附的所有自动补救措施来展示合规操作员的力量。
在本节中,我将从扫描中提取结果,并以HTML格式生成一个不错的OpenSCAP评估报告,以及对于需要手动修复的其余项目的简单任务列表。
如果您记得我的第一篇文章,我会对我的工人和主节点以及OpenShift容器平台本身进行扫描。我展示了如何在操作员的“合规”选项卡中看到这些扫描的结果。
这些扫描的结果存储在持续的体积声明(PVC)中,每种扫描类型之一。如果您转到控制台的OpenShift-Compliance项目,您会发现它已分配了三个PVC:
您可以通过运行此命令从CLI中看到同一件事:
$ oc获取PVC -N openshift遵守
我想从这些PVC中提取扫描生成的文件,为此,我将创建一个吊舱并安装这些卷。
Red Hat OpenShift文档具有一个简单的YAML文件,可用于创建此POD并安装卷。这就是YAML的样子:
请注意,您可以将所有三卷都安装在这个单个吊舱上。但是,如果您的PVC在云环境中处于不同的可用性区域,则可能会遇到此问题,因此,对于本教程,我只需安装工人节点的结果即可。
我将此文件保存为pv-extract.yaml,然后运行此openshift cli命令以创建pod:
$ oc create -f pv -extract.yaml
给POD创建时间,然后您应该能够将结果从音量复制到本地计算机。在这样做之前,我首先在堡垒主机上创建了一个小目录结构,以容纳所有结果。我制作了一个名为Scan-Results的目录,该目录由大师,工人和OCP的子目录。然后,我运行了此命令:
$ oc CP PV-IXTRACT:/Workers-Scan-can-Results ./scan-results/worker/
在我复制结果之后,在进行进一步之前,请务必删除该POD,否则,下一次扫描将无法使用:
$ oc删除POD PV-提取
现在,在该下载的目录中,您会看到从POD复制了一个或多个子目录。这些是顺序编号的,从0开始。在我的情况下,有三个:
$ LS -L
总计0
drwxr-xr-x。2 EC2-用户EC2-用户224 APR 14 18:05 0
drwxr-xr-x。2 EC2-用户EC2-用户224 APR 14 18:05 1
drwxr-xr-x。2 EC2-用户EC2-用户259 APR 14 18:15 2
如果您还记得的话,默认的扫描配置包含CRON样式条目,每天运行扫描。每个扫描结果都包含在一个单独的目录中。另外,当我手动启动扫描时,它也创建了一个单独的目录。
让我们使用数字2目录,因为在我应用了所有自动补救措施后,它包含了我的扫描结果。您会看到,在我的情况下,此目录包含三个Bzip'd文件:
$ LS
rhCos4-My-Menter-worker-ip-10-0-0-1.ec2.internal-pod.xml.bzip2
rhcos4-monteres-worker-ip-10-0-0-2.ec2.internal-pod.xml.bzip2
rhcos4-menteres-worker-ip-10-0-0-0-3.ec2.internal-pod.xml.bzip2
扫描的三个工人节点中的每一个都有一个文件。
我想将这些文件转换为OpenSCAP报告,为此,我首先需要安装OpenSCAP。我正在使用的机器是堡垒主机是RHEL8机器,以下步骤为此。您可能必须为操作系统版本调整这些步骤。另外,我将以root运行这两个命令(或者您可以使用sudo):
#curl -l -l http://copr.fedoraproject.org/coprs/openscapmaint/openscap-latest/repo/repo/epel- \ 8/openscapmaint-openscapmaint-openscap-latest-epel-8.repo \ repo \ repo \ \ \ \ \ \ \ \
-o /etc/yum.repos.d/openscapmaint-openscap-latest-epel-8.repo
#yum安装 - y openscap openscap-utils scap-security guide - skip-broken
现在,我已经安装了OpenScap,我将使用其中一个Worker Node BZIP2文件,并使用此命令生成HTML格式的报告:
美元
就我的示例而言,这就是命令的样子:
$ OSCAP XCCDF生成报告RHCOS4-M-MINDERATE-WORKER-IP-10-0-0-0-1.EC2.EC2.INTERNE-POD.XML.BZIP2> \ wrores-ip-10-0-0-0-0-1.html
生成该报告后,我可以在网络浏览器中查看它,并看到我的格式非常好,并提供了很多有用的细节。
这是该报告的样子的一些片段:
您还将看到您可以通过单击它来钻入每个发现:
请记住,您需要为每个卷(Worker,Master,OCP)和每个BZIP2文件运行此功能。它超出了此博客的范围,但是很明显,这种类型的练习,您将在其中一再运行类似的步骤可以很好地适合某些自动化(例如Ansible)和/或Gitops。
我想在这篇文章中展示的最后一件事是构建其余项目任务列表的简单方法。请记住,在进行扫描后,我运行了此命令以查看高级结果:
$ oc获取compriancecheckresult
它提供了所有检查及其状态的列表(通过,失败等…)。
**注意,这只是一个抽样。完整的发现列表更长。
您可以将此命令的输出格式更改为YAML或JSON,然后将其输出到文件中以获取所有详细信息。例如:
$ oc获取compriancecheckresult -o yaml> checkresult.yaml
您可以将此文件转换为CSV或将其导入到简单数据库中,具体取决于您的喜好。我喜欢使用一个在线转换网站,例如http://onlineyamltools.com将其转换为CSV,然后我可以在电子表格中进行操纵。
在下一个博客中,我将讨论用于修复未包含自动修复程序的发现的选项。
参考: