对象层次结构

Cloud Key Management Service 在专为实现实用简洁的访问控制管理而设计的层次结构中存储加密密钥。对此结构中资源的访问权限由 Cloud IAM 管理。

此层次结构中自上到下的层级包括:

  1. 项目
  2. 位置
  3. 密钥环
  4. 密钥
  5. 密钥版本

项目

与所有其他 Google Cloud Platform 资源一样,Cloud KMS 资源属于项目。这意味着对包含 Cloud KMS 资源的任何项目具有原初 IAM 角色的帐号,对这些资源也具有相应的权限。因此,您不妨从独立于任何其他 GCP 资源的项目运行 Cloud KMS

位置

在项目中,您可以在多个位置创建 Cloud KMS 资源。这些位置代表数据中心地理位置,在其中处理针对给定资源向 Cloud KMS 发出的请求以及存储相应的加密密钥。

Cloud KMS 资源有一个称为 global 的特殊位置。在 global 位置创建 Cloud KMS 资源后,您可以从多个数据中心使用这些资源。

如需了解您为 Cloud KMS 资源选择的托管位置对网络性能有何影响,请参阅 Cloud KMS 位置

密钥环

资源

密钥环是用于整理密钥的分组。密钥环属于 GCP 项目并位于特定位置。 密钥从包含它们的密钥环继承权限。通过在密钥环中将具有相关权限的密钥组合在一起,您可以在密钥环层级授予、撤消或修改这些密钥的权限,而无需单独对每个密钥执行操作。

密钥环资源 ID

某些 API 调用和 gcloud 命令行工具命令可能需要密钥环的资源 ID,此资源 ID 是完全限定的 KeyRing 名称。此值区分大小写且格式如下

projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]

您可以使用 GCP Console 检索密钥环资源 ID:

  1. 打开 GCP Console 中的加密密钥页面。

    打开“加密密钥”页面

  2. 找到要检索其资源 ID 的密钥环,点击旁边的更多图标(3 个垂直点)。

  3. 点击复制资源 ID。密钥环的资源 ID 会复制到剪贴板。

密钥

密钥是表示用于特定用途的加密密钥的命名对象。随着新密钥版本的创建,密钥材料(用于加密的实际位)也会随着时间的推移而改变。

密钥用于保护某些数据主体。您可以使用相同的密钥来加密文件集合,而且对该密钥具有解密权限的人员能够解密这些文件。

密钥资源 ID

某些 API 调用和 gcloud 命令行工具命令可能需要密钥的资源 ID,此资源 ID 是完全限定的 CryptoKey 名称。此值区分大小写且格式如下:

projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]

您可以使用 GCP Console 检索密钥资源 ID:

  1. 打开 GCP Console 中的加密密钥页面。

    打开“加密密钥”页面

  2. 点击包含密钥的密钥环的名称。

  3. 找到要检索其资源 ID 的密钥,点击旁边的更多图标(3 个垂直点)。

  4. 点击复制资源 ID。密钥的资源 ID 会复制到剪贴板。

密钥版本

密钥版本表示在某个时间点与密钥关联的密钥材料。每个密钥可以有任意多个版本,但必须至少有一个版本。版本按顺序编号,从 1 开始。

我们仍以一组加密文件为例,文件可以使用相同密钥的不同版本加密。某些文件可能使用版本 1 加密,而其他文件可能使用版本 2 加密。当您要求 Cloud KMS 解密其中任何一个文件时,您需要指定加密该文件所使用的密钥的名称(而非特定版本)。Cloud KMS 会自动识别加密所使用的版本,并使用该版本来解密文件(如果该版本仍处于已启用状态)。

与密钥版本关联的密钥材料具有类型,用于指示密钥长度和将与密钥搭配使用的算法。目前,所有密钥都是 256 位高级加密标准 (AES-256) 密钥,采用伽罗瓦计数器模式 (GCM)。Cloud KMS 使用概率加密,以便使用相同密钥版本加密两次的同一明文不会加密为同一密文。目前,密钥模式不会通过我们的 API 公开。

密钥版本具有状态,这些状态包括“已启用”、“已停用”、“已安排销毁”或“已销毁”。密钥的任何版本都可用于解密,除非该版本的状态明确变为已停用、已销毁或已计划销毁。

出于安全考虑,任何情况下都无法查看或导出由密钥版本表示的原始加密密钥材料。密钥材料只能在已获授权的用户或应用调用 Cloud KMS 服务时用于加密或解密数据。

对称密钥在任何时间点都有一个主要密钥版本。这是 Cloud KMS 用于加密数据的版本。通过创建新密钥版本并使该版本成为主要版本,您可以轮替对称密钥,而不会失去对使用以前版本加密的任何数据的访问权限。非对称密钥没有主要版本。与对称密钥相比,非对称密钥也有不同的轮替注意事项

密钥版本资源 ID

某些 API 调用和 gcloud 命令行工具命令可能需要密钥版本的资源 ID,此资源 ID 是完全限定的 CryptoKeyVersion 名称。此值区分大小写且格式如下:


projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]

您可以使用 GCP Console 检索密钥版本资源 ID:

  1. 打开 GCP Console 中的加密密钥页面。

    打开“加密密钥”页面

  2. 点击包含密钥的密钥环的名称。

  3. 点击包含密钥版本的密钥的名称。

  4. 找到要检索其资源 ID 的密钥版本,点击旁边的更多图标(3 个垂直点)。

  5. 点击复制资源 ID。密钥版本的资源 ID 会复制到剪贴板。

示例层次结构

您选择的层次结构类型取决于您的用例、应用和所需安全控制等因素。

示例 1

公司具有多个应用,每个应用都包含受 Cloud KMS 保护的密钥数据。层次结构可以包含每种开发环境(例如 prodtestdev)的密钥环。每个密钥环可以为每个应用包含一个密钥。

层次结构的配置如下:

  • 密钥环(每种环境一个):prodtestdev

  • 密钥环 prod 的密钥(每个应用一个):PayrollExpense_reportsInsurance_claims
    其他密钥环对于它们保护的每个应用都有一组类似的密钥。

  • 每个密钥都可以根据业务需求独立轮替。

示例 2

公司具有许多受 Cloud KMS 保护的数据集。层次结构可以包含每种数据分类(例如机密敏感受限)的密钥环。每个密钥环可以为每个数据集包含一个密钥。

层次结构的配置如下:

  • 密钥环(每个分类级别一个):机密敏感受限

  • 密钥环机密的密钥(每个数据集一个):dataset_1dataset_2dataset_3 等。
    其他密钥环对于它们保护的所有数据集都有一组类似的密钥。

  • 每个密钥都可以根据业务需求独立轮替。

对象的生命周期

为防止资源名称发生冲突,密钥环和密钥资源不可删除。密钥版本也不能删除,但密钥版本材料可予以销毁,以使资源无法再使用。无法删除密钥环、密钥和密钥版本可确保密钥版本资源标识符始终仅指向其原始密钥材料。密钥环和密钥没有可计费费用或配额限制,因此它们的持续存在不会影响费用或生产环境限制。

如需了解如何销毁密钥版本,请参阅销毁和恢复密钥版本

如果您安排了关停 Google Cloud Platform 项目,将无法访问该项目的资源(包括 Cloud KMS 资源),除非您按照恢复项目的步骤恢复该项目。

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud KMS 文档