创建自定义基线版本

v2.5.4 开始支持

概述

每个基线版本都定义了一组测试配置文件,这些文件定义了 CIS 测试要由kube-bench工具运行。

rancher-cis-benchmark应用程序安装了一些默认的 Benchmark 版本,这些版本列在 CIS Benchmark 应用程序菜单下。

但可能有一些 Kubernetes 集群设置需要自定义配置 Benchmark 测试。例如,Kubernetes 配置文件或证书的路径可能与上游 CIS Benchmarks 寻找它们的标准位置不同。

现在可以使用rancher-cis-benchmark应用程序创建一个自定义的 Benchmark 版本来运行集群扫描。

当集群扫描运行时,你需要选择一个指向特定 Benchmark 版本的 Profile。

按照下面的所有步骤添加一个自定义的 Benchmark 版本,并使用它来运行扫描。

1. 准备自定义基线版本所需的 Configmap

要创建一个自定义基线版本,首先你需要创建一个包含基线版本配置文件的 ConfigMap,并将其上传到你要运行扫描的 Kubernetes 集群。

假设我们要添加一个名为foo的自定义基线版本:

  1. 创建一个名为foo的目录,在这个目录里面,放置kube-bench工具寻找的所有配置 YAML 文件。例如,这里是通用 CIS 1.5 基线版的配置 YAML 文件https://github.com/aquasecurity/kube-bench/tree/master/cfg/cis-1.5

  2. 放置完整的config.yaml文件,其中包括所有应该测试的组件。

  3. 将 Benchmark 版本名称添加到config.yamltarget_mapping部分。

    1. target_mapping:
    2. "foo":
    3. - "master"
    4. - "node"
    5. - "controlplane"
    6. - "etcd"
    7. - "policies"

    Copy

  4. 通过创建一个 ConfigMap 将这个目录上传到你的 Kubernetes Cluster。

    1. kubectl create configmap -n <namespace> foo --from-file=<path to directory foo>

    Copy

2. 将自定义基线版本添加到集群中

  1. 在您的集群中创建了 ConfigMap 后,请导航到 Rancher UI 中的Cluster Explorer
  2. 在左上角的下拉菜单中,单击Cluster Explorer > CIS Benchmark
  3. Benchmark Versions部分,单击Create
  4. 为您的自定义基线版本输入Name和描述。
  5. 选择您的基线版本所适用的集群提供商。
  6. 从下拉菜单中选择您上传的 ConfigMap。
  7. 添加适用的最小和最大 Kubernetes 版本限制(可选)。
  8. 单击Create

3. 为自定义基线版本创建一个新的配置文件

要使用您的自定义基线版本运行扫描,您需要添加一个指向此基线版本的新 Profile。

  1. 一旦在您的集群中创建了自定义基线版本,请导航到 Rancher UI 中的 Cluster Explorer
  2. 在左上角的下拉菜单中,单击Cluster Explorer > CIS Benchmark
  3. Profiles部分,单击Create
  4. 提供一个名称和描述。在本例中,我们将其命名为foo-profile
  5. 从下拉菜单中选择基线版本foo
  6. 单击Create,创建一个新的配置文件。

4. 使用自定义基线版本运行扫描

您可以创建一个新的 Scan 来运行基线版本中的自定义测试配置。

  1. 进入 Rancher UI 中的Cluster Explorer。在左上角下拉菜单中,单击Cluster Explorer >CIS Benchmark
  2. Scans部分,单击Create
  3. 选择新的集群扫描配置文件foo-profile
  4. 单击Create

结果

生成包含扫描结果的报告,请单击出现的报告名称查看结果。