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