Google Cloud 上的数据删除机制

数据删除视频缩略图

Google Cloud 上的数据删除机制

概览

面向首席信息官级管理层的概要

  • Google 采用规则化的方法来存储和删除客户数据。Google Cloud 旨在实现高级别的速度、可用性、耐用性和一致性,并且必须在针对这些性能特性进行优化的系统设计与实现及时数据删除的需求之间仔细权衡。
  • 当您删除客户数据时,Google 的删除流水线首先确认删除请求,然后从活跃存储系统和备份存储系统中的应用和存储层反复清除数据。Google 的删除和保留声明中概括地介绍了此过程。
  • 逻辑删除分阶段进行,首先是立即在活跃存储系统中标记要删除的数据,然后将数据与应用层的普通处理隔离开来。Google 使用 Google 存储层中的连续压缩和“标记-清除”删除周期来逐渐覆盖已删除的数据,还使用加密清除使已删除的数据不可恢复。最后,包含 Google 的活跃系统快照的备份系统会在标准周期内停用。
  • 应用层和存储层中的删除可能会立即发生,具体取决于数据存储的配置方式以及相关存储层和数据中心中正在进行的删除周期的时间安排。活跃系统中的删除通常在删除请求提出后的大约两个月内完成。最后,客户数据将从 Google 的长期备份系统中移除。该系统会将 Google 系统的快照保留最长六个月(180 天),以防范自然灾害和灾难性事件。

简介

本文档概述了当您删除自己存储在 Google Cloud 中的客户数据(如 Google Cloud 服务条款中所定义)时,我们执行的安全流程。确保在客户数据的生命周期结束时将其安全删除,是在任何计算平台上处理数据的最基本的方面。

在任何承诺提供高可用性、高速度、可应对数据丢失或灾难的耐用性以及随时随地可供访问的云平台中处理数据,都需要进行技术创新来实现大规模的快速删除。Google 设计的存储平台为处理数以万亿计数据元素的产品提供了强力支持,作为早期参与者,Google 拥有十多年的行业经验,当仁不让地担负起为实现此目标而优化高性能存储系统的重任。

本白皮书将首先概述客户数据在 Google Cloud 中的存储方式。接下来,我们将介绍 Google 的删除流水线以及在每个阶段完成删除通常所需的时间。最后,我们将介绍如何通过安全的硬件停用和清理过程来防止对存储在我们平台中的数据进行任何重建。

数据存储和复制

为了介绍 Google Cloud 如何删除客户数据,必须首先简述 Google 基础架构中数据存储的运作方式。Google Cloud 提供存储服务,例如 Cloud Bigtable 和 Cloud Spanner。大多数 Google Cloud 应用和服务通过这些云存储服务或 Google 使用的其他内部存储服务间接访问 Google 的存储系统。

Google Cloud 旨在提供低延迟、可用性高、可扩展且耐用的解决方案。数据复制对于实现这些关键性能目标至关重要。客户数据的冗余副本可以存储在本地、本区域甚至全球,具体取决于您的配置和客户项目的需求。对 Google Cloud 中的数据采取的操作可能同时在多个数据中心中复制,从而使客户数据具备高可用性。当硬件、软件或网络环境中发生影响性能的变化时,客户数据会根据客户的配置设置自动从一个系统或设施转移到另一个系统或设施,以便客户项目继续大规模且不间断地提供服务。

在物理存储层级,客户数据静态存储在两种类型的系统中:活跃存储系统和备份存储系统。这两种类型的系统以不同方式处理数据。活跃存储系统是运行 Google 应用和存储层的 Google Cloud Platform 生产服务器。 活跃系统是大规模的磁盘和驱动器阵列,用于写入新数据以及在多个复制的副本中存储和检索数据。活跃存储系统经过优化,可以快速对客户数据执行大规模的实时读/写操作。

Google 的备份存储系统可存储指定时间段内 Google 活跃系统的完整副本和增量副本,以帮助 Google 在发生灾难性中断或灾难时恢复数据和系统。与活跃系统不同,备份系统旨在接收 Google 系统的定期快照,备份副本存在时间有限,在新备份副本创建后就会停用。

在上述存储系统中,静态存储的客户数据都会进行加密。Google Cloud 安全性白皮书中详细介绍了 Google 加密技术。静态数据的加密发生在活跃存储媒介和备份存储媒介上的应用层和存储层。

安全有效的数据删除

数据删除流水线

在 Google Cloud 中存储客户数据后,我们的系统会安全地存储数据,直到完成 Google 数据删除流水线的各个阶段。本部分详细介绍这一过程。

第 1 阶段 - 删除请求

客户发出删除请求时,客户数据删除操作就会开始。通常,删除请求会指向特定资源、Google Cloud 项目或客户的 Google 帐号。删除请求的处理方式可能会有所不同,具体取决于客户请求的范围:

  • 资源删除:可以通过 Cloud Console 或 API 以多种方式删除包含客户数据的具体资源(如 Google Cloud Storage 存储分区)。例如,客户可以通过命令行发出 remove bucket 或 rm -r 命令来删除存储分区,也可以在 Cloud Storage 浏览器中选择一个存储分区并删除。
  • 项目删除:作为 Google Cloud 项目所有者,您可以关闭项目。删除项目相当于批量删除与相应 project_number 关联的所有资源。
  • 帐号删除:删除自己的 Google 帐号会删除您单独拥有的所有 Google Cloud 项目。请注意,如果项目有多个所有者,则在从项目中移除全部所有者或删除其 Google 帐号之前,该项目不会被删除。这可以确保只要存在所有者,Google Cloud 项目就会继续存在。

虽然删除请求主要是为客户管理其数据而设计,但 Google 可能会自动发出删除请求,例如当客户终止与 Google 的关系时。

第 2 阶段 - 软删除

软删除是此过程中提供短期内部暂存和恢复期的自然点,可以确保有时间恢复因意外或错误而被标记为删除的任何数据。只要数据符合 Google 的整体删除时间轴,Google Cloud Platform 各产品就可以采用和配置从基础存储系统中删除数据前的此类指定恢复期。

举例说明,删除项目时,Google Cloud 首先会识别唯一的 project_number,然后向包含该 project_number 的 Google Cloud 产品(例如 App Engine 和 Cloud Bigtable)广播暂停信号。在此情况下,App Engine 将立即暂停与该 project_number 关联的操作,Cloud Bigtable 中的相关表将进入最长 30 天的内部恢复期。在恢复期结束时,Google Cloud 会向同一产品广播信号,以开始逻辑删除与该唯一 project_number 相关的资源。然后,Google 会等待(并在必要时重新广播信号)从适用产品中收集确认信号 (ACK) 以完成项目删除。

关闭 Google 帐号后,Google Cloud 可能会强制实行长达 30 天的内部恢复期,具体取决于过去的帐号活动。宽限期到期后,会向 Google 产品广播包含已删除的结算帐号 user_id 的信号,并且会将仅与该 user_id 关联的 Google Cloud 资源标记为删除。

第 3 阶段 - 活跃系统中的逻辑删除

在数据标记为待删除且恢复期全部过期后,系统将相继从 Google 的活跃存储系统和备份存储系统中删除数据。在活跃系统上,数据通过两种方式删除。

在计算、存储和数据库以及大数据类别下的所有 Cloud 产品(除 Google Cloud Storage 外)中,已删除数据的副本都会标记为可用存储,并会随着时间的推移而被覆盖。在活跃存储系统(如 Cloud Bigtable)中,已删除的数据会作为条目存储在大规模结构化表中。压缩现有表以覆盖已删除的数据可能产生大量费用,因为这需要重写现有(未删除)数据的表,因此会定期进行“标记-清除”垃圾回收和主要压缩事件,以收回存储空间并覆盖已删除的数据。

在 Google Cloud Storage 中,还可以通过加密清除来删除客户数据。这是一种行业标准技术,通过删除解密该数据所需的加密密钥,使数据无法读取。使用加密清除的一个优点是,可以在 Google Cloud 的活跃和备份存储系统中覆盖所有已删除的数据块之前完成逻辑删除操作,无论是由 Google 还是由客户提供加密密钥,都是如此。

第 4 阶段 - 备份系统过期

与从 Google 的活跃系统中删除类似,从备份系统中消除已删除的数据将同时使用覆盖和加密技术。但是,对于备份系统,客户数据通常存储在活跃系统的大型聚合快照中,这些快照会在静态时间段内保留,确保在发生灾难(例如,影响整个数据中心的中断)且必须花费时间和费用从备份系统完全恢复系统时,维持业务连续性。遵循合理的业务连续性做法,按照每日、每周和每月的周期截取活跃系统的完整和增量快照,并在预定义的时段后停用,以便为最新的快照腾出空间。

备份停用后,会将其标记为可用空间,并在每日/每周/每月执行新的备份时进行覆盖。

请注意,任何合理的备份周期都会在备份系统中传播数据删除请求时实施预定义的延迟。从活跃系统中删除客户数据时,不再将其复制到备份系统中。删除前执行的备份会根据预定义的备份周期定期过期。

最后,在包含客户数据的备份过期之前,可能会加密清除已删除的数据。如果没有用于加密特定客户数据的加密密钥,即使在 Google 备份系统的剩余生命周期内,客户数据也将无法恢复。

删除时间轴

Google Cloud 旨在实现高级别的速度、可用性、耐用性和一致性,并且必须在针对这些性能特性进行优化的系统设计与实现及时数据删除的需求之间仔细权衡。 Google Cloud 承诺在最长大约六个月(180 天)内删除客户数据。此承诺包含上述 Google 删除流水线的各个阶段,包括:

  • 第 2 阶段 - 发出删除请求后,数据通常会立即标记为删除,我们的目标是在最长 24 小时内执行此步骤。将数据标记为删除后,可能会应用最长 30 天的内部恢复期,具体取决于服务或删除请求。

  • 第 3 阶段 - 完成垃圾回收任务和实现活跃系统中的逻辑删除所需的时间。这些过程可能会在收到删除请求后立即发生,具体取决于数据复制级别和正在进行的垃圾回收周期的时间。自收到删除请求起,从活跃系统中删除数据一般要花费约两个月的时间,这通常足以完成两个主要的垃圾回收周期并确保完成逻辑删除。

  • 第 4 阶段 - Google 备份周期设计为在收到删除请求后的六个月内使数据中心备份中的已删除数据过期。删除可能会在更早时间发生,具体取决于数据复制级别和 Google 的进行中备份周期的时间点。

删除流水线图 图 1:Google Cloud 删除流水线的各个阶段

确保安全可靠的媒介清理

除了 Google Cloud 的删除流水线之外,还有严格的媒介清理计划,可防范物理存储媒介在生命周期结束后遭受取证或实验室攻击,从而提高删除过程的安全性。

通过在 Google 资产数据库中跟踪的条形码和资产标签,Google 细致地跟踪数据中心内所有存储设备在获取、安装、停用和销毁各环节的位置和状态。我们使用生物识别、金属探测、摄像头、车辆栏障和激光入侵检测系统等各种技术防止设备在未经授权的情况下离开数据中心。 请在 Google 基础架构安全设计概述中了解详情。

物理存储媒介可能会由于各种原因而停用。如果某个组件在其生命周期中的任何时间点未能通过性能测试,则会从库存中删除该组件并停用。Google 还会升级过时的硬件,以提高处理速度和能源效率,或增加存储容量。无论硬件是由于故障、升级还是任何其他原因停用,我们都会使用适当的安全措施停用存储媒介。 Google 硬盘使用全盘加密 (FDE) 和驱动器锁定等技术来保护停用期间的静态数据。当硬盘停用时,经授权的人员会用零来覆盖驱动器,并执行多步验证流程来确保驱动器不含任何数据,从而验证磁盘已经清空。

如果由于任何原因无法清空存储媒介,我们会将其安全存储直至可以物理销毁为止。我们可以压碎驱动器使其变形,或将其粉碎成小块,具体方式取决于可用设备。这两种方式都可以在安全设施中回收磁盘,确保没有人能够读取已停用的 Google 磁盘上的数据。每个数据中心都会遵守严格的处置政策,并使用上述方式遵循 NIST SP 800-88 修订版 1《Guidelines for Media Sanitization》和 DoD 5220.22-M《National Industrial Security Program Operating Manual》的要求。