客户管理的加密密钥 (CMEK)
默认情况下,Firestore 中的所有静态数据都使用 Google 的默认加密方式。Firestore 句柄和 为您管理此加密,您无需执行任何额外操作。
如果您对密钥具有特定的合规性或监管要求 使用客户管理的加密密钥 (CMEK) Firestore。而无需 Google 管理 您的 Firestore 数据库会使用 在 Cloud Key Management Service (Cloud KMS) 中进行控制和管理。
本页面介绍了适用于 Firestore 的 CMEK。详细了解 CMEK 请参阅 Cloud KMS 文档。有关执行 如果将 CMEK 相关任务与 Firestore 搭配使用,请参阅使用 CMEK。
特性
- 数据控制:CMEK 可让您管理对 KMS 密钥的访问权限。您可以 轮替、停用和销毁用于加密静态数据的密钥 Firestore 数据库。
- 性能:CMEK 不会影响 Firestore SLA。
- 可审核性:如果您 为 Cloud KMS 启用审核日志记录, 对键执行的所有操作都会记录在 Cloud Logging 中并可以查看。
- 组织政策限制条件:您可以使用 CMEK 组织政策限制条件 指定 Firestore 数据库的加密合规性要求 组织中。
价格
Cloud KMS 会收取该密钥以及使用该密钥执行的任何加密操作的费用。请参阅 如需了解详情,请参阅 Cloud KMS 价格。
当 Firestore 请求存储您的 ID 时, 用于执行加密或解密操作的 Cloud KMS 密钥。 加密/解密未与您的请求同步。每 5 次完成一次 只需轮询 Cloud KMS 即可由于 Firestore 生成的加密操作数量符合预期。费用 会产生额外的费用 考虑到加密操作次数的预期,通常较低。
使用受 CMEK 保护的数据库不会产生额外的 Firestore 费用 并且 Firestore 价格仍然适用。
如果撤消数据库密钥,将根据 密钥最近使用时间的大小。您将继续产生 在数据库被删除或密钥删除之前, 再次变为可用状态
受 CMEK 保护的内容
创建受 CMEK 保护的数据库时,系统将使用您的 Cloud KMS 密钥 以保护静态数据这包括存储在磁盘或闪存中的数据。 有一些例外情况。以下数据类型已通过 Google 加密 默认加密,而不是使用 CMEK 密钥:
- 传输中或内存中的数据
- 数据库元数据
如何处理不可用的密钥状态
系统并不会针对每个数据请求发出加密和解密操作。相反,
Firestore 系统会每 5 分钟轮询一次 Cloud Key Management Service,以检查
密钥仍然可用,如果
键可用。如果系统检测到密钥不可用,
对 Firestore 数据库的任何后续调用
包括读取、写入和查询,会返回 FAILED_PRECONDITION
错误
消息 The customer-managed encryption key required by the requested
resource is not accessible
。如果数据库有
存留时间 (TTL) 政策以及到期时间(如果有)
在密钥不可用时超出上限、通过 TTL 删除数据
将会延迟,直到该密钥恢复为止。如果数据库长期运行
将受到以下影响:
- 数据import或导出操作将停止
进度,并标记为
Failed
。失败的操作不会 重试。 - 索引构建操作,以及启用新 TTL 的操作 政策将不会继续取得进展。已停止的操作 重试。
在任何有意禁止的情况下,键均被视为不可用 Firestore 访问密钥。其中包括:
- 停用或 销毁使用中的密钥版本。请 在销毁密钥版本时要小心谨慎,因为 可能会导致不可恢复的数据丢失。
- 移除访问权限 Firestore 服务账号的密钥。
如果密钥恢复,轮询操作会检测到密钥 。访问权限已重新启用(通常在几分钟内完成),但可能需要 在极少数情况下最长可能会持续几个小时请注意,对 Cloud KMS 执行的一些操作 密钥(例如停用或销毁密钥)最多花费 传播时间为 3 小时。Firestore 不会 并检测这些更改,直到这些更改在 Cloud KMS 中生效。
根据具体情况,恢复密钥的过程涉及以下操作:
- 重新启用已停用的密钥版本。
- 恢复已销毁的密钥版本。 在被永久销毁之前,系统会为密钥版本安排 破坏性。只有在密钥版本存在时间限制的时间段内,您才能恢复密钥 已安排销毁。您无法恢复密钥 已永久销毁。
- 重新授权 Firestore 服务代理访问密钥的权限。
外部密钥注意事项
当您使用 Cloud EKM 密钥时,Google 无法控制由外部管理的密钥在外部密钥管理合作伙伴系统中的可用性。
如果外部管理的密钥不可用,Firestore 会继续 支持使用键的缓存版本执行完整的数据库操作,最多 一个小时。
1 小时后,如果 Firestore 仍然无法连接到
Cloud KMS 中,Firestore 会开始将数据库离线
保护措施。对数据库的调用将失败并显示 FAILED_PRECONDITION
错误,包含额外的详细信息。
如需了解使用外部密钥的更多注意事项,请参阅 Cloud External Key Manager 文档。
限制
- 不支持更改受 CMEK 保护的数据库的密钥。密钥轮替 支持启用和停用。
- 受 CMEK 保护的备份时间表和恢复操作不支持 数据库。您可以使用时间点恢复 (PITR) 用于灾难恢复
- 支持 CMEK 保护的数据库 Key Visualizer,仅适用于实体和 文档数据,而不是索引数据。
- 您无法在现有数据库上启用 CMEK。您只能为以下产品启用 CMEK: 新数据库,因此您必须在创建数据库时启用它。接收者 将现有非 CMEK 数据库中的数据迁移到受 CMEK 保护的数据库; 导出数据,并将数据导入由 CMEK 保护的新数据库。
- 受 CMEK 保护的数据库不支持密钥跟踪。
- 在预览版期间,Firestore 支持的 由 CMEK 保护的数据库。