CIS 扫描
Rancher 可以通过运行安全扫描来检查 Kubernetes 是否按照 CIS Kubernetes Benchmark 中定义的安全最佳实践进行部署。CIS 扫描可以运行在任何 Kubernetes 集群,包括托管的 Kubernetes,例如 EKS、AKS 和 GKE。
rancher-cis-benchmark
应用使用了 kube-bench, ,这是 Aqua Security 的开源工具,用于检查集群是否符合 CIS Kubernetes Benchmark。此外,为了生成集群级别的报告,此应用使用了 Sonobuoy 来聚合报告。
关于 CIS Benchmark
CIS(Center for Internet Security)是一个 501(c)(3) 非营利组织,成立于 2000 年 10 月,其使命是识别、开发、验证、促进和维持网络防御的最佳实践方案,并建立和指导社区,以在网络空间中营造信任的环境。该组织总部位于纽约东格林布什,其成员包括大公司、政府机构和学术机构。
CIS Benchmark 是目标系统安全配置的最佳实践。CIS Benchmark 是由安全专家、技术供应商、公开和私人社区成员,以及 CIS Benchmark 开发团队共同志愿开发的。
在 CIS 网站上注册以查看官方 Benchmark 文档。
关于生成的报告
每次扫描都会生成一份报告,你可以在 Rancher UI 中查看该报告,并以 CSV 格式下载它。
默认情况下使用 CIS Benchmark v1.6。
Benchmark 版本包含在生成的报告中。
Benchmark 提供两种类型的建议,分别是自动(Automated)和手动(Manual)。Benchmark 中标记为 Manual 的建议不包含在生成的报告中。
一些测试会被标记为“不适用”。由于 Rancher 配置 RKE 集群的方式,这些测试不会在任何 CIS 扫描中运行。有关如何审核测试结果,以及为什么某些测试会被标记为不适用,请参阅 Rancher 的 Kubernetes 对应版本的自测指南。
该报告包含以下信息:
报告中的列 | 描述 |
---|---|
id | CIS Benchmark 的 ID 号。 |
description | CIS Benchmark 测试的描述。 |
remediation | 为了通过测试需要修复的内容。 |
state | 测试的状态,可以是通过、失败、跳过或不适用。 |
node_type | 节点角色,角色决定了在节点上运行的测试。主测试在 controlplane 节点上运行,etcd 测试在 etcd 节点上运行,节点测试在 Worker 节点上运行。 |
audit | 这是 kube-bench 为此测试运行的审计检查。 |
audit_config | 适用于审计脚本的任何配置。 |
test_info | kube-bench 报告的测试相关信息(如果存在)。 |
commands | kube-bench 报告的测试相关的命令(如果存在)。 |
config_commands | kube-bench 报告的测试相关的配置数据(如果存在)。 |
actual_value | 测试的实际值。如果由 kube-bench 报告,则会显示。 |
expected_result | 测试的预期值。如果由 kube-bench 报告,则会显示。 |
请参阅集群加固指南中的表格,以了解 Kubernetes、Benchmark、Rancher 以及我们的集群强化指南的版本对应关系。另外,请参阅强化指南,以获取符合 CIS 的集群的配置文件以及修复失败测试的信息。
测试配置文件
以下是可用的配置文件:
- Generic CIS 1.6
- Generic CIS 1.20
- Generic CIS 1.23
- RKE permissive 1.6
- RKE hardened 1.6
- RKE permissive 1.20
- RKE hardened 1.20
- RKE permissive 1.23
- RKE hardened 1.23
- RKE2 permissive 1.6
- RKE2 hardened 1.6
- RKE2 permissive 1.20
- RKE2 hardened 1.20
- RKE2 permissive 1.23
- RKE2 hardened 1.23
- K3s permissive 1.6
- K3s hardened 1.6
- K3s permissive 1.20
- K3s hardened 1.20
- K3s permissive 1.23
- K3s hardened 1.23
- AKS
- EKS
- GKE
你还可以通过保存一组要跳过的测试来自定义配置文件。
所有配置文件都会有一组不适用的测试,CIS 扫描会跳过这些测试。RKE 集群管理 Kubernetes 的方式导致这些测试被认为不适用。
RKE 集群扫描配置文件有两种类型:
- Permissive:此配置文件有一组要跳过的测试,跳过的原因是这些测试会在默认的 RKE Kubernetes 集群上失败。除了跳过的测试列表之外,配置文件也不会运行不适用的测试。
- Hardened:此配置文件不会跳过任何测试(不适用的测试除外)。
EKS 和 GKE 集群扫描的配置文件基于这些集群类型特定的 CIS Benchmark 版本。
要通过 “Hardened” 配置文件,你需要遵从强化指南并使用强化指南中定义的 cluster.yml
来配置一个强化集群。
默认配置文件和支持的 CIS Benchmark 版本取决于扫描的集群类型:
rancher-cis-benchmark
支持 CIS 1.6 Benchmark 版本。
- RKE Kubernetes 集群默认使用 RKE Permissive 1.6 配置文件。
- EKS 和 GKE 有自己的 CIS Benchmark,由
kube-bench
发布。这些集群默认使用相应的测试配置文件。 - RKE2 Kubernetes 集群默认使用 RKE2 Permissive 1.6 配置文件。
- RKE、RKE2、EKS 和 GKE 以外的集群类型默认使用 Generic CIS 1.5 配置文件。
跳过和不适用的测试
有关要跳过和不适用的测试列表,请参阅此页面。
目前,只有用户定义的跳过测试会在生成报告中标记为跳过。
如果某个默认配置文件将某个测试定义为跳过,则该测试也会标记为不适用。
RBAC
有关权限的详细信息,请参阅此页面。
配置
有关为扫描、配置文件和 Benchmark 版本配置自定义资源的更多信息,请参阅此页面。
操作指南
要了解如何运行 CIS 扫描,请参阅 CIS 扫描指南。