本页面简要介绍了为提高 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 访问通道,并且为 Artifact Registry(或 Container Registry)使用 private.googleapis.com
或 restricted.googleapis.com
,请务必为网域
*.pkg.dev
和 *.gcr.io
设置 DNS 记录。
限制直接 SSH 访问
请务必限制对托管 Cloud Workstations 的项目中的虚拟机的直接 SSH 访问,以便用户只能通过 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 项目中。在项目级别创建不具备 owner
的 Cloud KMS 密钥项目,并指定一个在组织级别授予的组织管理员。与 owner
不同,组织管理员无法直接管理或使用密钥。他们只能设置 IAM 政策以限制谁可以管理和使用密钥。
这也称为职责分离,是指确保单个个体不具备完成恶意行为的所有必要权限的概念。如需了解详情,请参阅职责分离。
强制执行自动图片更新和补丁
确保您的工作站使用的是最新版本的 Cloud Workstations 基础映像,其中包含最新的安全补丁和修复程序。工作站配置中的运行超时值有助于确保使用此配置创建的工作站在下次会话中自动更新,以匹配工作站配置中定义的最新版容器映像。
- 如果贵组织使用的是 Cloud Workstations 的某个基础映像,那么当工作站下次关闭并重启时,工作站会自动获取对工作站配置的任何更新。设置
runningTimeout
或使用默认设置有助于确保这些工作站关闭。 - 如果贵组织使用自定义映像,请务必定期重新构建映像。我们建议您创建安全映像流水线,如以下部分所述。
为自定义映像创建安全映像流水线
您负责维护和更新在自定义映像中添加的自定义软件包和依赖项。
如果您要创建自定义图片,我们建议您遵循以下准则:
在 Cloud Workstations 基础映像更新时自动重新构建这些映像,有助于保护您的映像流水线。
运行容器扫描工具(例如 Artifact Analysis),检查您添加的任何其他依赖项。
安排构建以每周重新构建映像,或了解如何自动重新构建容器映像。
设置 VPC 流日志
创建工作站集群时,Cloud Workstations 会将该集群与特定子网相关联,并将所有工作站放置在该子网中。如需启用 VPC 流日志,请务必为相应子网开启日志记录。如需了解详情,请参阅为现有子网启用 VPC 流日志。