Cloud KMS Autokey 通过自动执行预配和分配来简化客户管理的加密密钥 (CMEK) 的创建和使用。借助 Autokey,系统会按需生成密钥环和密钥。系统会根据需要创建使用密钥加密和解密资源的服务账号,并向其授予 Identity and Access Management (IAM) 角色。Cloud KMS 管理员可以保留对 Autokey 创建的密钥的完全控制权和可见性,而无需预先规划和创建每个资源。
使用 Autokey 生成的密钥有助于您始终遵循数据安全方面的业界标准和建议做法,包括 HSM 保护级别、职责分离、密钥轮替、位置和密钥专用性。Autokey 创建的密钥既遵循一般准则,也遵循与 Cloud KMS Autokey 集成的 Google Cloud 服务的资源类型专用准则。创建后,使用 Autokey 请求的密钥的运作方式与具有相同设置的其他 Cloud HSM 密钥完全相同。
Autokey 还可以简化 Terraform 在密钥管理方面的使用,让您无需使用提升的密钥创建权限运行基础架构即代码。
如需使用 Autokey,您必须拥有包含文件夹资源的组织资源。如需详细了解组织和文件夹资源,请参阅资源层次结构。
Cloud KMS Autokey 在提供 Cloud HSM 的所有 Google Cloud 位置均可用。如需详细了解 Cloud KMS 位置,请参阅 Cloud KMS 位置。使用 Cloud KMS Autokey 无需额外付费。使用 Autokey 创建的密钥的价格与任何其他 Cloud HSM 密钥相同。如需详细了解价格,请参阅 Cloud Key Management Service 价格。
Autokey 的运作方式
本部分介绍 Cloud KMS Autokey 的运作方式。以下用户角色参与此流程:
- 安全管理员
- 安全管理员是负责在文件夹级别或组织级别管理安全的用户。
- Autokey 开发者
- Autokey 开发者是负责使用 Cloud KMS Autokey 创建资源的用户。
- Cloud KMS 管理员
- Cloud KMS 管理员是负责管理 Cloud KMS 资源的用户。与使用手动创建的密钥相比,使用 Autokey 时,此角色的职责更少。
以下服务代理也会参与此流程:
- Cloud KMS 服务代理
- 给定密钥项目中的 Cloud KMS 服务代理。Autokey 依赖于此服务代理具有提升的权限,以创建 Cloud KMS 密钥和密钥环,并在密钥上设置 IAM 政策,为每个资源服务代理授予加密和解密权限。
- 资源服务代理
- 给定资源项目中给定服务的服务代理。此服务代理必须对任何 Cloud KMS 密钥拥有加密和解密权限,才能使用该密钥对资源进行 CMEK 保护。Autokey 会根据需要创建资源服务代理,并向其授予使用 Cloud KMS 密钥的必要权限。
安全管理员启用 Cloud KMS Autokey
在您可以使用 Autokey 之前,安全管理员必须完成以下一次性设置任务:
在资源文件夹上启用 Cloud KMS Autokey,并确定将包含该文件夹的 Autokey 资源的 Cloud KMS 项目。
创建 Cloud KMS 服务代理,然后向服务代理授予密钥创建和分配权限。
向 Autokey 开发者用户授予 Autokey 用户角色。
完成此配置后,Autokey 开发者现在可以按需触发 Cloud HSM 密钥创建。如需查看 Cloud KMS Autokey 的完整设置说明,请参阅启用 Cloud KMS Autokey。
Autokey 开发者使用 Cloud KMS Autokey
成功设置 Autokey 后,Autokey 的获授权开发者现在可以使用为他们按需创建的密钥创建受保护的资源。资源创建过程的详细信息取决于您要创建的资源,但该过程遵循以下流程:
Autokey 开发者开始在兼容的 Google Cloud 服务中创建资源。在创建资源期间,开发者会向 Autokey 服务代理请求新的密钥。
Autokey 服务代理会收到开发者的请求,并完成以下步骤:
- 在密钥项目中选择位置创建密钥环,除非该密钥环已存在。
- 在密钥环中创建一个具有适当资源类型粒度的密钥,除非此类密钥已存在。
- 创建按项目、按服务的服务账号,除非该服务账号已存在。
- 向按项目、按服务的服务账号授予对密钥的加密和解密权限。
- 向开发者提供关键详细信息,以便他们完成资源创建。
在 Autokey 服务代理成功返回密钥详细信息后,开发者可以立即完成创建受保护资源的操作。
Cloud KMS Autokey 会创建具有下一部分中所述属性的密钥。此密钥创建流程可确保职责分离。Cloud KMS 管理员仍然可以完全查看和控制 Autokey 创建的密钥。
如需在为文件夹启用 Autokey 后开始使用 Autokey,请参阅使用 Cloud KMS Autokey 创建受保护资源。
Autokey 创建的密钥简介
Cloud KMS Autokey 创建的密钥具有以下属性:
- 保护级别:HSM。
- 算法:AES-256 GCM。
轮替周期:一年。
Autokey 创建密钥后,Cloud KMS 管理员可以修改默认的轮替周期。
- 职责分离:
- 系统会自动向该服务的服务账号授予对该密钥的加密和解密权限。
- Cloud KMS 管理员权限会照常应用于 Autokey 创建的密钥。Cloud KMS 管理员可以查看、更新、启用或停用 Autokey 创建的密钥,以及销毁这些密钥。Cloud KMS 管理员没有获得加密和解密权限。
- Autokey 开发者只能请求创建和分配密钥。他们无法查看或管理密钥。
- 密钥的具体性或粒度:Autokey 创建的密钥的粒度因资源类型而异。如需了解特定于服务的密钥粒度详情,请参阅本页面上的兼容的服务。
位置:AutoKey 会在要保护的资源所在的位置创建密钥。
如果您需要在 Cloud HSM 不可用的位置创建受 CMEK 保护的资源,则必须手动创建 CMEK。
- 密钥版本状态:使用 Autokey 请求的新创建密钥会被创建为处于启用状态的主密钥版本。
- 密钥环命名:Autokey 创建的所有密钥都将在所选位置的 Autokey 项目中名为
autokey
的密钥环中创建。当 Autokey 开发者请求在给��位置获取第一个密钥时,Autokey 项目中的密钥环便会创建。 - 按键命名:Autokey 创建的按键遵循以下命名惯例:
PROJECT_NUMBER-SERVICE_SHORT_NAME-RANDOM_HEX
- 密钥导出:与所有 Cloud KMS 密钥一样,Autokey 创建的密钥无法导出。
- 密钥跟踪:与与密钥跟踪兼容的集成 CMEK 服务中使用的所有 Cloud KMS 密钥一样,Autokey 创建的密钥也会在 Cloud KMS 信息中心内跟踪。
强制启用 Autokey
如果您想强制在文件夹中使用 Autokey,可以将 IAM 访问权限控制与 CMEK 组织政策结合使用。具体方法是从 Autokey 服务代理以外的正文中移除密钥创建权限,然后要求所有资源都使用 Autokey 密钥项目通过 CMEK 进行保护。如需详细了解如何强制使用 Autokey,请参阅强制使用 Autokey。
兼容的服务
下表列出了与 Cloud KMS AutoKey 兼容的服务:
服务 | 受保护资源 | 键粒度 |
---|---|---|
Cloud Storage |
存储桶中的对象会使用存储桶默认密钥。Autokey 不会为 |
每个存储桶一个键 |
Compute Engine |
快照使用您要为其创建快照的磁盘的密钥。
Autokey 不会为 |
每项资源一个密钥 |
BigQuery |
Autokey 会为数据集创建默认密钥。数据集中的表、模型、查询和临时表使用数据集默认密钥。 Autokey 不会为数据集以外的 BigQuery 资源创建密钥。如需保护不属于数据集的资源,您必须在项目级别或组织级别创建自己的默认密钥。 |
每项资源一个密钥 |
Secret Manager |
只有在使用 Terraform 或 REST API 创建资源时,Secret Manager 才与 Cloud KMS Autokey 兼容。 |
项目中每个位置一个密钥 |
Cloud SQL |
Autokey 不会为 Cloud SQL 只有在使用 Terraform 或 REST API 创建资源时,Cloud SQL 才与 Cloud KMS Autokey 兼容。 |
每项资源一个密钥 |
Spanner |
只有在使用 Terraform 或 REST API 创建资源时,Spanner 才与 Cloud KMS Autokey 兼容。 |
每项资源一个密钥 |
限制
- gcloud CLI 不适用于 Autokey 资源。
- 密钥句柄不在 Cloud Asset Inventory 中。
后续步骤
- 如需开始使用 Cloud KMS Autokey,安全管理员必须启用 Cloud KMS Autokey。
- 如需在启用 Cloud KMS Autokey 后使用该工具,开发者可以使用 Autokey 创建受 CMEK 保护的资源。
- 了解 CMEK 最佳实践。