设置最佳安全做法

本页面简要介绍了安全最佳实践,这些最佳实践有助于增强 Cloud Workstations 的安全和数据保护状况。此列表并非确保安全保证或替代现有安全状况的全面核对清单。

我们的目标是为您提供指南,帮助您了解 Cloud Workstations 实现的安全最佳实践。在构建分层安全方法的过程中,将这些建议添加到您的安全解决方案组合中(如适用)。分层安全方法是在 Google Cloud 上运行安全合规服务的核心安全原则之一。

背景

Cloud Workstations 服务提供预定义的基础映像,供该服务使用。该服务每周重新构建和重新发布这些映像,以确保捆绑的软件包含最新的安全补丁。此外,该服务会在工作站配置中使用默认的“运行超时”值,以帮助确保工作站会自动更新,并且未修补的映像不会保持活跃状态。

但是,Google Cloud 并不拥有捆绑到这些映像的所有软件包。软件包管理器可能会以不同的方式确定更新的优先级,具体取决于 bug 或常见漏洞和披露 (CVE) 对其产品的影响。如果产品仅使用库的一部分,则可能不受库其他部分中发现的影响。因此,虽然存在通过映像漏洞扫描发现的 CVE,Cloud Workstations 仍然能够提供安全的产品。

Cloud Workstations 之所以能够做到这一点,是因为它提供了一个身份验证和授权系统,有助于确保只有指定的开发者才能访问其工作站。与任何开发环境一样,开发者在使用工作站时应该遵循最佳实践。为了尽可能提高安全性,请仅运行可信代码、仅对可信输入执行操作以及仅访问可信网域。此外,我们不建议使用工作站来托管生产服务器,也不建议与多个开发者共享单个工作站。

如果您希望更好地控制组织的工作站映像的安全性,还可以创建自己的自定义容器映像

限制公共网络访问

使用工作站配置在工作站上停用公共 IP 地址,并配置防火墙规则,以限制在 Cloud Workstations 中日常工作不需要的公共互联网目的地的访问权限。如果您停用公共 IP 地址,则必须在您的网络上设置专用 Google 访问通道Cloud NAT。如果您使用专用 Google 访问通道,并且将 private.googleapis.comrestricted.googleapis.com 用于 Artifact Registry(或 Container Registry),请务必为网域 *.pkg.dev*.gcr.io 设置 DNS 记录。

限制直接 SSH 访问

请务必将直接 SSH 访问权限限制在托管 Cloud Workstations 工作站的项目中,以便只能通过 Cloud Workstations 网关(其中强制执行 Identity and Access Management (IAM))政策并可以启用 VPC 流日志进行访问。

如需停用对虚拟机的直接 SSH 访问权限,请运行以下 Google Cloud CLI 命令:

    gcloud workstations configs update CONFIG \
        --cluster=CLUSTER \
        --region=REGION \
        --project=PROJECT \
        --disable-ssh-to-vm

限制对敏感资源的访问权限

设置 VPC Service Controls 服务边界,以限制工作站对敏感资源的访问权限,以防止源代码和数据渗漏。

遵循最小权限原则

在权限和资源分配时,请遵循最小权限原则。

IAM 权限

使用默认 Identity and Access Management 配置,仅允许单个开发者访问工作站。这有助于确保每个开发者都使用具有不同底层虚拟机的唯一工作站实例,从而加强环境隔离。Cloud Workstations 代码编辑器和应用在以特权模式运行且具有 root 访问权限的容器内运行,可提高开发者的灵活性。这为每个开发者提供了一个唯一的工作站,并有助于确保即使用户从此容器中退出,他们仍然留在虚拟机内,无法访问任何其他外部资源。

设置 IAM 权限,限制非管理员访问权限,以修改 Artifact Registry 上的工作站配置和容器映像。

此外,Google 建议您设置 IAM 权限,限制非管理员对托管 Cloud Workstations 的项目中的任何底层 Compute Engine 资源的访问权限。

如需了解详情,请参阅安全使用 IAM

Cloud KMS 权限

为了更好地支持最小权限原则,我们建议您将 Cloud KMS 资源和 Cloud Workstations 资源放在单独的 Google Cloud 项目中。创建 Cloud KMS 密钥项目,但不在项目级设置 owner,然后指定在组织级授予Organization Admin。与 owner 不同,Organization Admin 无法直接管理或使用密钥。他们只能设置 IAM 政策,以限制谁可以管理和使用密钥。

这也称为“职责分离”,即确保一个人不具备完成恶意操作的所有必要权限的概念。如需了解详情,请参阅职责分离

强制执行自动映像更新和修补

请确保您的工作站使用的是最新版本的 Cloud Workstations 基础映像,其中包含最新的安全补丁和修复程序。工作站配置上的运行超时值有助于确保使用此配置创建的工作站在下一个会话时自动更新,以匹配工作站配置中定义的容器映像的最新版本。

  • 如果您的组织使用其中一个 Cloud Workstations 基础映像,该工作站下次关停和重启时,会自动获取工作站配置的任何更新。设置 runningTimeout 或使用默认值有助于确保这些工作站关闭。
  • 如果贵组织使用自定义映像,请务必定期重新构建该映像。我们建议您按照下一部分中的说明创建安全映像流水线

为自定义映像创建安全映像流水线

您负责维护和更新在自定义映像中添加的自定义软件包和依赖项。

如果您要创建自定义映像,建议您采取以下措施:

设置 VPC 流日志

创建工作站集群时,Cloud Workstations 会将集群与特定子网相关联,并且所有工作站都放置在该子网中。如需启用 VPC 流日志,请确保为该子网启用日志记录功能。如需了解详情,请参阅为现有子网启用 VPC 流日志