Cloud KMS with Autokey

Cloud KMS Autokey 通过自动执行预配和分配来简化客户管理的加密密钥 (CMEK) 的创建和使用。借助 Autokey,系统会按需生成密钥环和密钥。系统会创建使用密钥加密和解密资源的服务账号,并在需要时向其授予 Identity and Access Management (IAM) 角色。Cloud KMS 管理员可以完全控制和查看 Autokey 创建的密钥,而无需预先规划和创建每个资源。与自行预配密钥相比,使用 Autokey 更简单,如果 Autokey 创建的密钥满足您的所有要求,建议您选择使用 Autokey。

使用 Autokey 生成的密钥有助于您始终遵循数据安全方面的业界标准和建议的做法,包括多租户 Cloud HSM 保护级别、职责分离、密钥轮替、位置和密钥专属性。Autokey 会创建遵循一般准则和特定于资源类型的准则的密钥,以用于与 Cloud KMS Autokey 集成的Google Cloud 服务。使用 Autokey 请求的密钥创建后,其功能与具有相同设置的其他 Cloud HSM 密钥完全相同。

使用 Autokey 时,请求新密钥所需的权限非常少,并且包含在授予资源创建权限的默认角色中。这意味着,您的开发者和基础设施即代码 (IaC) 流水线无需超出规定的特权。Autokey 简化了使用 Terraform 进行密钥管理的过程,并支持最小权限原则。

您可以将 Autokey 与专用项目密钥存储(以前称为集中式密钥管理)或同项目密钥存储(以前称为委托式密钥管理)搭配使用。如需将 Autokey 与专用项目密钥存储搭配使用,您必须拥有包含文件夹资源的组织资源。使用专用项目密钥存储时,您可以为文件夹中的项目启用 Autokey,并且 Autokey 创建的密钥会在该文件夹的指定密钥项目中创建。使用同项目密钥存储时,您可以在文件夹或项目上启用 Autokey,让 Autokey 在受保护资源所在的同一项目中创建密钥。

如需详细了解组织和文件夹资源,请参阅资源层次结构。

Cloud KMS Autokey 可在所有可使用 Cloud HSM 的 Google Cloud 位置使用。如需详细了解 Cloud KMS 位置,请参阅 Cloud KMS 位置。使用 Cloud KMS Autokey 不会产生额外费用。使用 Autokey 创建的密钥与其他任何 Cloud HSM 密钥的价格相同。如需详细了解价格,请参阅 Cloud Key Management Service 价格。

如需详细了解 Autokey,请参阅 Autokey 概览。

在 Autokey 和其他加密选项之间进行选择

Cloud KMS with Autokey 就像客户管理的加密密钥的自动驾驶系统:它会根据您的需求代表您完成工作。您无需提前规划密钥或创建可能永远不需要的密钥。密钥和密钥使用情况保持一致。您可以定义 Autokey 的使用范围,并控制哪些人可以使用它。您可以完全掌控 Autokey 创建的密钥。您可以将手动创建的 Cloud KMS 密钥与使用 Autokey 创建的密钥搭配使用。您可以停用 Autokey,并继续使用它创建的密钥,就像使用任何其他 Cloud KMS 密钥一样。

如果您希望在各个项目中保持一致的密钥使用方式,同时降低运营开销,并遵循 Google 的密钥建议,那么 Cloud KMS Autokey 是一个不错的选择。

功能或特性 Google 默认加密方式 Cloud KMS Cloud KMS Autokey
加密隔离:密钥专属于一个客户的账号 否 是 是
客户拥有和控制密钥 否 是 是
开发者触发密钥配置和分配 是 否 是
精细度:系统会自动以建议的密钥粒度创建密钥 否 否 是
让您可以对数据进行加密粉碎 否 是 是
自动符合推荐的密钥管理实践 否 否 是
使用符合 FIPS 140-2 3 级标准的 HSM 支持的密钥 否 可选 是

如果您需要使用 HSM 以外的保护级别或自定义轮换周期,可以使用不含 Autokey 的 CMEK。

兼容的服务

下表列出了与 Cloud KMS Autokey 兼容的服务:

服务 受保护资源 密钥粒度
AlloyDB for PostgreSQL
  • alloydb.googleapis.com/Cluster
  • alloydb.googleapis.com/Backup

AlloyDB for PostgreSQL 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
Apigee
  • apigee.googleapis.com/Organization
  • apigee.googleapis.com/Instance

Apigee 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
Apigee API Hub
  • apihub.googleapis.com/ApiHubInstance

Apigee API Hub 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
Artifact Registry
  • artifactregistry.googleapis.com/Repository

Autokey 在创建制品库期间创建密钥,用于所有存储的制品。

每个资源一个密钥
Backup and DR Service
  • backupdr.googleapis.com/BackupVault
每个资源一个密钥
Backup for GKE
  • gkebackup.googleapis.com/BackupPlan

Backup for GKE 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
BigQuery
  • bigquery.googleapis.com/Dataset

Autokey 会为数据集创建默认密钥。数据集中的表、模型、查询和临时表使用数据集默认密钥。

Autokey 不会为数据集以外的 BigQuery 资源创建密钥。如需保护不属于数据集的资源,您必须在项目级或组织级层创建自己的默认密钥。

每个资源一个密钥
Bigtable
  • bigtableadmin.googleapis.com/Cluster

Autokey 会为集群创建密钥。

Autokey 不会为集群以外的 Bigtable 资源创建密钥。

Bigtable 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 Google Cloud SDK 创建的资源。

每个集群一个密钥
Cloud Run
  • run.googleapis.com/Service
  • run.googleapis.com/Job
一个项目中的每个位置对应一个密钥
Cloud SQL
  • sqladmin.googleapis.com/Instance

Autokey 不会为 Cloud SQL BackupRun 资源创建密钥。创建 Cloud SQL 实例的备份时,系统会使用主实例的客户管理密钥加密备份。

Cloud SQL 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
Cloud Storage
  • storage.googleapis.com/Bucket

存储桶中的对象使用存储桶默认密钥。Autokey 不会为 storage.object 资源创建密钥。

每个存储桶一个密钥
Compute Engine
  • compute.googleapis.com/Disk
  • compute.googleapis.com/Image
  • compute.googleapis.com/Instance
  • compute.googleapis.com/MachineImage

快照使用您要创建快照的磁盘的密钥。 Autokey 不会为 compute.snapshot 资源创建密钥。

每个资源一个密钥
Google Kubernetes Engine
  • container.googleapis.com/Cluster

Google Kubernetes Engine 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个集群一个密钥
Dataflow
  • dataflow.googleapis.com/Job
每个资源一个密钥
Datastream
  • datastream.googleapis.com/Stream

Datastream 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
Managed Service for Apache Airflow
  • composer.googleapis.com/Environment
每个资源一个密钥
Managed Service for Apache Spark
  • dataproc.googleapis.com/Cluster
  • dataproc.googleapis.com/SessionTemplate
  • dataproc.googleapis.com/WorkflowTemplate
  • dataproc.googleapis.com/Batch
  • dataproc.googleapis.com/Session

对于 Cluster、SessionTemplate 和 WorkflowTemplate 资源:每个资源一个密钥

对于 Batch 和会话资源: 每个项目中的每个位置一个密钥

Memorystore for Redis
  • redis.googleapis.com/Instance
  • redis.googleapis.com/Cluster

Memorystore for Redis 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
Memorystore for Valkey
  • memorystore.googleapis.com/Instance

Memorystore for Valkey 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
Migrate to Virtual Machines
  • vmmigration.googleapis.com/MigratingVm
  • vmmigration.googleapis.com/Source

Migrate to Virtual Machines 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
Pub/Sub
  • pubsub.googleapis.com/Topic
每个资源一个密钥
Secret Manager
  • secretmanager.googleapis.com/Secret

Secret Manager 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

一个项目中的每个位置对应一个密钥
Secure Source Manager
  • securesourcemanager.googleapis.com/Instance
每个资源一个密钥
Spanner
  • spanner.googleapis.com/Database

Spanner 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥
Filestore
  • file.googleapis.com/Instance
  • file.googleapis.com/Backup
每个资源一个密钥
Workflows
  • workflows.googleapis.com/Workflow

Workflows 与 Cloud KMS Autokey 之间的集成仅适用于使用 Terraform 或 REST API 创建的资源。

每个资源一个密钥

后续步骤

  • 如需详细了解 Cloud KMS Autokey 的运作方式,请参阅 Autokey 概览。