本页面介绍了 Google Kubernetes Engine (GKE) 为提高对 Kubernetes 和 GKE 的互联网安全中心 (CIS) 基准的遵从性所采用的方法。本页面包含以下信息:
- 我们如何配置托管式 GKE 控制平面以符合 CIS Kubernetes 基准
- 如何配置 GKE 节点和工作负载以符合 CIS Google Kubernetes Engine (GKE) 基准
CIS 基准简介
CIS 发布了以下基准,其中包含 Kubernetes 的安全配置准则:
- CIS Kubernetes 基准:适用于开源 Kubernetes 项目。旨在为各种自行管理和托管的 Kubernetes 实现提供指导。
- CIS GKE 基准:为您在 GKE 集群中可以控制的组件的安全配置制定了准则。包括特定于 GKE on Google Cloud的建议。
我们建议您优先考虑 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 合规性信息中心内评估集群的合规性问题。