Google Cloud Platform 上的数据删除

数据删除视频缩略图

Google Cloud Platform 上的数据删除

概览

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

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

简介

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

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

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

数据存储和复制

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

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

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

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

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

安全有效的数据删除

数据删除流水线

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

第 1 阶段 - 删除请求

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

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

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

第 2 阶段 - 软删除

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

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

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

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

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

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

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

第 4 阶段 - 备份系统过期

与从 Google 的活跃系统中删除类似,可以使用覆盖和加密技术从备份系统中清除已删除的数据。但在备份系统中,客户数据通常存储在活跃系统的大型聚合快照中,这些快照会保留一段固定的时间,目的是确保在发生灾难(例如,影响整个数据中心的中断)时能够保持业务连续性,而如果发生这种情况,可能就需要花费时间和成本从备份系统恢复整个系统。该平台遵循合理的业务连续性做法,按适当的每日、每周和每月周期创建活跃系统的完整和增量快照,并在预定义的时段后停用这些快照,为最新的快照腾出空间。

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

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

最后,在包含客户数据的备份过期之前,已删除的数据可能会被加密清除。没有用于加密特定客户数据的加密密钥,客户数据将无法恢复,即使数据在 Google 备份系统的生命周期尚未结束也不例外。

删除时间轴

Google Cloud Platform 经过专门设计,可实现高级别的速度、可用性、耐用性和一致性,针对这些性能特性进行了优化的系统在设计时必须进行周密地平衡,兼顾到及时删除数据的需求。Google Cloud Platform 承诺在最长大约六个月(180 天)内删除客户数据。此承诺包含上述 Google 删除流水线的各个阶段,包括:

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

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

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

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

确保安全可靠的媒介清理

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

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

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

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