Cloud KMS 资源

本页面介绍了 Cloud KMS 中的每种资源类型。 Cloud KMS 资源在创建后无法移至其他位置。您可以详细了解资源层次结构。

键

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

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

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

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

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

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

在以下部分中,每种格式都会在适当的位置显示。

类型

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

在对称加密或签名中,使用相同的密钥来加密和解密数据,或对签名进行签名和验证。

在非对称加密或签名中,密钥由公钥和私钥组成。私钥及其对应的公钥称为密钥对。

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

密钥的类型是密钥用途的一个组成部分,在创建密钥后无法更改。

用途

密钥的用途表示密钥可用于哪种加密操作,例如对称加密/解密或非对称签名。您可以在创建密钥时选择用途,并且密钥的所有版本都具有相同的用途。密钥创建后,其用途便无法更改。如需详细了解密钥用途,请参阅密钥用途。

保护级别

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

  • 软件(SOFTWARE)
  • 多租户 HSM (HSM)
  • 单租户 HSM (HSM_SINGLE_TENANT)
  • 外部 (EXTERNAL)
  • External_VPC (EXTERNAL_VPC)

密钥创建后,其保护级别便无法更改。

主要版本

密钥可以同时有多个密钥版本处于有效和启用状态。对称加密密钥具有主密钥版本,如果您未指定密钥版本,则默认使用该密钥版本来加密数据。

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

对于对称密钥和非对称密钥,您可以使用任何已启用的密钥版本来加密和解密数据,或对签名进行签名和验证。

密钥版本

密钥的每个版本都包含用于加密或签名的密钥材料。每个版本都会分配一个版本号,从 1 开始。轮替密钥会创建新的密钥版本。您可以详细了解如何轮替密钥。

如需解密数据或验证签名,您必须使用用于加密或签署数据的同一密钥版本。如需查找密钥版本的资源 ID,请参阅检索密钥的资源 ID。

您可以停用或销毁单个密钥版本,而不会影响其他版本。您还可以停用或销毁给定密钥的所有密钥版本。

您无法独立于密钥的有效权限来控制对密钥版本的访问权限。授予对某个密钥的访问权限,即授予对该密钥的所有已启用版本的访问权限。

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

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

州

每个密钥版本都有一个状态,用于指示其状态。通常,密钥的状态为以下状态之一:

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

密钥版本只有在启用后才能使用。 处于除“已销毁”以外的任何状态的密钥版本都会产生费用。 如需详细了解密钥版本状态以及版本如何在这些状态之间转换,请参阅密钥版本状态。

算法

密钥版本的算法决定了密钥材料的创建方式以及加密操作所需的参数。对称密钥和非对称密钥使用不同的算法。加密和签名使用不同的算法。

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

无论采用何种算法,Cloud KMS 都会使用概率加密,因此使用同一密钥版本对同一明文进行两次加密不会返回相同的密文。

密钥环

密钥环在特定 Google Cloud位置组织密钥,并允许您管理对密钥组的访问权限控制。密钥环的名称在 Google Cloud 项目中不必是唯一的,但在给定位置必须是唯一的。 密钥环不会产生任何费用。 如需查看可用位置的列表,请参阅 Cloud KMS 位置。

密钥句柄

密钥句柄是一种 Cloud KMS 资源,可帮助您安全地跨越职责分离,使用 Autokey 为 CMEK 创建新的 Cloud KMS 密钥。在资源项目中创建密钥句柄会触发在密钥项目中创建 Cloud KMS 密钥,以便进行按需 CMEK 设置。

密钥句柄包含对所创建的 Cloud KMS 密钥的引用。您可以从密钥句柄中检索由 Autokey 创建的密钥的 Cloud KMS 资源 ID。Terraform 等基础设施即代码工具可以与密钥句柄搭配使用,无需提权即可管理受 CMEK 保护的资源。

密钥句柄在 Google Cloud 控制台中不可见,但如需将 Autokey 与 REST API 或 Terraform 搭配使用,您必须使用密钥句柄。如需详细了解如何使用密钥句柄,请参阅使用 Cloud KMS Autokey 创建受保护的资源。

Autokey 配置

Autokey 配置是文件夹级或项目级资源,用于定义是否为文件夹中的资源启用 Autokey。Autokey 配置还定义了哪个密钥项目用于 Cloud KMS Autokey 创建的密钥,以保护该文件夹中的资源。启用 Autokey 时,您需要在资源文件夹或项目中创建或更新 Autokey 配置。如需详细了解如何使用 Autokey 配置,请参阅启用 Cloud KMS Autokey。

EKM 连接

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

检索资源的 ID

某些 API 调用和 gcloud CLI 可能需要您通过资源 ID 来引用密钥环、密钥或密钥版本,资源 ID 是表示完全限定的 CryptoKeyVersion 名称的字符串。资源 ID 具有层次结构,类似于文件系统路径。密钥的资源 ID 还包含有关密钥环和位置的信息。

对象 资源 ID 格式
密钥环 projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING
密钥 projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
密钥版本 projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION
密钥句柄 projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE
EKM 连接 projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION
Autokey 配置 folders/FOLDER_NUMBER/autokeyConfig
projects/PROJECT_ID/autokeyConfig

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

组织资源

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

  • 按环境(例如 prod、test 和 develop)划分。
  • 按工作领域(例如 payroll 或 insurance_claims)。
  • 按数据敏感度或特征(例如 unrestricted、restricted、confidential、top-secret)。

资源生命周期

在某些情况下,您可以删除密钥环、密钥和密钥版本。删除资源会将其从 Cloud KMS 资源列表中移除。销毁密钥版本会永久删除其底层密钥材料。删除密钥环后,其名称可重复使用,但已删除密钥的名称无法重复使用。这样可确保密钥版本的资源标识符是唯一的,并且始终指向该密钥版本的原始密钥材料,除非该密钥版本已被销毁。 您可以存储不限数量的密钥环、已启用或已停用的密钥,以及已启用、已停用或已销毁的密钥版本。 如需了解详情,请参阅价格和配额。

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

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

后续步骤