本页介绍了 Google Kubernetes Engine (GKE) 为提高对 Kubernetes 和 GKE 的 Center for Internet Security (CIS) 基准的遵从程度所采取的方法。本页面包含以下信息:
- 我们如何配置托管式 GKE 控制平面以符合 CIS Kubernetes 基准
- 如何配置 GKE 节点和工作负载以符合 CIS Google Kubernetes Engine (GKE) 基准
CIS 基准简介
CIS 发布了以下基准,其中包含 Kubernetes 的安全配置准则:
- CIS Kubernetes 基准:适用于开源 Kubernetes 项目。旨在为各种自管理和托管 Kubernetes 实现提供指导。
- CIS GKE 基准:为您在 GKE 集群中可以控制的组件的安全配置制定了准则。包括专门针对 Google Cloud 上的 GKE 的建议。
我们建议您优先考虑 CIS GKE 基准,因为它专门针对 GKE on Google Cloud。CIS Kubernetes 基准包含许多针对您无法在 GKE 中查看或修改的控制功能的建议。我们的集群安全方法包括超出开源 Kubernetes 基准范围的缓解措施,并且可能会导致与这些建议冲突。
适用于 GKE 的其他基准
除了 CIS GKE 基准和 CIS Kubernetes 基准之外,以下基准也适用于 GKE 中提供的操作系统。即使特定操作系统基准未明确涉及 Kubernetes 使用情况,您仍应参考该基准以获取额外的安全指导。
- Container-Optimized OS 基准:安装在所有 GKE Linux 节点上的默认操作系统
- Ubuntu Linux 基准:适用于 GKE Standard
- Windows Server 基准:适用于 GKE Standard
默认容器运行时 containerd 没有基准。
责任共担模型
根据 GKE 共担责任模型,我们会为您管理以下组件:
- 控制平面,包括控制平面虚拟机、API 服务器以及 etcd、kube-controller-manager 和 kube-scheduler 等组件。
- 节点操作系统。
这些组件位于 GKE 拥有的项目中,因此您无法根据相应的 CIS 基准控制措施修改或评估其中任何组件。但是,您可以评估和修复适用于工作器节点和工作负载的任何 CIS 基准控制措施。根据 GKE 共担责任模型,这些组件由您负责。
我们为 CIS 基准实现 GKE 安全的方法
GKE 是开源 Kubernetes 的托管式实现。我们完全管理控制平面,并负责保护控制平面组件的配置。下表介绍了我们可能会影响 CIS 基准评分的一些决定:
GKE 安全方法 | |
---|---|
身份验证 |
|
准入控制器 | GKE 会停用以下准入控制器:
|
审核日志记录 | GKE 使用 GKE 审核政策捕获审核日志。 因此,我们无需设置任何 Kubernetes API 服务器审核日志记录标志。 |
调试 | GKE 使用性能剖析进行调试。 |
加密 |
|
kubelet |
|
根据 CIS 基准评估 GKE
您可以使用以下方法之一根据基准自动评估集群:
CIS GKE 基准:
- 所有 GKE 版本:
- 运行
kube-bench
以根据基准评估工作器节点。如需了解详情,请参阅 kube-bench GitHub 代码库。 - 使用 Twistlock Defender 等第三方工具根据基准评估节点。
- 运行
- GKE Enterprise 版:使用合规性信息中心评估您的所有集群是否符合 CIS GKE 基准。如需了解详情,请参阅 GKE 合规性信息中心简介。
- 所有 GKE 版本:
CIS Kubernetes 基准:运行
kube-bench
以根据基准评估工作器节点。您无法根据基准中的建议评估托管式控制平面。
后续步骤
- 阅读 GKE 安全概览。
- 遵循 GKE 安全加固指南中的安全最佳实践。
- 了解如何使用 GKE 安全状况监控集群是否存在安全问题。
- 了解如何在 GKE Enterprise 的 GKE 合规性信息中心中评估集群是否存在合规性问题。