Rancher 可以运行安全扫描,根据互联网安全中心(Center for Internet Security,简称 CIS ) Kubernetes 基准测试中定义的安全最佳实践,来检查已部署 Kubernetes 的是否满足安全标准。

CIS 是一个非营利组织,成立于 2000 年 10 月,其使命是“通过识别,开发,验证,推广和维护最佳实践解决方案来防御网络攻击,并建立和引导社区打造安全可信的网络环境”。该组织的总部位于纽约东格林布什,成员包括大型公司,政府机构和学术机构。

CIS 基准测试是安全配置目标系统的最佳实践。CIS 基准是通过领域专家,技术供应商,公共和私人社区成员以及 CIS 基准开发团队的不懈努力而制定的。

基准提供两种类型的建议:计分和不记分。我们仅运行与“计分建议”相关的测试。

CIS 官方基准文件可通过 CIS 网站获得。用于访问文档的注册表格在。

Rancher 通过使用 Aqua Security 的开源工具 kube-bench 检查集群是否符合 CIS Kubernetes Benchmark 的规定。

关于生成的报告

每次扫描都会生成一个报告。您可以在 Rancher UI 中查看报告,您也可以下载 CSV 格式的报告。

从 Rancher v2.4 开始,该扫描将使用 CIS Benchmark v1.4。基准版本信息将包含在生成的报告中。

基准提供两种类型的建议:计分不记分。在基准中标记为不记分的建议不包括在生成的报告中。

一些测试被指定为“不适用”。由于 Rancher 通过容器的方式启动 RKE 集群,这些测试将不会在任何 CIS 扫描上运行。有关如何审核测试结果以及为何指定某些测试不适用的信息,请参阅 Rancher 的。

该报告包含以下信息:

请参阅集群安全加固指南表格,获取有关哪个版本的 Kubernetes、Benchmark 和 Rancher,与我们的安全加固指南版本相互对应。另请参阅包括 CIS 合规的集群的配置文件的安全强化指南以及有关修复失败测试的相关信息。

安全扫描配置文件

CIS 有两种类型的配置文件:

  • Permissive(宽松): 该配置文件具有一组将被跳过的测试,因为这些测试将在默认的 RKE Kubernetes 集群上失败。除了已跳过的测试列表之外,配置文件也不会运行不适用的测试。
  • Hardened(严格): 除不适用的测试外,此配置文件不会跳过任何测试。

对于每个 CIS 基准版本,Rancher 都附带两种类型的配置文件。这些配置文件是根据集群的类型(例如 RKE),CIS 基准测试版本(例如 CIS 1.4)和配置文件类型(例如 PermissiveHardened)来命名的。例如,完整的个人资料名称为RKE-CIS-1.4-Permissive

为了通过Hardened配置文件,您需要遵循上的步骤,使用加固指南中定义的cluster.yml来配置安全加固的集群。

CIS 基准 v1.4 不适用的测试

先决条件

  • 如果想要对集群运行安全扫描并生成报告,您必须是系统管理员或。

  • Rancher 只能在通过 RKE 创建的集群中执行安全扫描。这些集群包括自定义集群和 Rancher 在云提供商的虚拟机上创建的集群例如 Amazon EC2 或 GCE。您不能通过 Rancher 对导入的集群和托管的 Kubernetes 集群进行安全扫描。

  • 您不能在含有 Windows 节点的集群里运行安全扫描。

  • 您将只能看到您有权访问的集群的 CIS 扫描报告。

运行扫描

  1. 在 Rancher 的集群级别菜单中,单击 工具 > CIS 扫描
  2. 选择一个 CIS 扫描配置文件。

结果: 将会在CIS 扫描页面中生成一份报告。您可以单击报告的名称,查看报告的详细内容。

在任何 RKE 集群上都可以设置定期扫描。

如果您要启用定期扫描,请在创建集群期间或创建集群之后在集群配置中的高级选项里设置。

在现有集群中配置定期扫描的步骤如下:

  1. 转到 Rancher 中的集群视图。
  2. 单击 工具 > CIS 扫描
  3. 单击 添加计划。这将带您到编辑集群页面中的配置 CIS 扫描计划的部分。(您也可以通过转到集群视图来访问此部分,单击省略号 > 编辑,然后转到 高级选项。)
  4. 启用 CIS 扫描字段中,单击
  5. CIS 扫描配置文件中,选择 PermissiveHardened 配置文件。相应的 CIS Benchmark 版本信息包含在配置文件名称中。注意:无论选择了 Permissive 还是 Hardened 配置文件,任何在 ConfigMap 中定义的测试都将被跳过。选择 Permissive 的配置文件时,您应该查看 Rancher 都跳过了哪些测试(RKE 集群默认情况下跳过的测试)以及 Rancher 用户跳过了哪些测试。在 Hardened 测试配置文件中,仅会跳过用户选择跳过的测试。
  6. CIS 扫描间隔(cron)中,输入 以定义对集群进行扫描的频率。
  7. CIS 扫描报告保留数中,输入应保留的过去的报告的数量。

结果: 安全扫描将按计划的时间间隔进行并生成报告。

测试时间表可以通过cluster.yml配置。

跳过测试

您可以定义一组测试,生成下一个报告时,这些测试会被 CIS 扫描跳过。

对于后续的 CIS 扫描(包括手动触发的扫描和定时触发的扫描),将跳过这些测试,并且使用任何扫描配置文件时,都将跳过这些测试。

当为定期集群扫描选择扫描配置文件时,跳过的测试将在集群配置选项中的测试配置文件名称旁边列出。每次单击运行扫描从 Rancher UI 手动触发扫描时,也会显示跳过的测试。Rancher UI 以这种方式告知您,每次扫描将运行和跳过哪些测试。

您可以通过编辑 ConfigMap 资源的方式跳过测试。

  1. 创建一个security-scan命名空间。

  2. 创建一个名为security-scan-cfg配置映射。

  3. 以以下格式在config.json键下输入跳过信息:

    1. {
    2. "skip": {
    3. "rke-cis-1.4": ["1.1.1", "1.2.2"]
    4. }

    在上面的示例中,指定了 CIS 基准测试版本以及该版本要跳过的测试。

结果: 在使用定义的 CIS Benchmark 版本的后续扫描中,将跳过这些测试。

设置告警

Rancher 为集群扫描提供了一组告警。默认情况下,这些告警没有配置任何通知接收者:

  • 手动集群扫描已完成
  • 手动集群扫描失败
  • 定期集群扫描已完成

要为 CIS 扫描结果激活现有告警,

  1. 在 Rancher 的集群视图中,单击工具 > 告警
  2. 转到A set of alerts for cluster scans的部分。
  3. 转到要激活的告警,然后单击省略号 (…) > 激活
  4. 转到告警规则组A set of alerts for cluster scans,然后单击省略号 (…) > 编辑
  5. 向下滚动至告警部分。在接收者字段中,选择要用于发送告警的通知。
  6. 可选:要限制通知的频率,请单击显示高级选项并配置告警的时间间隔。
  7. 单击保存

结果: 当在集群上运行扫描并且满足报警条件时,将触发通知。

要创建新告警,

  1. 转到集群视图,然后单击工具 > CIS 扫描
  2. 单击添加告警
  3. 填写表格。
  4. 输入告警的名称。
  5. 字段中,设置在扫描完成或扫描失败时触发的告警。
  6. 发送字段中,将告警级别设置为严重警告信息
  7. 为告警选择一个通知

结果: 告警已创建并激活。当在集群上运行扫描并且满足报警条件时,将触发通知。

有关告警的更多信息,请参考。

  1. 在 Rancher 的集群级别菜单中,单击工具 > CIS 扫描
  2. 导航到您想要删除的报告。
  3. 单击省略号 (…) > 删除
  4. 单击删除

下载报告

  1. 在 Rancher 的集群视图中,单击工具> CIS 扫描

结果: 下载 CSV 格式的报告。有关各列的更多信息,请参阅有关生成的报告的部分