AWS KMS key 层次结构 - AWS Key Management Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS KMS key 层次结构

您的密钥层次结构从顶级逻辑密钥(AWS KMS key)开始。KMS 密钥表示顶级密钥材料的容器,在 AWS 服务命名空间中使用 Amazon Resource Name (ARN) 进行唯一定义。ARN 包含唯一生成的密钥标识符,即密钥 ID。KMS 密钥根据用户通过 AWS KMS 发起的请求创建。收到后,AWS KMS 会请求创建初始 HSM 备用密钥 (HBK),并将其放入 KMS 密钥容器中。HBK 在域中的 HSM 上生成,并且设计为永远不会以明文形式从 HSM 导出。相反地,HBK 在 HSM 管理的域密钥下以加密形式导出。这些导出的 HBK 称为导出的密钥令牌 (EKT)。

EKT 将导出到高持久性、低延迟的存储中。例如,假设您收到逻辑 KMS 密钥的 ARN。这表示您的密钥层次结构或加密上下文的顶部。您可以在账户中创建多个 KMS 密钥,并设置 KMS 密钥的策略,如同任何其他 AWS 命名资源一样。

在特定 KMS 密钥的层次结构中,可以将 HBK 视为 KMS 密钥的一个版本。当您想要通过 AWS KMS 轮换 KMS 密钥时,将创建新的 HBK 并将其与 KMS 密钥关联,作为 KMS 密钥的活动 HBK。旧的 HBK 将被保留,并可用于解密和验证以前受保护的数据,但只有活动的加密密钥才能用于保护新信息。

AWS KMS key 层次结构。

您可以通过 AWS KMS 请求使用 KMS 密钥直接保护信息,也可以请求在 KMS 密钥下受保护的其他 HSM 生成的密钥。这些密钥称为客户数据密钥或 CDK。CDK 可以加密为密文 (CT) 返回、以明文形式返回,或两者兼有。在 KMS 密钥(客户提供的数据或 HSM 生成的密钥)下加密的所有对象只能在 HSM 上经由通过 AWS KMS 的调用进行解密。

返回的密文或解密的负载永远不会存储在 AWS KMS 中。该信息通过与 AWS KMS 的 TLS 连接返回给您。这也适用于 AWS 服务代表您进行的调用。

密钥层次结构和特定密钥属性如下表中所示。

描述 生命周期

域密钥

仅在 HSM 内存中的 256 位 AES-GCM 密钥,用于包装 KMS 密钥(HSM 备用密钥)的版本。

每天轮换1

HSM 备用密钥

256 位对称密钥或者 RSA 或椭圆曲线私有密钥,用于保护客户数据和密钥,在域密钥下加密存储。。一个或多个 HSM 备用密钥组成 KMS 密钥(通过 keyId 表示)。

每年轮换2(可选配置)

派生加密密钥

仅在 HSM 内存中的 256 位 AES-GCM 密钥,用于加密客户数据和密钥。从每个加密的 HBK 派生。

每次加密时使用一次,并在解密时重新生成

客户数据密钥

以明文和密文形式从 HSM 导出的、用户定义的对称或非对称密钥。

在 HSM 备用密钥下加密,然后通过 TLS 通道返回给授权用户。

轮换和使用由应用程序控制

1 AWS KMS 可能会不时将域密钥轮换放宽到最多每周一次,以处理域管理和配置任务。

2 由 AWS KMS 代表您创建和管理的原定设置 AWS 托管式密钥 每年自动轮换。