Google Cloud 包含用于保护计算资源和 Google Kubernetes Engine (GKE) 容器资源的控制机制。Google Cloud 架构框架中的本文档介绍了主要控制机制以及使用它们的最佳实践。
使用经过安全强化的精选虚拟机映像
Google Cloud 提供安全强化型虚拟机来帮助您对虚拟机实例进行安全强化。安全强化型虚拟机的设计可以防止在启动周期中加载恶意代码。它提供启动安全性、监控完整性并使用虚拟可信平台模块 (vTPM)。针对敏感工作负载使用安全强化型虚拟机。
除了使用安全强化型虚拟机外,您还可以使用 Google Cloud 合作伙伴解决方案进一步保护您的虚拟机。Google Cloud 上提供的许多合作伙伴解决方案都会与提供 Event Threat Detection 和运行状况监控功能的 Security Command Center 集成。您可以使用合作伙伴进行高级威胁分析或实现额外的运行时安全。
使用机密计算处理敏感数据
默认情况下,Google Cloud 会在整个网络中加密静态数据和传输中的数据,但不会在内存中加密使用中的数据。如果您的组织要处理机密数据,则您需要减少会破坏应用或系统内存中数据的机密性和完整性的威胁。机密数据包括个人身份信息 (PII)、财务数据和健康信息。
机密计算基于安全强化型虚拟机进行构建。它通过在基于硬件的可信执行环境中执行计算来保护使用中的数据。这种安全的独立环境有助于防止应用和使用中的数据遭到未经授权的访问或修改。可信执行环境还可增强管理敏感数据和受监管数据的组织的安全保障。
在 Google Cloud 中,您可以通过运行机密虚拟机或机密 GKE 节点来启用机密计算。如果您要处理机密工作负载,或者您拥有必须在处理时公开的机密数据(例如密钥),请启用机密计算。如需了解详情,请参阅机密计算联盟。
保护虚拟机和容器
OS Login 可让您的员工使用 Identity and Access Management (IAM) 权限作为可靠来源而不是依赖 SSH 密钥来连接虚拟机。因此,您不必管理整个组织的 SSH 密钥。OS Login 将管理员的访问权限与其员工生命周期相关联,这意味着如果员工转换为其他角色或离开您的组织,即会撤消其账号的访问权限。OS Login 还支持双重验证,从而增加一层额外的安全保障以防范账号盗用攻击。
在 GKE 中,App Engine 在 Docker 容器中运行应用实例。如需启用已定义的风险概况并限制员工更改容器,请确保您的容器为无状态且不可变。不变性原则意味着您的员工不会修改容器或以互动方式访问容器。如果必须更改容器,则您需要构建新映像并重新部署。仅在特定调试场景中启用对底层容器的 SSH 访问。
停用外部 IP 地址(除非必要)
如需为生产虚拟机停用外部 IP 地址分配(视频)并防止使用外部负载均衡器,您可以使用组织政策。如果您需要虚拟机访问互联网或本地数据中心,则可以启用 Cloud NAT 网关。
您可以在 GKE 中部署专用集群。在专用集群中,节点仅具有内部 IP 地址,这意味着节点和 Pod 默认与互联网隔离。您还可以定义网络政策来管理集群中 Pod 之间的通信。如需了解详情,请参阅服务的专用访问通道选项。
监控计算实例和 GKE 用量
系统会自动为 Compute Engine 和 GKE 启用 Cloud Audit Logs。Audit Logs 可让您自动捕获集群的所有相关活动并监控任何可疑的活动。
您可以将 GKE 与合作伙伴产品集成以实现运行时安全。您可以将这些解决方案与 Security Command Center 集成,以提供一个界面来监控您的应用。
确保映像和集群保持最新状态
Google Cloud 提供定期修补的精选操作系统映像。您可以自带自定义映像并在 Compute Engine 上运行这些映像,但如果这样做,您必须自行修补映像。Google Cloud 会定期更新操作系统映像以减少新漏洞,如安全公告中所述,并提供补救措施来修复现有部署的漏洞。
如果您使用的是 GKE,我们建议您启用节点自动升级功能,让 Google 使用最新的补丁程序更新您的集群节点。Google 负责管理 GKE 控制层面,这些控制层面会自动进行更新和修补。此外,请使用 Google 精选的容器优化型映像来进行部署。Google 会定期修补和更新这些映像。
控制对映像和集群的访问权限
请务必了解哪些用户能够创建和启动实例。您可以使用 IAM 控制此访问权限。如需了解如何确定工作负载需要哪些访问权限,请参阅规划您的工作负载身份。
此外,您还可以使用 VPC Service Controls 为项目定义自定义配额,以便限制哪些用户可以启动映像。如需了解详情,请参阅保护您的网络部分。
为了向您的集群提供基础架构安全性,GKE 可让您将 IAM 与基于角色的访问权限控制 (RBAC) 搭配使用,以管理对集群和命名空间的访问。
隔离沙盒中的容器
使用 GKE Sandbox 可部署多租户应用,这些应用需要一层额外的安全保障并与其主机内核隔离。例如,当您执行未知或不可信代码时,请使用 GKE Sandbox。GKE Sandbox 是一种容器隔离解决方案,用于在 GKE 上的容器化工作负载之间提供一层额外的安全防御。
GKE Sandbox 专为 I/O 要求低但扩缩性强的应用而构建。这些容器化工作负载需要保持其速度和性能,但也可能会用到需要加强防范的不可信代码。使用容器运行时沙盒 gVisor 可在应用和主机内核之间提供额外的安全隔离。gVisor 可提供额外的完整性检查并限制服务的访问范围。它不是用于防范外部威胁的容器安全强化服务。如需详细了解 gVisor,请参阅 gVisor:保护现实世界中的 GKE 和无服务器用户。
后续步骤
通过以下资源详细了解计算和容器安全:
- 保护您的网络(本系列的下一个文档)
- 为什么容器安全很重要 (PDF)
- Google Cloud 的发布核对清单
- 验证实例的身份
- 适用于 GKE 的工作负载身份联合
- 安全强化型虚拟机
- 永久性磁盘快照最佳做法
- 映像管理最佳做法