本页概述了建议采用的安全最佳实践,以提高 Cloud Workstations 的安全性和数据保护水平。此列表并非可确保安全性的全面核对清单,也无法取代您现有的安全态势。
我们的目标是为您提供一份指南,介绍 Cloud Workstations 实现的安全最佳实践。在适用情况下,将这些建议添加到您的安全解决方案组合中,作为构建分层安全方法的一部分。分层安全方法是在 Google Cloud上运行安全且合规的服务需遵循的核心安全原则之一。
背景
Cloud Workstations 服务提供可与该服务搭配使用的预定义基础映像。该服务每周都会重新构建并重新发布这些映像,以帮助确保捆绑的软件包含最新的安全补丁。此外,该服务会在您的工作站配置中使用默认的运行超时值,以帮助确保工作站自动更新,并且未修补的映像不会保持有效状态。
不过, Google Cloud 并不拥有这些映像中捆绑的所有软件包。 软件包管理器可能会根据 bug 或常见漏洞和风险 (CVE) 对其产品的影响程度,以不同的方式确定更新的优先级。如果产品仅使用库的一部分,则可能不会受到库其他部分中的发现的影响。正因如此,尽管我们的映像存在漏洞扫描发现的 CVE,Cloud Workstations 仍能提供安全的产品。
Cloud Workstations 可以做到这一点,因为它提供了一个身份验证和授权系统,有助于确保只有指定开发者才能访问其工作站。与任何开发环境一样,开发者在使用工作站时应遵循最佳实践。为了尽可能安全,请仅运行可信代码,仅处理可信输入,并且仅访问可信网域。此外,我们不建议您使用工作站来托管生产服务器,也不建议多个开发者共用一个工作站。
如果您想更好地控制组织工作站映像的安全性,还可以创建自己的自定义容器映像。
使用安全 Web 代理控制互联网访问权限,以增强数据泄露防护 (DLP) 功能
如需阻止对公共互联网的所有访问权限(例如,为了防止数据泄露 [DLP]),请在工作站配置中停用公共 IP 地址。
如果您停用公共 IP 地址,则必须在自己的网络上设置专用 Google 访问通道或 Cloud NAT。
如果您使用专用 Google 访问通道,并且为 Artifact Registry 使用 private.googleapis.com
或 restricted.googleapis.com
,请确保为网域
*.pkg.dev
设置 DNS 记录。
不过,如果您的开发者需要从工作站访问某些外部网站,请使用 安全 Web 代理来提供对这些网站的可审核访问权限,其中包括 DLP 保护。
安全 Web 代理可帮助组织实施精细的互联网访问权限控制,根据来源、身份、目的地和请求类型控制出站流量。您可以在 Google CloudIdentity and Access Management (IAM) 环境中定义这些政策,使用服务账号和安全标记来限制流量,例如限制为特定目的地。
安全 Web 代理还提供可伸缩的 TLS 检查服务,让您可以对拦截的加密 TLS 流量强制执行政策。
安全 Web 代理与 Cloud Logging 集成,可记录指标和交易日志。如需确定给定日志条目的来源工作站,请在日志条目中找到虚拟机的 IP 地址,然后使用工作站平台日志将该 IP 地址与相应的工作站相关联。
您可以使用自定义映像将工作站中的 https_proxy
和 http_proxy
设置为安全 Web 代理。
限制直接 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
或使用默认值有助于确保这些工作站关闭。 - 如果贵组织使用的是自定义映像,请务必定期重新构建映像。
维护自定义映像
您有责任维护和更新自定义映像上添加的自定义软件包和依赖项。
如果您要创建自定义图片,我们建议您执行以下操作:
运行容器扫描工具(例如 Artifact Analysis)来检查您添加的任何其他依赖项。
安排构建以每周重新构建映像,或了解如何自动重新构建容器映像。
设置 VPC 流日志
创建工作站集群时,Cloud Workstations 会将该集群与特定子网相关联,并且所有工作站都放置在该子网中。如需启用 VPC 流日志,请确保为相应子网开启日志记录。如需了解详情,请参阅为现有子网启用 VPC 流日志。
在 Security Command Center 中启用 VM Threat Detection
Security Command Center 是一款基于云的风险管理解决方案,可帮助安全专业人员防范、检测和应对安全问题。由于工作站在专用虚拟机上运行,因此虚拟机威胁检测可用于检测工作站中运行的潜在恶意应用,例如加密货币挖矿软件、内核模式 rootkit 和恶意软件。
在评估虚拟机的检测结果时,您可以通过检查虚拟机的工作站标签来查找分配给该虚拟机的工作站,也可以使用工作站平台日志来查找历史分配情况。