本文档简要介绍了如何将 Cloud Key Management Service (Cloud KMS) 用于客户管理的加密密钥 (CMEK)。使用 Cloud KMS CMEK 可让您拥有并控制用于保护Trusted Cloud by S3NS中静态数据的密钥。
CMEK 与 Google Cloud-powered encryption keys的比较
您创建的 Cloud KMS 密钥是客户管理的密钥。Trusted Cloud 使用您密钥的服务被称为“集成了 CMEK”。 以下因素将 Trusted Cloud的默认静态加密与客户管理的密钥区分开来:
密钥类型 | 由客户管理 | Google Cloud-powered encryption key (Google 默认加密方式) |
---|---|---|
可以查看密钥元数据 |
是 |
否 |
密钥所有权1 |
客户 |
|
客户,仅限手动控制 |
||
支持客户管理的密钥的监管要求 |
是 |
否 |
密钥共享 |
每位客户专用 |
来自多个客户的数据通常由共享密钥加密密钥 (KEK) 进行保护。 |
控制密钥轮替 |
是 |
|
是 |
否 | |
是 |
否 |
|
通过加密实现逻辑数据分离 |
是 |
无 |
价格 |
保护级别不同,价格也不同 | 免费 |
1 密钥所有者表示谁拥有密钥的权利。您拥有的密钥受到严格的访问权限限制,或者 Google 无法访问这些密钥。
2 管理密钥包括以下任务:
- 创建密钥。
- 选择密钥的保护级别。
- 分配管理密钥的权限。
- 控制对密钥的访问权限。
- 控制密钥的使用情况。
- 设置和修改密钥的轮替周期,或触发密钥轮替。
- 更改密钥状态。
- 销毁密钥版本。
3 对密钥进行控制意味着对密钥的类型和使用方式进行控制,检测差异,并根据需要规划纠正措施。您可以控制密钥,但可以将密钥的管理权委托给第三方。
使用 Google Cloud-powered encryption keys的默认加密
Trusted Cloud 中存储的所有静态数据,是使用我们用于自己的加密数据的同一强化密钥管理系统进行加密的。 Trusted Cloud 这些密钥管理系统提供严格的密钥访问控制和审核机制,并使用 AES-256 加密标准加密用户的静态数据。 Trusted Cloud 拥有并控制用于加密您数据的密钥。您无法查看或管理这些密钥,也无法查看密钥使用情况日志。来自多个客户的数据可能会使用相同的密钥加密密钥 (KEK)。无需进行任何设置、配置或管理。
客户管理的加密密钥 (CMEK)
客户管理的加密密钥是您拥有的加密密钥。借助此功能,您可以更好地控制用于在受支持的 Trusted Cloud 服务中加密静态数据的密钥,并为您的数据提供加密边界。
支持 CMEK 的服务具有 CMEK 集成。CMEK 集成是一种服务器端加密技术,可替代Trusted Cloud的默认加密。设置 CMEK 后,资源加密和解密操作将由资源服务代理处理。由于集成了 CMEK 的服务会处理对加密资源的访问,因此加密和解密可以透明地进行,而无需最终用户执行任何操作。访问资源的体验与使用 Trusted Cloud的默认加密功能类似。如需详细了解 CMEK 集成,请参阅与 CMEK 集成的服务提供的功能。
您可以为每个密钥使用不限数量的密钥版本。
如需了解某项服务是否支持 CMEK,请参阅受支持的服务列表。
使用 Cloud KMS 会产生与密钥版本数量以及对这些密钥版本执行的加密操作相关的费用。
何时使用客户管理的加密密钥
您可以在兼容的服务中使用 CMEK,以帮助您实现以下目标:拥有加密密钥。
控制和管理加密密钥,包括选择位置、保护级别、创建、访问控制、轮替、使用和销毁。
在 Cloud KMS 中生成密钥材料,或导入在 Trusted Cloud之外维护的密钥材料。
设置有关密钥必须在何处使用的政策。
在停用账号或修复安全事件时,选择性删除由您的密钥保护的数据(加密碎片化)。
创建并使用客户专有的密钥,在您的数据周围建立加密边界。
遵守当前或未来要求实现任何这些目标的法规。
与 CMEK 集成的服务提供的功能
与 Trusted Cloud的默认加密一样,CMEK 是对客户数据进行的服务器端对称封装加密。与 Trusted Cloud的默认加密方式相比,CMEK 保护使用的是客户控制的密钥。
已集成 CMEK 的云服务会使用您在 Cloud KMS 中创建的密钥来保护您的资源。
与 Cloud KMS 集成的服务使用对称加密。
您可以选择密钥的保护级别。
所有密钥均为 256 位 AES-GCM。
密钥材料永远不会离开 Cloud KMS 系统边界。
您的对称密钥用于在封信加密模型中进行加密和解密。
与 CMEK 集成的服务处理资源访问
在已集成 CMEK 的服务中创建或查看资源的正文无需针对用于保护资源的 CMEK 拥有 Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter
) 权限。
每个项目资源都有一个特殊的服务账号,称为“服务代理”,该账号使用客户管理的密钥执行加密和解密。在您向服务代理授予对 CMEK 的访问权限后,该服务代理将使用该密钥保护您选择的资源。
当请求者想要访问使用客户管理的密钥加密的资源时,服务代理会自动尝试解密请求的资源。如果服务代理有权使用密钥进行解密,并且您尚未停用或销毁该密钥,则服务代理会提供对该密钥的加密和解密使用权限。否则,请求将失败。
无需额外的请求方访问权限,并且由于服务代理在后台处理加密和解密,因此访问资源的用户体验与使用 Trusted Cloud的默认加密类似。
规划和创建 CMEK
使用 CMEK 时,您必须先规划和创建密钥环、密钥和资源位置,然后才能创建受保护的资源。然后,您可以使用密钥来保护资源。
如需了解启用 CMEK 的确切步骤,请参阅相关Trusted Cloud 服务的文档。某些服务(例如 GKE)具有多个 CMEK 集成,可保护与该服务相关的不同类型的数据。您可能会遵循类似以下的步骤:
创建 Cloud KMS 密钥环或选择现有密钥环。创建密钥环时,请选择与您要保护的资源在地理位置上较近的位置。密钥环可以与要保护的资源位于同一项目中,也可以位于不同的项目中。使用不同的项目可让您更好地控制 IAM 角色,并有助于实现职责分离。
您需要在所选的密钥环中创建或导入 Cloud KMS 密钥。此密钥即为 CMEK。
您可以将 CMEK 密钥的 CryptoKey Encrypter/Decrypter IAM 角色 (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) 授予该服务的服务账号。创建资源时,请将资源配置为使用 CMEK。例如,您可以配置 BigQuery 表以保护表中静态数据。
请求者无需直接访问 CMEK 即可访问数据。
只要服务代理具有 CryptoKey Encrypter/Decrypter 角色,该服务就可以加密和解密其数据。如果您撤消此角色,或者停用或销毁 CMEK,则无法访问这些数据。
CMEK 合规性
某些服务具有 CMEK 集成,可让您自行管理密钥。而有些服务则提供 CMEK 合规性,这意味着临时数据和临时密钥从不写入磁盘。如需查看已集成且兼容 CMEK 的服务的完整列表,请参阅 CMEK 兼容服务。
CMEK 组织政策
Trusted Cloud 提供组织政策限制条件,有助于确保在整个组织资源中一致使用 CMEK。这些约束条件可为组织管理员提供控件,以要求使用 CMEK,并对用于 CMEK 保护的 Cloud KMS 密钥指定限制和控件,包括:
后续步骤
- 请参阅具有 CMEK 集成的服务列表。
- 请参阅兼容 CMEK 的服务列表。
- 请参阅 Autokey 支持的服务列表。