基本概念 - AWS Key Management Service

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

基本概念

学习一些基本术语和概念将帮助您充分利用 AWS Key Management Service。

AWS KMS key
注意

AWS KMS 将术语客户主密钥 (CMK) 替换为 AWS KMS keyKMS 密钥。这一概念并未改变。为防止破坏性更改,AWS KMS 保留了此术语的一些变体。

表示密钥层次结构顶部的逻辑密钥。KMS 密钥将指定一个 Amazon Resource Name (ARN),其中包含唯一密钥标识符或密钥 ID。AWS KMS keys 有三种类型:

  • 客户管理密钥 - 客户创建并控制客户管理密钥的生命周期和密钥策略。针对这些密钥发出的所有请求都被记录为 CloudTrail 事件。

  • AWS 托管式密钥 - AWS 创建并控制 AWS 托管式密钥 的生命周期和密钥策略,这些是客户 AWS 账户 中的资源。客户可以查看这些密钥的访问策略和 CloudTrail 事件AWS 托管式密钥,但无法管理这些密钥的任何方面。针对这些密钥发出的所有请求都被记录为 CloudTrail 事件。

  • AWS 拥有的密钥 - 这些密钥由 AWS 创建并专门用于跨不同 AWS 服务的内部加密操作。客户无法查看中的关键策略或AWS 拥有的密钥使用情况 CloudTrail。

别名

与 KMS 密钥相关联的用户易记名称。在许多 AWS KMS API 操作中,别名可以与密钥 ID 互换使用。

权限

附加到 KMS 密钥的策略,用于定义密钥的权限。原定设置策略允许您定义的任何委托人,以及允许 AWS 账户 添加引用密钥的 IAM 策略。

授权

一开始不知道预期 IAM 委托人或使用持续时间,因此无法添加到密钥或 IAM 策略时,使用 KMS 密钥的委托权限。授权的用途之一是定义 AWS 服务如何使用 KMS 密钥的范围缩小的权限。如果您没有直接签名的 API 调用,该服务可能需要使用您的密钥代表您对加密数据执行异步工作。

数据密钥

在 HSM 上生成的加密密钥,受 KMS 密钥保护。AWS KMS 允许授权实体获取受 KMS 密钥保护的数据密钥。这些密钥可以作为明文(未加密)数据密钥和加密数据密钥返回。数据密钥可以是对称的,也可以是非对称的(返回公有部分和私有部分)。

密文

AWS KMS 的加密输出,有时称为客户密文以消除混淆。密文包含带有附加信息的加密数据,这些信息标识要在解密过程中使用的 KMS 密钥。加密数据密钥是使用 KMS 密钥时生成的密文的一个常见示例,但大小小于 4 KB 的任何数据都可以在 KMS 密钥下加密以生成密文。

加密上下文

与 AWS KMS 保护信息关联的其他信息的键值对映射。AWS KMS 使用经过身份验证的加密来保护数据密钥。加密上下文将合并到 AWS KMS 加密密文中经身份验证的加密的 AAD 中。此上下文信息是可选的,在请求密钥(或加密操作)时不会返回。但如果使用,则需要此上下文值才能成功完成解密操作。加密上下文的预期用途是提供额外的经身份验证信息。这些信息可以帮助您强制执行策略并将其包含在AWS CloudTrail 日志中。例如,您可以使用 {"key name":"satellite uplink key"} 键值对来命名数据密钥。随后使用密钥将创建一个 AWS CloudTrail 条目,其中包含 “key name”: “satellite uplink key”。此附加信息可提供有用的上下文,以了解使用指定 KMS 密钥的原因。

公有密钥

使用非对称密码(RSA 或椭圆曲线)时,公有密钥是公有-私有密钥对的“公有组成部分”。加密详细信息介绍公有密钥可以共享并分发给需要为公有-私有密钥对拥有者加密数据的实体。对于数字签名操作,公有密钥用于验证签名。

私有密钥

使用非对称密码(RSA 或椭圆曲线)时,私有密钥是公有-私有密钥对的“私有组成部分”。私有密钥用于解密数据或创建数字签名。与对称 KMS 密钥类似,私有密钥在 HSM 中进行加密。这些密钥仅在 HSM 的短期存储中解密,并且仅在处理加密请求所需的时间内解密。