CMEK

本主题简要介绍客户管理的加密密钥 (CMEK),以及如何控制用于保护 Google Cloud 中静态数据的密钥。

默认加密

Google Cloud 中存储的所有静态数据,是使用我们用于自己的加密数据的同一强化密钥管理系统进行加密的。这些密钥管理系统提供严格的密钥访问控制和审核机制,并使用 AES-256 加密标准加密用户的静态数据。无需进行任何设置、配置或管理。对于对加密材料的合规性或当地性没有特定要求的用户,Google Cloud 的默认静态加密是最佳选择。

CMEK

如果您需要更好地控制用于对 Google Cloud 项目中的静态数据进行加密的密钥,则多个 Google Cloud 服务都能够使用由 Cloud KMS 中的客户管理的加密密钥来保护与这些服务相关的数据。这些加密密钥称为客户管理的加密密钥 (CMEK)。当您使用 CMEK 保护 Google Cloud 服务中的数据时,CMEK 密钥由您控制。

使用 CMEK 不一定提供比 Google 的默认加密机制更高的安全性。此外,使用 CMEK 会产生与 Cloud KMS 相关的额外费用。通过使用 CMEK,您可以控制密钥的生命周期和管理的更多方面,例如(但不限于)以下功能:

  • 您可以通过停用用于保护存储中的数据(静态数据)的密钥来控制 Google 解密该数据的能力。
  • 您可以使用符合特定位置或居住要求的密钥来保护数据。
  • 您可以自动或手动轮替用于保护数据的密钥
  • 您可以使用 Cloud HSM 密钥或 Cloud External Key Manager 密钥或导入 Cloud KMS 的现有密钥来保护数据。
  • 您可以使用比 AES-256 更严格的加密标准来保护数据。

CMEK 集成

如果一项服务支持 CMEK,则称它具有 CMEK 集成。某些服务(例如 GKE)具有多个 CMEK 集成,可保护与该服务相关的不同类型的数据。

如需了解启用 CMEK 的确切步骤,请参阅相关 Google Cloud 服务的文档。您可能会遵循类以下的步骤:

  1. 创建或导入 Cloud KMS 密钥,并选择在地理位置上尽可能靠近服务资源的位置。服务和密钥可以位于同一项目中,也可以位于不同项目中。这是 CMEK 密钥。

  2. 您可以将 CMEK 密钥的 CryptoKey Encrypter/Decrypter IAM 角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter) 授予该服务的服务帐号。

  3. 您可以将服务配置为使用 CMEK 密钥来保护其数据。例如,您可以将 GKE 集群配置为使用 CMEK,以在节点的启动磁盘上保护静态数据。

只要服务帐号具有此角色,该服务就可以加密和解密其数据。如果您撤消该角色,或者停用或销毁 CMEK 密钥,则无法访问这些数据。

CMEK 合规性

某些服务不直接存储数据,或者作为长时间运行的操作中的中间步骤,仅短时间存储数据。对于这种类型的工作负载,单独加密每次写入是不现实的。这些服务不提供 CMEK 集成,但可以提供 CMEK 兼容性,通常无需您进行任何配置。

兼容 CMEK 的服务使用仅存在于内存中且从不写入磁盘的临时密钥来加密临时数据。当不再需要临时数据时,系统会从内存中清空临时密钥,并且即使存储资源仍然存在,也无法访问加密的数据。

兼容 CMEK 的服务可能支持将其输出发送到具有 CMEK 集成的服务,例如 Cloud Storage。

后续步骤