本页面介绍了如何为 GKE on Bare Metal 制定良好的安全实践。本页面上的指导并非旨在全面列出最佳做法。
在 GKE on Bare Metal 上采用良好的安全实践涉及应用 Kubernetes 和 Google Kubernetes Engine (GKE) 的概念以及 GKE on Bare Metal 独有的概念。
Kubernetes 安全
我们建议您在使用 GKE on Bare Metal 时遵循一般的 Kubernetes 准则。
如需了解 Kubernetes 安全准则,请参阅 Kubernetes 文档中的安全核对清单和云原生安全概览。
GKE 安全
GKE on Bare Metal 扩展了 GKE,可让您在自己的本地 Linux 服务器上创建 GKE 集群。如需详细了解 GKE 安全,请参阅 GKE 安全概览。在阅读本文时,请注意,由于您的控制层面和节点在本地运行,因此针对控制层面安全和节点安全不适用。
GKE on Bare Metal 安全性
以下部分提供了为 GKE on Bare Metal 建立良好的安全实践的指导。
硬件安全
借助业界标准的物理安全和安全功能,保护本地数据中心的安全。
确保对管理员工作站的访问受到严格限制。管理员工作站存储敏感数据,例如
kubeconfig
文件、SSH 密钥和服务账号密钥。
节点安全
- 通过更新软件包和安装安全补丁,使您的操作系统保持最新。
集群安全
使用管理员集群和用户集群部署来隔离您的流量和数据。此部署类型可帮助您实现以下类型的隔离:
- 工作负载流量与管理平面流量隔离。
- 集群访问权限按群组或角色隔离。
- 生产工作负载与开发工作负载隔离。
将集群升级到受支持的版本。使用受支持的版本可为您带来以下安全优势:
- 修复安全漏洞。
- 利用最新安全状况和技术的新特性和功能。
- 更新捆绑软件和组件。
工作负载安全
使用 Binary Authorization 保护工作负载。Binary Authorization 是 Google Cloud 中的一项服务,为在云端运行的应用提供软件供应链安全性。通过 Binary Authorization,您可以确保在将应用部署到生产环境之前,已成功完成保护软件质量和完整性的内部过程。
请使用 Workload Identity 向 Pod 授予访问 Google Cloud 资源的权限。Workload Identity 允许 Kubernetes 服务账号作为 IAM 服务账号运行。以 Kubernetes 服务账号运行的 Pod 拥有 IAM 服务账号的权限。
网络安全
选择 GKE on Bare Metal 与 GKE on Google Cloud 之间的安全连接。完成基础连接后,添加可增强连接安全性的功能。
通过将集群安装在代理后面并创建防火墙规则,限制集群对公共互联网的公开程度。此外,在网络环境中使用适当的控制措施来限制对集群的公开访问。
身份验证安全
使用 GKE Identity Service 管理身份。GKE Identity Service 是一项身份验证服务,可让您将现有的身份解决方案部署到多个 Google Kubernetes Engine (GKE) Enterprise 版本环境。您可以从命令行(所有提供方)或 Google Cloud 控制台(仅限 OIDC)登录和使用 GKE on Bare Metal 集群,并且全都使用现有的身份提供方。
使用 Connect 网关连接到已注册的集群。Connect 网关基于舰队的强大构建,可让 GKE Enterprise 用户以简单、一致且安全的方式连接到已注册的集群并针对这些集群运行命令。
凭据安全
轮替证书授权机构。 GKE on Bare Metal 使用证书和私钥来对集群中的系统组件之间的连接进行身份验证和加密。为了维护安全的集群通信,请定期轮替用户集群证书授权机构,并在可能出现安全漏洞时轮替。
轮替服务账号密钥。为降低泄露的密钥造成的安全风险,我们建议您定期轮替服务密钥。
监控您的安全状况
- 使用 Kubernetes 审核日志记录。 通过审核日志记录,管理员可以对 GKE on Bare Metal 环境中发生的事件进行保留、查询、处理和提醒。
如需详细了解如何监控集群安全性,请参阅监控舰队安全状况。