客户管理的加密密钥 (CMEK)

本文档简要介绍了如何使用 Cloud Key Management Service (Cloud KMS) 执行以下操作: 客户管理的加密密钥 (CMEK)。使用 Cloud KMS CMEK 可获得 对用于保护您的静态数据的密钥拥有所有权和控制权, Google Cloud

CMEK 与 Google 拥有的密钥和 Google 管理的密钥的比较

您创建的 Cloud KMS 密钥是客户管理的密钥。Google 使用您密钥的服务据称具有 CMEK 集成。您可以 直接或通过 Cloud KMS Autokey预览版)。 Google 的默认静态加密与 客户管理的密钥:

密钥类型 由客户管理,通过 Autokey(预览版 由客户管理(人工) 由 Google 拥有和由 Google 管理(Google 的默认设置)
可以查看密钥元数据
密钥所有权1 客户 客户 Google
可以管理和控制2按键3 密钥创建和分配是自动执行的。客户手动控制设置为 完全受支持。 客户,仅限手动控制 Google
满足针对客户管理的密钥的监管要求
钥匙共享 对客户独有 对客户独有 来自多个客户的数据通常使用相同的密钥加密密钥 (KEK)。
控制密钥轮替
CMEK 组织政策
价格 因具体情况而异 - 如需了解详情,请参阅价格。 Autokey 无需额外付费 (预览版 因具体情况而异 - 如需了解详情,请参阅价格 免费

1 从法律上讲,密钥的所有者会指明谁拥有权利 键。客户拥有的密钥受到严格限制 或不允许 Google 访问

2 对按键的控制是指设置按键类型和按键方式 使用键、检测差异并根据需要规划纠正措施。 您可以控制密钥,但需将密钥的管理工作委托给第三方。

3 密钥的管理包括以下功能:

  • 创建密钥。
  • 选择密钥的保护级别。
  • 分配管理密钥的权限。
  • 控制对密钥的访问权限。
  • 控制密钥的使用。
  • 设置和修改密钥的轮替周期,或触发密钥轮替。
  • 更改密钥状态。
  • 销毁密钥版本。

使用 Google 拥有的密钥和由 Google 管理的密钥进行默认加密

存储在 Google Cloud 中的所有数据均使用同一个 Google 用来管理我们自己的加密数据的强化密钥管理系统。 这些密钥管理系统提供严格的密钥访问控制和审核功能, 并使用 AES-256 加密标准对静态用户数据进行加密。Google 拥有 并控制用于加密数据的密钥。您无法查看或管理这些内容 或查看密钥使用情况日志。来自多个客户的数据可能使用相同的 密钥加密密钥 (KEK)。您无需进行任何设置、配置或管理。

如需详细了解 Google Cloud 中的默认加密,请参阅 默认加密级别: REST

客户管理的加密密钥 (CMEK)

客户管理的加密密钥是您拥有的加密密钥。这个 功能让您可以更好地控制用于加密数据的密钥 在受支持的 Google Cloud 服务中存储静态数据, 数据加密边界您可以直接在以下位置管理 CMEK: 或使用 Cloud KMS 中的 Cloud KMS Autokey预览版)。

支持 CMEK 的服务具有 CMEK 集成。CMEK 集成是一项 该技术可以代替 Google 默认的 加密。设置 CMEK 后,要执行加密和解密操作 资源由资源服务代理处理。因为 CMEK 集成了 服务负责处理对加密资源的访问, 可以透明地开展,无需最终用户进行任何操作。在使用 访问资源的方式与使用 Google 的默认加密方式类似。 如需详细了解 CMEK 集成,请参阅 CMEK 集成服务提供的内容

您可以为每个密钥使用不受限制的密钥版本。

如需了解服务是否支持 CMEK 密钥,请参阅 支持的服务列表

使用 Cloud KMS 会产生与密钥版本数量和 进行加密操作。如需详细了解 请参阅 Cloud Key Management Service 价格。没有最低购买金额,或 承诺。

搭配使用客户管理的加密密钥 (CMEK) 与 Cloud KMS Autokey

Cloud KMS Autokey 通过自动执行 预配和分配有了 Autokey,密钥环和密钥 在资源创建过程中按需生成的内容,以及使用 用于加密和解密操作的密钥会自动 必要的 Identity and Access Management (IAM) 角色。

使用 Autokey 生成的密钥可帮助您始终与 数据安全方面的业界标准和推荐做法,包括 密钥数据位置一致性、密钥特异性、硬件安全模块 (HSM) 保护级别、密钥轮替时间表和职责分离。 Autokey 会创建同时遵循一般准则和 特定于 Google Cloud 服务的资源类型的指南, 与 Autokey 集成。使用 Autokey 函数创建的键 与具有相同设置的其他 Cloud HSM (Cloud HSM) 密钥相同, 包括为客户管理的密钥的监管要求提供支持。对于 有关 Autokey 的详细信息,请参阅 Autokey 概览

何时使用客户管理的密钥

您可以在以下位置使用手动创建的 CMEK 密钥或由 Autokey 创建的密钥: 兼容服务,帮助您实现以下目标:

  • 拥有加密密钥。

  • 控制和管理加密密钥,包括选择位置、 保护级别、创建、访问权限控制、轮替、使用和销毁。

  • 在 Google Cloud 之外生成或维护密钥材料。

  • 设置有关密钥必须在何处使用的政策。

  • 在用户退出或退出账号时,有选择地删除受密钥保护的数据 以修复安全事件(密钥销毁)。

  • 使用客户独有的密钥,在数据周围建立加密边界。

  • 创建客户独有的密钥来建立加密 数据边界。

  • 对加密进行日志管理和数据访问 键。

  • 符合现行或未来要求达成以上任一目标的法规。

CMEK 集成服务提供什么

与 Google 的默认加密方式一样,CMEK 也是服务器端对称信封 客户数据加密与 Google 默认加密方式的区别在于 CMEK 保护使用由客户控制的密钥。已创建 CMEK 密钥 使用 Autokey 可手动或自动 服务集成

  • 具有 CMEK 集成的 Cloud 服务 使用您在 Cloud KMS 中创建的密钥来保护资源。

  • 与 Cloud KMS 集成的服务使用对称 加密。

  • 密钥的保护级别在 完全由您控制

  • 所有密钥都是 256 位 AES-GCM。

  • 密钥材料绝不会离开 Cloud KMS 系统边界。

  • 您的对称密钥用于对信封进行加密和解密 加密模型。

集成 CMEK 的服务可跟踪密钥和资源

  • 受 CMEK 保护的资源具有一个元数据字段,用于保存 密钥。通常,这些信息会显示在 资源元数据。

  • 密钥跟踪可让您了解密钥都有哪些资源 和保护。

  • 密钥可以按项目列出

集成 CMEK 的服务可处理资源访问

在 CMEK 集成的服务中创建或查看资源的主账号 不需要 Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) 用于保护 资源。

每个项目资源都有一个称为 服务代理 使用客户管理的密钥执行加密和解密。在您 向服务代理授予访问权限 发送给 CMEK,该服务代理将使用该密钥来保护您客户的资源 选择。

请求者想要访问由客户管理的加密资源 密钥,服务代理会自动尝试对请求的资源进行解密。 如果服务代理有权使用密钥进行解密,但您没有 停用或销毁密钥时,服务代理会提供加密和解密 密钥的使用。否则,请求将失败。

不需要额外的请求者访问权限,而且由服务代理负责处理 在后台进行的加密和解密, 访问资源的方式与使用 Google 的默认加密方式类似。

为 CMEK 使用 Autokey

对于要使用 Autokey 的每个文件夹,都有一个一次性 设置流程。您可能需要选择一个文件夹 Autokey 支持,以及与 Autokey 关联的密钥项目 存储该文件夹的密钥。如需详细了解如何启用 Autokey,请参阅启用 Cloud KMS Autokey

与手动创建 CMEK 密钥相比,Autokey 不需要 以下设置步骤:

  • 密钥管理员无需手动创建密钥环或密钥, 向加密和解密数据的服务代理授予特权。通过 Cloud KMS 服务代理会代为执行这些操作。

  • 开发者无需提前规划,在资源请求密钥之前 创建过程。他们可以根据需要自行向 Autokey 请求密钥, 同时仍保持 职责分离

使用 Autokey 时,只需一步:开发者请求 将密钥作为资源创建的一部分返回的键与 预期的资源类型。

使用 Autokey 创建的 CMEK 密钥的行为方式与 针对以下功能手动创建的密钥:

  • 与 CMEK 集成的服务具有相同的行为方式。

  • 密钥管理员可以继续监控已创建和使用的所有密钥 使用 Cloud KMS 信息中心 密钥使用情况跟踪

  • 组织政策与 Autokey 的使用方式相同 (包括手动创建的 CMEK 密钥)。

如需简要了解 Autokey,请参阅 Autokey 概览。更多信息 如需了解如何使用 Autokey 创建受 CMEK 保护的资源,请参阅 使用 Cloud KMS Autokey 创建受保护的资源

手动创建 CMEK 密钥

手动创建 CMEK 密钥、密钥环、密钥和资源位置时 必须在创建资源之前进行规划和创建。然后,您可以使用 以保护资源

如需了解启用 CMEK 的确切步骤,请参阅相关 Google Cloud 服务的文档。有些服务(比如 GKE) 具有多个 CMEK 集成,以保护不同类型的相关数据 。您可以按照以下步骤操作:

  1. 创建 Cloud KMS 密钥环或选择现有的密钥环。时间 创建密钥环时,请选择一个地理位置靠近 您要保护的资源密钥环可以与 或位于不同的项目中。使用不同的 项目可让您更好地控制 IAM 角色, 支持职责分离

  2. 您可以在所选密钥环中创建或导入 Cloud KMS 密钥。这个 是 CMEK 密钥。

  3. 您授予 CryptoKey Encrypter/Decrypter IAM 角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter) 复制到 服务账号。

  4. 创建资源时,请将资源配置为使用 CMEK 密钥。对于 例如,您可以将 GKE 集群配置为使用 CMEK 保护磁盘的启动磁盘上的静态数据 节点

请求者无需直接访问数据 CMEK 密钥。

只要服务代理拥有 CryptoKey Encrypter/Decrypter 角色,该服务可以加密和解密其数据。如果您撤消此角色,或者 如果您停用或销毁 CMEK 密钥,则无法访问该数据。

CMEK 合规性

某些服务集成了 CMEK,并允许您自行管理密钥。 有些服务改为提供 CMEK 合规性,即临时数据和数据 临时密钥绝不会写入磁盘。如需 请参阅 与 CMEK 兼容的服务

密钥使用情况跟踪

密钥使用情况跟踪会显示 由 CMEK 密钥保护的组织。借助密钥使用情况跟踪功能,您可以 可以查看受保护的资源、项目和独特的 Google Cloud 产品 以及密钥是否正在使用中。如需详细了解 密钥使用情况跟踪,请参阅查看密钥使用情况

CMEK 组织政策

Google Cloud 提供了组织政策限制条件 在整个组织资源中使用 CMEK。这些限制为 组织管理员的控制权 要求使用 CMEK,并指定 对用于 CMEK 的 Cloud KMS 密钥的限制和控制 包括:

如需详细了解 CMEK 的组织政策,请参阅 CMEK 组织政策

后续步骤