本主题概述了 Cloud External Key Manager (Cloud EKM)。
术语
External Key Manager (EKM)
在 Google Cloud 之外用来管理您的密钥的密钥管理器。
Cloud External Key Manager (Cloud EKM)
一种使用在受支持的 EKM 中管理的外部密钥的 Google Cloud 服务。
通过互联网使用 Cloud EKM
Cloud EKM 的一个版本,供 Google Cloud 通过互联网与您的外部密钥管理器通信。
通过 VPC 的 Cloud EKM
Cloud EKM 的版本,其中 Google Cloud 通过 Virtual Private Cloud (VPC) 与您的外部密钥管理器进行通信。如需了解详情,请参阅 VPC 网络概览。
通过 Cloud KMS 进行 EKM 密钥管理
在通过 VPC 通过支持 Cloud EKM 控制平面的外部密钥管理合作伙伴使用 Cloud EKM 时,您可以使用 Cloud KMS EKM 管理模式来简化在外部密钥管理合作伙伴和 Cloud EKM 中维护外部密钥的过程。如需了解详情,请参阅本页面中的协调外部密钥和通过 Cloud KMS 管理 EKM 密钥。
加密空间
外部密钥管理合作伙伴中您的资源的容器。您的加密空间由唯一的加密空间路径标识。加密空间路径的格式因外部密钥管理合作伙伴而异,例如
v0/cryptospaces/YOUR_UNIQUE_PATH
。合作伙伴管理的 EKM
由可信合作伙伴为您管理 EKM 的协议。如需了解详情,请参阅本页面中的合作伙伴管理的 EKM。
Key Access Justifications
当您将 Cloud EKM 与 Key Access Justifications 功能结合使用时,向您的外部密钥管理合作伙伴发出的每个请求都包含一个字段,用于标识每个请求的原因。您可以配置外部密钥管理合作伙伴,以根据提供的 Key Access Justifications 代码允许或拒绝请求。如需详细了解 Key Access Justifications,请参阅 Key Access Justifications 概览。
概览
借助 Cloud EKM,您可以使用自己在受支持的外部密钥管理合作伙伴中管理的密钥来保护 Google Cloud 中的数据。您可以在受支持的 CMEK 集成服务中保护静态数据,也可以通过直接调用 Cloud Key Management Service API 保护静态数据。
Cloud EKM 提供多项优势:
密钥出处:您可以控制外部管理的密钥的位置和分布。外部管理的密钥绝不会缓存或存储在 Google Cloud 中。相反,Cloud EKM 针对每个请求直接与外部密钥管理合作伙伴进行通信。
访问权限控制:您可以管理对外部管理的密钥的访问权限。如需在 Google Cloud 中使用外部管理的密钥,您必须先授予 Google Cloud 项目使用该密钥的权限。您可以随时撤消此访问权限。
集中管理密钥:无论密钥和访问政策是在云端还是本地,您都可以通过一个界面管理密钥和访问政策。
在任何情况下,密钥都位于外部系统上,并且绝不会发送给 Google。
您可以通过互联网或通过 Virtual Private Cloud (VPC) 与外部密钥管理器通信。
Cloud EKM 的工作原理
Cloud EKM 密钥版本由以下部分组成:
- 外部密钥材料:Cloud EKM 密钥的外部密钥材料是在 EKM 中创建和存储的加密材料。这些资料不会离开您的 EKM,也不会与 Google 共享。
- 密钥引用:每个 Cloud EKM 密钥版本都包含密钥 URI 或密钥路径。这是外部密钥材料的唯一标识符,供 Cloud EKM 使用密钥请求加密操作时。
- 内部密钥材料:创建对称 Cloud EKM 密钥后,Cloud KMS 会在 Cloud KMS 中创建额外的密钥材料,这些材料绝不会离开 Cloud KMS。在与 EKM 通信时,此密钥材料可用作额外的加密层。本内部密钥材料不适用于不对称签名密钥。
为了使用您的 Cloud EKM 密钥,Cloud EKM 会向您的 EKM 发送加密操作请求。例如,如需使用对称加密密钥来加密数据,Cloud EKM 会先使用内部密钥材料对数据进行加密。加密的数据包含在对 EKM 的请求中。EKM 使用外部密钥材料将加密的数据封装在另一个加密层中,然后返回生成的密文。使用 Cloud EKM 密钥加密的数据在没有外部密钥材料和内部密钥材料的情况下无法解密。
如果您的组织已启用 Key Access Justifications,您的外部密钥管理合作伙伴会记录提供的访问理由,并仅根据外部密钥管理合作伙伴的 Key Access Justifications 政策允许的理由原因代码完成请求。
创建和管理 Cloud EKM 密钥需要在 Cloud KMS 和 EKM 中进行相应的更改。对于手动管理的外部键和协调的外部键,这些相应更改的处理方式有所不同。通过互联网访问的所有外部密钥都需要手动管理。通过 VPC 网络访问的外部密钥可以手动管理或协调,具体取决于通过 VPC 连接的 EKM 的 EKM 管理模式。手动 EKM 管理模式用于手动管理的密钥。Cloud KMS EKM 管理模式用于协调的外部密钥。如需详细了解 EKM 管理模式,请参阅本页面中的手动管理的外部密钥和协调的外部密钥。
下图显示了 Cloud KMS 如何融入密钥管理模型。此图使用 Compute Engine 和 BigQuery 作为两个示例;您还可以查看支持 Cloud EKM 密钥的服务的完整列表。
手动管理的外部密钥
本部分全面概述了 Cloud EKM 如何与手动管理的外部密钥搭配使用。
- 您可以在受支持的外部密钥管理合作伙伴系统中创建或使用现有密钥。此密钥具有唯一的 URI 或密钥路径。
- 您向 Google Cloud 项目授予在外部密钥管理合作伙伴系统中使用该密钥的权限。
- 在 Google Cloud 项目中,您可以使用外部管理的密钥的 URI 或密钥路径创建 Cloud EKM 密钥版本。
- 您必须在 EKM 和 Cloud EKM 之间手动管理密钥轮替等维护操作。例如,需要直接在 EKM 和 Cloud KMS 中完成密钥版本轮替或密钥版本销毁操作。
在 Google Cloud 中,该密钥与其他 Cloud KMS 和 Cloud HSM 密钥一起显示,保护级别为 EXTERNAL
或 EXTERNAL_VPC
。Cloud EKM 密钥与外部密钥管理合作伙伴密钥协同工作以保护您的数据。外部密钥材料绝不会提供给 Google。
协调外部密钥
本部分简要介绍了 Cloud EKM 如何使用协调的外部密钥。
您需要通过 VPC 连接设置 EKM,并将 EKM 管理模式设置为 Cloud KMS。在设置过程中,您必须授权 EKM 访问您的 VPC 网络,并授权您的 Google Cloud 项目服务帐号访问 EKM 中的加密空间。您的 EKM 连接使用 EKM 的主机名和用于标识 EKM 中的资源的加密空间路径。
请在 Cloud KMS 中创建外部密钥。在启用了 Cloud KMS EKM 管理模式的情况下,通过 VPC 连接使用 EKM 创建 Cloud EKM 密钥时,系统会自动执行以下步骤:
- Cloud EKM 向您的 EKM 发送密钥创建请求。
- 您的 EKM 会创建所请求的密钥材料。此外部密钥材料会保留在 EKM 中,并且绝不会发送给 Google。
- 您的 EKM 会返回 Cloud EKM 的密钥路径。
- Cloud EKM 使用 EKM 提供的密钥路径创建 Cloud EKM 密钥版本。
可以从 Cloud KMS 启动对协调外部密钥的维护操作。例如,用于对称加密的协调外部密钥可以按设定的时间表自动轮替。新密钥版本的创建通过 Cloud EKM 在 EKM 中进行协调。您还可以使用 Google Cloud 控制台、gcloud CLI、Cloud KMS API 或 Cloud KMS 客户端库,通过 Cloud KMS 触发在 EKM 中创建或销毁密钥版本。
在 Google Cloud 中,密钥与您的其他 Cloud KMS 和 Cloud HSM 密钥一起显示,保护级别为 EXTERNAL_VPC
。Cloud EKM 密钥和外部密钥管理合作伙伴密钥协同工作,以保护您的数据。外部密钥材料绝不会提供给 Google。
通过 Cloud KMS 进行 EKM 密钥管理
协调外部密钥由 EKM 通过 VPC 连接实现,连接使用 Cloud KMS 中的 EKM 密钥管理。如果您的 EKM 支持 Cloud EKM 控制平面,则可以通过 VPC 连接从 Cloud KMS 为您的 EKM 启用 EKM 密钥管理,以创建协调的外部密钥。启用 Cloud KMS 中的 EKM 密钥管理后,Cloud EKM 可以在您的 EKM 中请求以下更改:
创建密钥:在 Cloud KMS 中使用兼容的 EKM 通过 VPC 连接创建外部管理的密钥时,Cloud EKM 会将密钥创建请求发送到您的 EKM。成功后,您的 EKM 会创建新的密钥和密钥材料,并返回供 Cloud EKM 用于访问密钥的密钥路径。
轮替密钥:通过 VPC 连接使用兼容的 EKM 轮替 Cloud KMS 中由外部管理的密钥时,Cloud EKM 会将您的轮替请求发送到您的 EKM。成功后,您的 EKM 会创建新的密钥材料,并返回供 Cloud EKM 用于访问新密钥版本的密钥路径。
销毁密钥:通过 VPC 连接使用兼容的 EKM 销毁 Cloud KMS 中外部管理的密钥的密钥版本时,Cloud KMS 会在 Cloud KMS 中安排密钥版本进行销毁。如果在安排销毁期限结束之前您未恢复密钥版本,Cloud EKM 将销毁自己在密钥中的加密材料部分,并向 EKM 发送销毁请求。
在 Cloud KMS 中销毁密钥版本后,使用此密钥版本加密的数据无法解密,即使 EKM 尚未销毁密钥版本也是如此。您可以在 Cloud KMS 中查看密钥的详细信息,了解 EKM 是否已成功销毁密钥版本。
通过 Cloud KMS 管理 EKM 中的密钥时,密钥材料仍然保留在您的 EKM 中。未经明确许可,Google 无法向您的 EKM 发出任何密钥管理请求。Google 无法更改您的外部密钥管理合作伙伴系统中的权限或 Key Access Justifications 政策。如果您在 EKM 中撤消 Google 的权限,则在 Cloud KMS 中尝试执行密钥管理的操作将失败。
兼容性
支持的密钥管理器
您可以将外部密钥存储在以下外部密钥管理合作伙伴系统中:
通过 Cloud EKM 支持 CMEK 的服务
以下服务支持与 Cloud KMS 集成用于外部 (Cloud EKM) 密钥:
- AlloyDB for PostgreSQL
- 应用集成
- Artifact Registry
- BigQuery
- Cloud Bigtable
- Cloud Composer
- Cloud Data Fusion
- Cloud Functions
- Cloud Logging: 日志路由器中的数据 和 Logging 存储空间中的数据
- Cloud Run
- Cloud Spanner
- Cloud SQL
- Cloud Storage
- Cloud Workstations
- Compute Engine: 永久性磁盘、 快照、 自定义映像、 和机器映像
- Contact Center AI 数据分析
- Database Migration Service: MySQL 迁移 - 写入数据库的数据 、 PostgreSQL 迁移 - 写入数据库的数据、PostgreSQL 到 AlloyDB 的迁移 - 写入数据库的数据、从 Oracle 到静态数据的 PostgreSQL 数据
- Dataflow
- Dataproc: 虚拟机磁盘上的 Dataproc 集群数据 以及虚拟机磁盘上的 Dataproc 无服务器数据
- Dataproc Metastore
- Document AI
- Eventarc
- Filestore
- Google Distributed Cloud Edge
- Google Kubernetes Engine: 虚拟机磁盘上的数据 和应用层 Secret
- Looker (Google Cloud Core)
- Pub/Sub
- Secret Manager
- 扬声器 ID (受限正式版)
- Vertex AI
- Vertex AI Workbench 实例
- 工作流
注意事项
使用 Cloud EKM 密钥时,Google 无法控制外部管理的密钥在外部密钥管理合作伙伴系统中的可用性。如果您丢失了自己在 Google Cloud 外部管理的密钥,Google 将无法恢复您的数据。
为您的 Cloud EKM 密钥选择位置时,请查看有关外部密钥管理合作伙伴和区域的准则。
通过互联网与外部服务通信可能会导致可靠性、可用性和延迟时间问题。对于对这些类型风险的容忍度较低的应用,请考虑使用 Cloud HSM 或 Cloud KMS 存储密钥材料。
如果外部密钥不可用,Cloud KMS 将返回
FAILED_PRECONDITION
错误,并在PreconditionFailure
错误详细信息中提供详细信息。启用数据审核日志记录,以保留与 Cloud EKM 相关的所有错误的记录。错误消息包含详细信息,有助于查明错误来源。一种常见错误的例子是,外部密钥管理合作伙伴未在合理的时间范围内响应请求。
您需要与外部密钥管理合作伙伴签订支持合同。Google Cloud 支持团队只能帮助您解决 Google Cloud 服务的问题,无法直接帮助解决外部系统的问题。有时,您必须与双方支持团队合作来排查互操作性问题。
Cloud EKM 可与 Hosted Private HSM 搭配使用,以创建与 Cloud KMS 集成的单租户 HSM 解决方案。如需了解详情,请选择支持单租户 HSM 的 Cloud EKM 合作伙伴,并查看托管专用 HSM 的要求。
限制
- 不支持自动轮替。
- 使用 API 或 Google Cloud CLI 创建 Cloud EKM 密钥时,该密钥不能有初始密钥版本。这不适用于使用 Google Cloud 控制台创建的 Cloud EKM 密钥。
- 除了受到 Cloud KMS 操作的配额限制之外,Cloud EKM 操作还受特定配额限制。
对称加密密钥
- 对称加密密钥仅支持以下各项:
- 支持的集成服务中的客户管理的加密密钥 (CMEK)。
- 直接使用 Cloud KMS 进行的对称加密和解密。
- 对于使用外部管理的密钥由 Cloud EKM 加密的数据,如果没有使用 Cloud EKM,则无法解密。
非对称签名密钥
- 非对称签名密钥限于一部分 Cloud KMS 算法。
- 非对称签名密钥仅适用于:
- 为 Cloud EKM 密钥设置非对称签名算法后,便无法修改该算法。
- 必须在
data
字段上签名。
外部密钥管理器和区域
Cloud EKM 必须能够快速访问您的密钥,以避免出错。创建 Cloud EKM 密钥时,请选择一个地理位置接近外部密钥管理合作伙伴密钥位置的 Google Cloud 位置。如需详细了解该合作伙伴的位置可用性,请参阅合作伙伴的文档。
- 通过互联网的 Cloud EKM:可在 Cloud KMS 支持的任何 Google Cloud 位置使用,但
global
除外 - 通过 VPC 的 Cloud EKM:仅在 Cloud KMS 支持的区域位置可用
请参阅您的外部密钥管理合作伙伴的文档,以确定他们支持哪些位置。
多区域使用
将外部管理的密钥用于多区域时,密钥的元数据可在多区域内的多个数据中心使用。此元数据包含与外部密钥管理合作伙伴通信所需的信息。如果您的应用从一个数据中心切换到多区域中的另一个数据中心,新数据中心将发起密钥请求。新数据中心的网络特征可能与以前的数据中心不同,包括与外部密钥管理合作伙伴的距离以及超时的可能性。如果您选择的外部密钥管理器对该多区域的所有区域提供低延迟,我们建议您仅将多区域和 Cloud EKM 搭配使用。
合作伙伴管理的 EKM
借助合作伙伴管理的 EKM,您可以通过负责管理 EKM 系统的可信主权合作伙伴使用 Cloud EKM。借助合作伙伴管理的 EKM,您的合作伙伴可以创建和管理您在 Cloud EKM 中使用的密钥。合作伙伴可确保您的 EKM 符合主权要求。
当您与主权合作伙伴建立合作关系后,合作伙伴将在 Google Cloud 和您的 EKM 中预配资源。这些资源包括一个 Cloud KMS 项目(用于管理 Cloud EKM 密钥),以及一个通过 VPC 连接的 EKM(针对 Cloud KMS 中的 EKM 密钥管理进行配置)。您的合作伙伴会根据您的数据驻留要求在 Google Cloud 位置创建资源。
每个 Cloud EKM 密钥都包含 Cloud KMS 元数据,这样 Cloud EKM 就可以向您的 EKM 发送请求,以使用始终不会离开 EKM 的外部密钥材料来执行加密操作。对称 Cloud EKM 密钥还包含始终不会离开 Google Cloud 的 Cloud KMS 内部密钥材料。如需详细了解 Cloud EKM 密钥的内部和外部,请参阅本页面中的 Cloud EKM 的工作原理。
如需详细了解合作伙伴管理的 EKM,请参阅配置合作伙伴管理的 Cloud KMS。
监控 Cloud EKM 用量
您可以使用 Cloud Monitoring 来监控 EKM 连接。以下指标可以帮助您了解 EKM 使用情况:
cloudkms.googleapis.com/ekm/external/request_latencies
cloudkms.googleapis.com/ekm/external/request_count
如需详细了解这些指标,请参阅 cloudkms 指标。您可以创建信息中心来跟踪这些指标。如需了解如何设置信息中心以监控 EKM 连接,请参阅监控 EKM 用量。
获取支持
如果您遇到 Cloud EKM 问题,请与支持团队联系。
后续步骤
创建 EKM 连接以通过 VPC 使用 EKM。
开始学习使用 API。
仔细阅读 Cloud KMS API 参考文档。
了解 Cloud KMS 中的日志记录。日志记录基于操作,适用于保护级别为 HSM 和软件的密钥。
如需了解有关配置与 Cloud EKM 集成的外部密钥管理器 (EKM) 服务部署的建议,请参阅可靠部署 Cloud EKM 服务的参考架构。