Cloud KMS 资源

本主题讨论 Cloud KMS 中的每一类资源。您可以详细了解资源层次结构

Cloud KMS 密钥是包含一个或多个密钥版本以及密钥的元数据的命名对象。密钥保存在于与特定位置绑定的一个密钥环上。

您可以使用 Identity and Access Management (IAM) 权限和角色来允许和拒绝对密钥的访问。您无法管理对密钥版本的访问权限。

停用或销毁一个密钥会停用或销毁每个密钥版本。

以下部分介绍密钥的属性。

根据上下文,密钥的属性会以不同的格式显示。

  • 使用 Google Cloud CLI 或 Cloud Key Management Service API 时,该属性显示为一个大写字母字符串,例如 SOFTWARE
  • 使用 Google Cloud 控制台时,属性显示为一个带有初始大写的字符串,例如 Software

以下各部分会在适当的地方显示每一种格式。

类型

密钥的类型决定了密钥是用于对称加密操作还是非对称加密操作。

在对称加密中,整个密钥都用于加密或解密数据。对称密钥不能用于签名。

在非对称加密或签名中,密钥由公钥和私钥组成。

  • 私钥被视为敏感数据,用于解密数据或签名(具体取决于密钥配置的用途)。
  • 公钥不被视为敏感数据,用于加密数据或验证签名(具体取决于密钥配置的用途)。

    密钥创建后,其类型便无法更改。

密钥的类型是其用途的一个组成部分。

目的

密钥的用途决定了密钥是否可用于加密或签名。您可以在创建密钥时选择用途,并且所有版本都具有相同的用途。

对称密钥的用途始终是对称加密/解密

非对称密钥的用途是非对称加密/解密非对称签名

密钥创建后,其用途便无法更改。

主要版本

一个密钥可以有多个版本,但对称密钥最多只能有一个主要密钥版本。如果您未指定密钥版本,则主密钥版本用于加密数据。

非对称密钥没有主要版本;在使用密钥时,您必须指定版本。

对于对称密钥和非对称密钥,您可以使用任何已启用的密钥版本来加密或解密数据,无论其是否为主要版本。

密钥版本

密钥的每个版本都包含用于加密或签名的密钥材料。密钥的版本以整数表示,从 1 开始。要解密数据或验证签名,您必须使用用于加密数据或对数据进行签名的同一密钥版本。如需查找和引用密钥版本的资源 ID,请参阅检索密钥的资源 ID

您可以停用或销毁一个密钥版本,而不影响其他版本。轮替密钥会创建一个新版本。您可以详细了解轮替密钥

停用或销毁一个密钥会停用或销毁该密钥的所有版本。您可以选择性地停用一个密钥版本,而不影响其他密钥版本。

您无法管理对密钥版本的访问权限。授予对密钥的访问权限也会授予对其所有已启用版本的访问权限。

出于安全考虑,Google Cloud 主账号无法查看或导出由密钥版本表示的原始加密密钥材料。Cloud KMS 会代表您访问密钥材料。

以下部分介绍密钥版本的属性。

状态

密钥版本的state始终是以下其中一项:

  • 已启用
  • 已停用
  • 已安排销毁
  • 已销毁

密钥版本仅在启用后才能使用。处于已销毁状态以外的任何状态的密钥版本都会产生费用

保护级别

密钥版本的保护级别决定了密钥的静态存储环境。保护级别为以下之一:

  • 软件(Google Cloud CLI 和 Cloud Key Management Service API 中的 SOFTWARE
  • HSM
  • 外部(Google Cloud CLI 和 Cloud Key Management Service API 中的 EXTERNAL
  • External_VPC(Google Cloud CLI 和 Cloud Key Management Service API 中的 EXTERNAL_VPC

虽然保护级别是密钥版本的属性,但在密钥创建后便无法更改。

算法

密钥版本的算法决定了密钥材料的创建方式和加密操作所需的参数。对称密钥和非对称密钥支持不同的算法。

如果您在创建新密钥版本时未指定算法,则使用之前版本中的算法。

无论使用何种算法,Cloud KMS 都使用概率加密,以便使用相同密钥版本加密两次的同一明文不会加密为同一密文。

密钥环

密钥环在特定 Google Cloud 位置组织密钥,并允许您管理对密钥组的访问权限控制。密钥环的名称在 Google Cloud 项目中不必是唯一的,但在给定位置必须是唯一的。密钥环一经创建便无法删除。密钥环不会产生存储费用

EKM 连接

EKM 连接是一种 Cloud KMS 资源,用于组织与特定 Google Cloud 位置中的本地 EKM 的 VPC 连接。借助 EKM 连接,您可以通过 VPC 网络连接到外部密钥管理器并使用这些密钥。创建 EKM 连接后,您无法将其删除。EKM 连接不会产生存储费用

检索资源的 ID

某些 API 调用和 gcloud CLI 可能会要求您按资源 ID(一个表示完全限定的 CryptoKeyVersion 名称的字符串)来引用密钥环、密钥或密钥版本。资源 ID 是分层的,类似于文件系统路径。密钥的资源 ID 还包含有关密钥环和位置的信息。

对象 资源 ID 格式
密钥环 projects/project-id/locations/location/keyRings/keyring
projects/project-id/locations/location/keyRings/keyring/cryptoKeys/key
密钥版本 projects/project-id/locations/location/keyRings/keyring/cryptoKeys/key/cryptoKeyVersions/version
EKM 连接 projects/project-id/locations/location/ekmConnections/ekmConnection

如需了解详情,请参阅获取 Cloud KMS 资源 ID

组织资源

在规划如何组织 Google Cloud 项目中的资源时,请考虑您的业务规则以及计划如何管理访问权限。您可以授予对单个密钥、密钥环上的所有密钥或项目中所有密钥的访问权限。以下是一些常见的组织模式:

  • 按环境(例如 prodtestdevelop)。
  • 按工作领域(例如 payrollinsurance_claims)。
  • 按数据敏感度或特征(例如 unrestrictedrestrictedconfidentialtop-secret)。

资源生命周期

您无法删除密钥环、密钥和密钥版本。这样可以确保密钥版本的资源标识符是唯一的,并且始终指向该密钥版本的原始密钥材料(除非该密钥版本已被销毁)。 您可以存储任意数量的密钥环、已启用或已停用的密钥以及已启用、已停用或已销毁的密钥版本。如需了解详情,请参阅价格配额

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

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

后续步骤