客户管理的加密密钥 (CMEK)

默认情况下,Datastore 模式下的 Firestore 中的所有静态数据均使用 Google 的默认加密进行加密。Datastore 模式会为您处理和管理这项加密工作,您无需执行任何额外操作。

如果您对密钥具有特定的合规性或监管要求 使用客户管理的加密密钥 (CMEK) Datastore 模式。您的 Datastore 模式数据库由您在 Cloud Key Management Service (Cloud KMS) 中控制和管理的密钥进行保护,而不是由 Google 管理用于保护您的数据的加密密钥。

本页面介绍了适用于 Datastore 模式的 CMEK。如需大致了解 CMEK(包括其启用时间和原因),请参阅以下 Cloud KMS 文档:

如需了解如何使用 Datastore 模式执行与 CMEK 相关的任务,请参阅使用 CMEK

特性

  • 数据控制:CMEK 可让您管理 KMS 密钥。您可以 轮替、停用和销毁用于加密静态数据的密钥 Datastore 模式数据库。
  • 性能:CMEK 不会影响 Firestore SLA
  • 可审核性:如果您为 Cloud KMS 启用审核日志记录,则对密钥的所有操作都会记录在 Cloud Logging 中并可供查看。
  • 组织政策限制条件:您可以使用 CMEK 组织政策限制条件为组织中的 Datastore 模式数据库指定加密合规性要求。

价格

Cloud KMS 会收取该密钥以及使用该密钥执行的任何加密操作的费用。如需了解详情,请参阅 Cloud KMS 价格

当 Datastore 模式询问 用于执行加密或解密操作的 Cloud KMS 密钥。 客户管理的密钥的加密/解密操作每 5 分钟发生一次,并且不会与数据库请求同步。由于 Datastore 模式生成的加密操作的预期数量较小,因此费用通常较低。Cloud Audit Logs 的费用属于额外费用 考虑到加密的预期数量, 操作。

使用由 CMEK 保护的数据库不会产生额外的 Datastore 模式费用 Datastore 模式价格将继续适用。

如果撤消数据库密钥,将根据 密钥最近使用时间的大小。您将继续产生 在数据库被删除或密钥删除之前, 再次变为可用状态

受 CMEK 保护的内容

创建受 Datastore 模式 CMEK 保护的数据库时,您的 Cloud KMS 密钥用于保护静态数据。其中包括 存储在磁盘或闪存驱动器上的数据,包括索引和备份。有一些例外情况。以下数据类型已采用 Google 默认加密方式 加密,而不是使用 CMEK 密钥:

  • 传输中或内存中的数据
  • 数据库元数据

如何处理不可用的密钥状态

系统不会针对每个数据请求发出加密和解密操作。相反, Firestore 系统会每 5 分钟对 Cloud KMS 进行一次轮询,以检查 密钥仍然可用,如果 键可用。

如果系统检测到密钥不可用, 任何后续调用 Firestore 数据库的时间 包括读取、写入和查询操作,则会返回 FAILED_PRECONDITION 错误以及 The customer-managed encryption key required by the requested resource is not accessible 消息。

如果数据库具有存留时间 (TTL) 政策,并且在密钥不可用时超出任何到期时间,则根据 TTL 删除数据将延迟到密钥恢复为止。如果数据库中有正在进行的长时间运行的操作,则这些操作将受到以下影响:

  • 数据导入导出操作将停止进行,并标记为 Failed。如果密钥恢复,系统不会重试失败的操作。
  • 索引构建操作以及启用新 TTL 政策的操作将停止进行。如果密钥恢复,系统会重试已停止的操作。

在任何有意禁止的情况下,键均被视为不可用 Firestore 访问密钥。其中包括:

如果密钥恢复,轮询操作会检测到密钥 。访问权限已重新启用(通常在几分钟内完成),但也可能需要 在极少数情况下最长可能会持续几个小时请注意,对 Cloud KMS 密钥执行的某些操作(例如停用或销毁密钥)最多可能需要 3 小时才能传播。在 Cloud KMS 中生效之前,Firestore 不会检测任何更改。

恢复密钥涉及以下步骤,具体取决于具体情况:

  • 重新启用已停用的密钥版本。
  • 恢复已销毁的密钥版本。在被永久销毁之前,系统会为密钥版本安排 破坏性。只有在密钥版本存在时间限制的时间段内,您才能恢复密钥 已安排销毁。您无法恢复已永久销毁的密钥。
  • 重新授予 Firestore 服务代理对密钥的访问权限。

密钥轮替注意事项

当您轮替 CMEK 密钥时,Datastore 模式会使用最新主要版本的 CMEK 密钥重新加密数据库。重新加密期间 在此过程中,请确保新旧密钥版本均可用。重新加密后 完成更新后,停用或删除旧版 CMEK 密钥不会停用 因为使用新主密钥版本加密了数据库。

您还可以查看用于保护数据库的密钥版本。 如需了解详情,请参阅在以下位置查看密钥: 使用

外部密钥注意事项

当您使用 Cloud EKM 密钥时,Google 无法控制由外部管理的密钥在外部密钥管理合作伙伴系统中的可用性。

如果外部管理的密钥不可用,数据存储区模式可暂时使用密钥的缓存版本继续支持完整的数据库操作,时间最长可达一小时。

1 小时后,如果 Datastore 模式仍无法连接到 Cloud KMS 中,Datastore 模式会开始将数据库离线 保护措施。对数据库的调用将失败并显示 FAILED_PRECONDITION 错误,包含额外的详细信息。

如需了解使用外部密钥的更多注意事项,请参阅 Cloud External Key Manager 文档

备份和恢复

备份使用的加密机制与您用来备份的数据库相同, 创建它。受 CMEK 保护的 Datastore 模式数据库创建备份时,会使用创建备份时所用的主密钥版本对备份进行加密。

在您启用备份时间表 24 小时后,数据存储空间模式会创建 CMEK 数据库的第一个备份。

如需详细了解 Datastore 模式备份,请参阅备份和恢复数据

从备份恢复的数据库使用的加密机制与 默认备份。恢复数据库时,您可以通过以下任一方式指定其他加密类型:

  • 使用新指定的密钥恢复到 CMEK 数据库。
  • 恢复到使用 Google 的默认加密的非 CMEK 数据库。
  • 恢复到与备份使用相同加密方式的数据库。

如需详细了解如何从备份恢复 Datastore 模式数据库,请参阅从数据库备份恢复数据。如需详细了解如何从备份恢复受 CMEK 保护的 Datastore 模式数据库,请参阅恢复受 CMEK 保护的数据库

按键跟踪

您可以使用关键跟踪来查看资源,例如 Datastore 模式 由密钥保护的数据库如需详细了解密钥跟踪,请参阅查看密钥使用情况

CMEK 和密钥可用性

当密钥不可用或被停用时,请注意启用了 CMEK 的数据库中可能发生的以下行为:

  • 即使密钥不可用,您也可以更改启用了 CMEK 的数据库的 Datastore 模式时间点恢复 (PITR) 设置,因为 PITR 设置是未由 CMEK 加密的数据库元数据。
  • 您可以删除包含不可用密钥的 CMEK 数据库。
  • 创建启用了 CMEK 的数据库时,已停用的密钥不会显示在 Google Cloud 控制台的可用密钥列表中。如果您手动输入已停用的密钥,数据库创建流程将失败并显示 FAILED_PRECONDITION 错误 400。

限制

  • 您无法更改受 CMEK 保护的数据库的密钥。您可以旋转、启用和停用按键。
  • 对受 CMEK 保护的数据库的支持 Key Visualizer,仅适用于实体和 文档数据,而不是索引数据。
  • 您无法对现有数据库启用 CMEK。您只能在新数据库上启用 CMEK,并且必须在创建数据库时启用它。迁移步骤 将现有非 CMEK 数据库中的数据导出到受 CMEK 保护的数据库中, 然后将数据导入至受 CMEK 保护的新数据库。您还可以将数据从非 CMEK 数据库恢复到 CMEK 数据库。
  • Firestore 支持有限数量的受 CMEK 保护的数据库。

后续步骤