IBM Cloud Docs
Kubernetes 版本 基准 1.32 CIS Kubernetes

Kubernetes 版本 基准 1.32 CIS Kubernetes

互联网安全中心( CIS )发布的 CIS Kubernetes Benchmark 是一个特定步骤框架,用于按照符合各种行业法规的标准,更安全地配置 Kubernetes。 本文件包含运行 Kubernetes 版本的 1.32 集群的 1.5 CIS Kubernetes 基准测试结果。 如需了解更多信息或帮助理解基准,请参阅 使用基准

1 主节点安全配置

查看版本 1.5 CIS Kubernetes 基准测试的 Master 节点安全配置结果。

1.1 主节点配置文件

1.1 节 主节点基准测试结果
部分 建议 得分? 级别 结果 职责
1.1.1 确保将API服务器pod规格文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
1.1.2 确保将API服务器Pod规格文件的所有权设置为root:root。 得分 1 传递 IBM
1.1.3 确保控制器管理器舱规格文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
1.1.4 确保控制器管理器舱规格文件的所有权设置为root:root。 得分 1 传递 IBM
1.1.5 确保调度程序pod规格文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
1.1.6 确保调度程序容器规格文件的所有权设置为root:root。 得分 1 传递 IBM
1.1.7 确保将 etcd pod规格文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
1.1.8 确保将 etcd pod规格文件的所有权设置为root:root。 得分 1 传递 IBM
1.1.9 确保容器网络接口文件的权限设置为644或更严格的权限。 未得分 1 传递 IBM
1.1.10 确保将容器网络接口文件的所有权设置为root:root。 未得分 1 传递 IBM
1.1.11 确保将 etcd 数据目录权限设置为700或更高限制。 得分 1 传递 IBM
1.1.12 确保将 etcd 数据目录的所有权设置为 etcd: etcd。 得分 1 传递 IBM
1.1.13 确保将 admin.conf 文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
1.1.14 确保将 admin.conf 文件的所有权设置为root:root。 得分 1 传递 IBM
1.1.15 确保将 scheduler.conf 文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
1.1.16 确保将 scheduler.conf 文件的所有权设置为root:root。 得分 1 传递 IBM
1.1.17 确保将 controller-manager.conf 文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
1.1.18 确保将 controller-manager.conf 文件的所有权设置为root:root。 得分 1 传递 IBM
1.1.19 确保将 Kubernetes PKI目录和文件所有权设置为root:root。 得分 1 传递 IBM
1.1.20 确保将 Kubernetes PKI证书文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
1.1.21 确保将 Kubernetes PKI密钥文件的权限设置为600。 得分 1 传递 IBM

1.2 应用程序接口服务器

1.2 部分 API服务器基准测试结果
部分 建议 得分? 级别 结果 职责
1.2.1 确保 --anonymous-auth 参数设置为 false。 未得分 1 失败 IBM
1.2.2 确保未设置 --basic-auth-file 参数。 得分 1 传递 IBM
1.2.3 确保未设置 --token-auth-file 参数。 得分 1 传递 IBM
1.2.4 确保将 --kubelet-https 参数设置为true。 得分 1 传递 IBM
1.2.5 确保将 --kubelet-client-certificate--kubelet-client-key 参数设置为适当值。 得分 1 传递 IBM
1.2.6 确保将 --kubelet-certificate-authority 参数设置为适当值。 得分 1 传递 IBM
1.2.7 确保 --authorization-mode 参数未设置为 AlwaysAllow。 得分 1 传递 IBM
1.2.8 确保 --authorization-mode 参数包含 Node。 得分 1 传递 IBM
1.2.9 确保 --authorization-mode 参数包含RBAC。 得分 1 传递 IBM
1.2.10 确保已设置接入控制插件 EventRateLimit。 未得分 1 失败 IBM
1.2.11 确保未设置准入控制插件 AlwaysAdmit。 得分 1 传递 IBM
1.2.12 确保已设置接入控制插件 AlwaysPullImages。 未得分 1 失败 IBM
1.2.13 如果不使用 PodSecurityPolicy,请确保设置了准入控制插件 SecurityContextDeny。 未得分 1 传递 IBM
1.2.14 确保已设置接入控制插件 ServiceAccount。 得分 1 传递 IBM
1.2.15 确保已设置接入控制插件 NamespaceLifecycle。 得分 1 传递 IBM
1.2.16 确保已设置接入控制插件 PodSecurityPolicy。 得分 1 传递 IBM
1.2.17 确保已设置接入控制插件 NodeRestriction。 得分 1 传递 IBM
1.2.18 确保未设置 --insecure-bind-address 参数。 得分 1 传递 IBM
1.2.19 确保将 --insecure-port 参数设置为0。 得分 1 传递 IBM
1.2.20 确保 --secure-port 参数未设置为0。 得分 1 传递 IBM
1.2.21 确保 --profiling 参数设置为 false。 得分 1 传递 IBM
1.2.22 确保设置了 --audit-log-path 参数。 得分 1 失败 共同承担
1.2.23 确保将 --audit-log-maxage 参数设置为30或适当值。 得分 1 失败 共同承担
1.2.24 确保将 --audit-log-maxbackup 参数设置为10或适当值。 得分 1 失败 共同承担
1.2.25 确保将 --audit-log-maxsize 参数设置为100或适当数值。 得分 1 失败 共同承担
1.2.26 确保将 --request-timeout 参数设置为适当值。 得分 1 传递 IBM
1.2.27 确保将 --service-account-lookup 参数设置为true。 得分 1 传递 IBM
1.2.28 确保将 --service-account-key-file 参数设置为适当值。 得分 1 传递 IBM
1.2.29 确保将 --etcd-certfileetcd-keyfile 参数设置为适当值。 得分 1 传递 IBM
1.2.30 确保将 --tls-cert-file--tls-private-key-file 参数设置为适当值。 得分 1 传递 IBM
1.2.31 确保将 --client-ca-file 参数设置为适当值。 得分 1 传递 IBM
1.2.32 确保将 --etcd-cafile 参数设置为适当值。 得分 1 传递 IBM
1.2.33 确保将 --encryption-provider-config 参数设置为适当值。 得分 1 失败 共同承担
1.2.34 确保加密提供商配置得当。 得分 1 失败 共同承担
1.2.35 确保应用程序接口服务器仅使用强加密算法。 未得分 1 传递 IBM

1.3 控制经理

部门 1.3 控制经理 基准结果
部分 建议 得分? 级别 结果 职责
1.3.1 确保将 --terminated-pod-gc-threshold 参数设置为适当值。 得分 1 传递 IBM
1.3.2 确保 --profiling 参数设置为 false。 得分 1 传递 IBM
1.3.3 确保将 --use-service-account-credentials 参数设置为true。 得分 1 传递 IBM
1.3.4 确保将 --service-account-private-key-file 参数设置为适当值。 得分 1 传递 IBM
1.3.5 确保将 --root-ca-file 参数设置为适当值。 得分 1 传递 IBM
1.3.6 确保将 RotateKubeletServerCertificate 参数设置为true。 得分 2 失败 IBM
1.3.7 确保将 --bind-address 参数设置为 127.0.0.1。 得分 1 传递 IBM

1.4 日程安排

1.4 部分 计划程序基准测试结果
部分 建议 得分? 级别 结果 职责
1.4.1 确保 --profiling 参数设置为 false。 得分 1 传递 IBM
1.4.2 确保将 --bind-address 参数设置为 127.0.0.1。 得分 1 传递 IBM

2 Etcd节点配置

查看Etcd Node 配置结果 版本 1.5 CIS Kubernetes 基准。

第2部分:Etcd节点配置基准测试结果
部分 建议 得分? 级别 结果 职责
2.1 确保将 --cert-file--key-file 参数设置为适当值。 得分 1 传递 IBM
2.2 确保将 --client-cert-auth 参数设置为true。 得分 1 传递 IBM
2.3 确保 --auto-tls 参数未设置为true。 得分 1 传递 IBM
2.4 确保将 --peer-cert-file--peer-key-file 参数设置为适当值。 得分 1 传递 IBM
2.5 确保将 --peer-client-cert-auth 参数设置为true。 得分 1 传递 IBM
2.6 确保 --peer-auto-tls 参数未设置为true。 得分 1 传递 IBM
2.7 确保为 etcd 使用唯一的证书颁发机构。 未得分 2 传递 IBM

3 控制平面配置

查看版本 1.5 CIS Kubernetes 的对照平面配置结果。

3.1 认证和授权

3.1 部分 认证和授权基准测试结果
部分 建议 得分? 级别 结果 职责
3.1.1 用户不应使用客户证书认证。 未得分 2 传递 共同承担

3.2 记录

3.2 记录基准结果
部分 建议 得分? 级别 结果 职责
3.2.1 确保制定最低限度的审计政策。 得分 1 失败 共同承担
3.2.2 确保审计政策涵盖关键的安全问题。 未得分 2 失败 共同承担

4 工人节点安全配置

查看版本 1.5 CIS Kubernetes 的 Worker Node 安全配置结果。

4.1 工作节点配置文件

4.1 节 工人节点配置基准测试结果
部分 建议 得分? 级别 结果 职责
4.1.1 确保kubelet服务文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
4.1.2 确保kubelet服务文件的所有权设置为root:root。 得分 1 传递 IBM
4.1.3 确保代理 kubeconfig 文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
4.1.4 确保将代理 kubeconfig 文件的所有权设置为root:root。 得分 1 传递 IBM
4.1.5 确保将 kubelet.conf 文件的权限设置为644或更严格的权限。 得分 1 传递 IBM
4.1.6 确保将 kubelet.conf 文件的所有权设置为root:root。 得分 1 传递 IBM
4.1.7 确保证书颁发机构的文件权限设置为644或更高。 得分 1 传递 IBM
4.1.8 确保客户证书颁发机构的文件所有权设置为root:root。 得分 1 传递 IBM
4.1.9 确保kubelet配置文件的权限设置为644或更高。 得分 1 传递 IBM
4.1.10 确保kubelet配置文件的所有权设置为root:root。 得分 1 传递 IBM

4.2 Kubelet

4.2 节 Kubelet 基准测试结果
部分 建议 得分? 级别 结果 职责
4.2.1 确保 --anonymous-auth 参数设置为 false。 得分 1 传递 IBM
4.2.2 确保 --authorization-mode 参数未设置为 AlwaysAllow。 得分 1 传递 IBM
4.2.3 确保将 --client-ca-file 参数设置为适当值。 得分 1 传递 IBM
4.2.4 确保将 --read-only-port 参数设置为0。 得分 1 传递 IBM
4.2.5 确保 --streaming-connection-idle-timeout 参数未设置为0。 得分 1 传递 IBM
4.2.6 确保将 --protect-kernel-defaults 参数设置为true。 得分 1 失败 IBM
4.2.7 确保将 --make-iptables-util-chains 参数设置为true。 得分 1 传递 IBM
4.2.8 确保未设置 --hostname-override 参数。 未得分 1 失败 IBM
4.2.9 确保将 --event-qps 参数设置为0或一个可确保适当捕获事件的级别。 未得分 2 传递 IBM
4.2.10 确保将 --tls-cert-filetls-private-key-file 参数设置为适当值。 得分 1 传递 IBM
4.2.11 确保 --rotate-certificates 参数未设置为false。 得分 1 传递 IBM
4.2.12 确保将 RotateKubeletServerCertificate 参数设置为true。 得分 1 失败 IBM
4.2.13 确保Kubelet仅使用强加密算法。 未得分 1 传递 IBM

5 Kubernetes 政策

查看 Kubernetes 政策结果版本 1.5 CIS Kubernetes 基准。

5.1 RBAC和服务账户

5.1 RBAC和服务账户基准测试结果
部分 建议 得分? 级别 结果 职责
5.1.1 确保仅在需要时使用集群管理员角色。 未得分 1 传递 共同承担
5.1.2 尽量减少对秘密的访问。 未得分 1 失败 共同承担
5.1.3 尽量减少在角色和 ClusterRoles 中使用通配符。 未得分 1 失败 共同承担
5.1.4 尽量减少创建Pod的访问。 未得分 1 传递 共同承担
5.1.5 确保默认服务账户不被主动使用。 得分 1 失败 共同承担
5.1.6 确保仅在必要时安装服务帐户令牌。 未得分 1 失败 共同承担

5.2 Pod 安全政策

5.2 部分 播客安全政策基准测试结果
部分 建议 得分? 级别 结果 职责
5.2.1 尽量减少特权容器的准入。 未得分 1 传递 共同承担
5.2.2 尽量减少希望共享宿主进程ID名称空间的容器的准入。 得分 1 传递 共同承担
5.2.3 尽量减少希望共享主机IPC命名空间的容器的准入。 得分 1 传递 共同承担
5.2.4 尽量减少希望共享主机网络名称空间的容器的准入。 得分 1 传递 共同承担
5.2.5 尽量减少使用 allowPrivilegeEscalation 的容器。 得分 1 传递 共同承担
5.2.6 尽量减少根容器的数量。 未得分 2 传递 共同承担
5.2.7 尽量减少具有NET_RAW功能的容器的准入。 未得分 1 传递 共同承担
5.2.8 尽量减少具有附加功能的容器的准入。 未得分 1 传递 共同承担
5.2.9 尽量减少具有指定功能的容器的准入。 未得分 2 传递 共同承担

5.3 网络政策和CNI

5.3 部分 网络政策和CNI基准测试结果
部分 建议 得分? 级别 结果 职责
5.3.1 确保正在使用的CNI支持网络策略。 未得分 1 传递 IBM
5.3.2 确保所有命名空间都定义了网络策略。 得分 2 失败 共同承担

5.4 秘密管理

5.4 部分 秘密 管理基准结果
部分 建议 得分? 级别 结果 职责
5.4.1 更喜欢将秘密作为文件而不是环境变量。 未得分 1 传递 共同承担
5.4.2 考虑外部秘密存储。 未得分 2 失败 共同承担

5.5 可扩展的准入控制

5.5 部分 可扩展的准入控制基准测试结果
部分 建议 得分? 级别 结果 职责
5.5.1 使用 ImagePolicyWebhook admission controller配置图像来源。 未得分 2 失败 共同承担

5.7 一般政策

5.7 部分 一般政策 基准结果
部分 建议 得分? 级别 结果 职责
5.7.1 使用命名空间在资源之间创建管理边界。 未得分 1 传递 共同承担
5.7.2 确保在您的容器定义中将 seccomp 配置文件设置为docker/default。 未得分 2 失败 共同承担
5.7.3 将安全上下文应用于您的 Pod 和容器。 未得分 2 失败 共同承担
5.7.4 不应使用默认命名空间。 得分 2 失败 共同承担

IBM 补救措施和解释

查看来自 IBM 的 CIS Benchmark 结果信息。

解释和补救
部分 补救和解释
1.2.1 IBM 使用RBAC进行集群保护,但允许匿名发现,这 在 Benchmark CIS Kubernetes 看来是合理的。
1.2.10 IBM 无法启用 EventRateLimit 访问控制,因为这是 Kubernetes 的字母功能。
1.2.12 IBM 无法启用 AlwaysPullImages,因为它会覆盖容器的 imagePullPolicy,可能会影响性能。
1.2.13 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
1.2.16 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
1.2.22 IBM 可以选择 启用 API服务器审计 Kubernetes
1.2.23 IBM 可以选择 启用 API服务器审计 Kubernetes
1.2.24 IBM 可以选择 启用 API服务器审计 Kubernetes
1.2.25 IBM 可以选择 启用 API服务器审计 Kubernetes
1.2.33 IBM 可以选择 启用 密钥管理服务(KMS)提供商 Kubernetes
1.2.34 IBM 可以选择 启用 密钥管理服务(KMS)提供商 Kubernetes
1.3.6 IBM 在每个工作节点上旋转证书,进行重新加载或更新。
3.2.1 IBM 可以选择 启用 API服务器审计 Kubernetes
3.2.2 IBM 可以选择 启用 API服务器审计 Kubernetes
4.2.6 IBM 内核默认情况下不保护内核参数,以便客户 调整内核参数
4.2.8 IBM 确保主机名与基础设施发布的名称一致。
4.2.11 IBM 在每个工作节点上旋转证书,进行重新加载或更新。
4.2.12 IBM 在每个工作节点上旋转证书,进行重新加载或更新。
5.1.2 IBM 部署了一些系统组件,可以进一步限制 的访问权限。Kubernetes
5.1.3 IBM 部署了一些系统组件,可以进一步限制其 资源访问权限。Kubernetes
5.1.5 IBM 不会为每个默认服务账户设置 automountServiceAccountToken: 为假
5.1.6 IBM 部署了一些可能会将 automountServiceAccountToken: 设置为错误的系统组件。
5.2.1 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
5.2.2 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
5.2.3 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
5.2.4 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
5.2.5 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
5.2.6 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
5.2.7 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
5.2.8 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
5.2.9 IBM 可以选择配置 安全准入,这与不受支持 的 安全策略 Kubernetes 类似。
5.3.2 IBM定义了一组默认的 Calico 和 Kubernetes 网络策略,并且 可以选择添加其他网络策略
5.4.2 IBM 可以选择 启用 服务 Secrets Manager
5.5.1 IBM 可选择 启用图像安全强制
5.7.2 IBM 不会为所有豆荚添加 seccomp 个人资料
5.7.3 IBM 部署了一些不设置 的系统组件。荚或容器 securityContext
5.7.4 IBM 将一些 资源部署到默认名称。Kubernetes