|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
为运行集群扫描创建自定义基准版本
每个基准版本定义了一组测试配置文件,这些文件定义了由 kube-bench工具运行的合规性测试。 `rancher-compliance`应用程序安装了一些默认的基准版本,这些版本在合规性基准应用程序菜单下列出。
但可能存在一些Kubernetes集群设置需要自定义基准测试的配置。例如,Kubernetes配置文件或证书的路径可能与上游CIS基准查找它们的标准位置不同。
但在以下情况下,可能需要自定义配置或补救措施:
-
非标准文件位置:当Kubernetes二进制文件、配置或证书路径偏离上游基准默认值时。
示例:与传统Kubernetes不同,K3s将控制平面组件打包成一个单一的二进制文件。因此,
--anonymous-auth`标志的存在和配置应在K3s的日志中验证(`journalctl),而不是通过`kube-apiserver`进程检查(ps)。 -
替代风险缓解措施:如果一个设置未满足检查,但有一个同样有效的补偿控制并附有理由。或者由于其设计,根本不受检查要求的影响。
示例:默认情况下,K3s 将 API 服务器嵌入到 k3s 进程中。没有API服务器Pod规范文件,因此不需要验证后者的文件权限。
1.准备自定义基准版本ConfigMap
要创建自定义基准版本,首先需要创建一个包含基准版本配置文件的ConfigMap,并将其上传到您希望运行扫描的Kubernetes集群。
为了准备自定义基准版本ConfigMap,假设我们想添加一个名为`foo`的自定义基准版本。
-
创建一个名为`foo`的目录,并在该目录中放置 kube-bench工具查找的所有配置YAML文件。例如,这里是通用CIS 1.5基准版本 https://github.com/aquasecurity/kube-bench/tree/master/cfg/cis-1.5的配置YAML文件。
-
放置完整的`config.yaml`文件,其中包括所有应测试的组件。
-
将基准版本名称添加到
target_mapping部分的config.yaml:target_mapping: "foo": - "master" - "node" - "controlplane" - "etcd" - "policies" -
通过创建 ConfigMap 将此目录上传到您的 Kubernetes 集群:
kubectl create configmap -n <namespace> foo --from-file=<path to directory foo>
2.向集群添加自定义基准版本
-
在左上角,点击 ☰ > 集群管理。
-
在 集群 页面,转到您想要添加自定义基准的集群并点击 探索。
-
在左侧导航栏中,点击 合规性 > 基准版本。
-
单击*创建*。
-
输入 名称 和自定义基准版本的描述。
-
选择适用于您的基准版本的集群提供商。
-
从下拉菜单中选择您上传的 ConfigMap。
-
如果适用,添加最低和最高 Kubernetes 版本限制。
-
单击*创建*。