本主题讨论 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 项目中的资源时,请考虑您的业务规则以及计划如何管理访问权限。您可以授予对单个密钥、密钥环上的所有密钥或项目中所有密钥的访问权限。以下是一些常见的组织模式:
- 按环境(例如
prod
、test
、develop
)。 - 按工作领域(例如
payroll
或insurance_claims
)。 - 按数据敏感度或特征(例如
unrestricted
、restricted
、confidential
、top-secret
)。
资源生命周期
您无法删除密钥环、密钥和密钥版本。这样可以确保密钥版本的资源标识符是唯一的,并且始终指向该密钥版本的原始密钥材料(除非该密钥版本已被销毁)。 您可以存储任意数量的密钥环、已启用或已停用的密钥以及已启用、已停用或已销毁的密钥版本。如需了解详情,请参阅价格和配额。
如需了解如何销毁或恢复密钥版本,请参阅销毁和恢复密钥版本。
如果您安排了关停 Google Cloud 项目,将无法访问该项目的资源(包括 Cloud KMS 资源),除非您按照恢复项目的步骤恢复该项目。