客户管理的加密密钥 (CMEK)
默认情况下,Firestore 中的所有静态数据均使用 Google 的默认加密进行加密。Firestore 会为您处理和管理此加密,您无需执行任何其他操作。
如果您对保护数据的密钥有特定的合规性或监管要求,则可以将客户管理的加密密钥 (CMEK) 用于 Firestore。您的 Firestore 数据库由您在 Cloud Key Management Service (Cloud KMS) 中控制和管理的密钥进行保护,而不是由 Google 管理用于保护您的数据的加密密钥。
本页面介绍了适用于 Firestore 的 CMEK。如需进一步了解 CMEK 的整体信息或常规概念,包括何时以及为何启用它,请参阅以下 Cloud KMS 文档:
如需了解如何使用 Firestore 执行与 CMEK 相关的任务,请参阅使用 CMEK。
功能
- 数据控制:借助 CMEK,您可以管理 KMS 密钥。您可以轮替、停用和销毁用于加密 Firestore 数据库中静态数据的密钥。
- 性能:CMEK 不会影响 Firestore SLA。
- 可审核性:如果您为 Cloud KMS 启用审核日志记录,则针对密钥的所有操作都会被记录,并可在 Cloud Logging 中查看。
- 组织政策限制条件:您可以使用 CMEK 组织政策限制条件为贵组织中的 Firestore 数据库指定加密合规性要求。
价格
Cloud KMS 会收取该密钥以及使用该密钥执行的任何加密操作的费用。如需了解详情,请参阅 Cloud KMS 价格。
当 Firestore 要求 Cloud KMS 密钥执行加密或解密操作时,您需支付相应的操作费用。客户管理的密钥每 5 分钟执行一次加密/解密操作,并且不会与数据库请求同步。鉴于 Firestore 生成的加密操作的预期数量,费用通常较低。Cloud Audit Logs 的费用是额外的开支,但考虑到预期的加密操作数量,预计费用通常较低。
使用受 CMEK 保护的数据库不会产生额外的 Firestore 费用,并且 Firestore 价格仍会继续适用。
如果您撤消数据库对该密钥的访问权限,系统将根据该密钥最后可用当日的数据库大小收取存储费用。在数据库被删除或密钥重新可用之前,您将继续按该数据库大小产生存储费用。
受 CMEK 保护的内容
创建受 CMEK 保护的 Firestore 数据库时,您的 Cloud KMS 密钥将用于保护静态数据。这包括您存储在磁盘或闪存盘上的数据,包括索引和备份。有一些例外情况。以下数据类型使用 Google 默认加密(而非 CMEK 密钥)进行加密:
- 传输中的数据或内存中的数据
- 数据库元数据
如何处理不可用的密钥状态
系统不会针对每个数据请求发出加密和解密操作。相反,Firestore 系统会每 5 分钟轮询一次 Cloud KMS 以检查密钥是否仍可用,如果可用,则执行加密和解密操作。
如果系统检测到密钥不可用,则在 10 分钟内,对 Firestore 数据库的任何后续调用(包括读取、写入和查询)都会返回 FAILED_PRECONDITION 错误,并附带 The customer-managed encryption key required by the requested
resource is not accessible 消息。
如果数据库具有存留时间 (TTL) 政策,并且在密钥不可用时超过任何到期时间,根据存留时间删除数据将延迟到密钥恢复后。如果数据库有正在进行的长时间运行的操作,这些操作会受到以下影响: