Amazon KMS keys - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon KMS keys

您创建和管理的用于自己的加密应用程序的KMS密钥属于一种称为客户托管密钥的类型。客户托管密钥也可以与使用KMS密钥加密 Amazon 服务代表您存储的数据的服务结合使用。对于想要完全控制密钥生命周期和使用情况的客户,建议使用客户托管密钥。账户中拥有客户托管密钥将按月收费。此外,使用和/或管理密钥的请求也会产生使用成本。有关更多详细信息,请参阅 Amazon Key Management Service 定价

在某些情况下,客户可能想要一项 Amazon 服务来加密其数据,但他们不想承担管理密钥的开销,也不想为密钥付费。Amazon 托管式密钥是您的账户中存在的KMS密钥,但只能在某些情况下使用。具体而言,它只能在您运营的 Amazon 服务环境中使用,并且只能由密钥存在的账户中的委托人使用。您无法对这些密钥的生命周期或权限进行任何管理。当您在 Amazon 服务中使用加密功能时,您可能会看到 Amazon 托管式密钥;它们使用的是 “aws<service code>” 形式的别名。例如,aws/ebs密钥只能用于加密EBS卷,并且只能用于与密钥同一个账户IAM的委托人使用的卷。想想 Amazon 托管式密钥 一个范围缩小到只有你账户中的用户才能使用你账户中的资源的。您不能 Amazon 托管式密钥 与其他账户共享在和下加密的资源。虽然您的账户中可以免费存在,但分配给该密钥的 Amazon 服务会向您收取任何使用此类密钥的费用。 Amazon 托管式密钥

Amazon 托管式密钥 是一种传统密钥类型,自 2021 年起不再为新 Amazon 服务创建。取而代之的是,新(和旧) Amazon 服务默认使用所谓的加密客户数据。Amazon 拥有的密钥 Amazon 拥有的密钥 是服务管理的账户中的KMS密钥,因此 Amazon 服务运营商可以管理其生命周期和使用权限。通过使用 Amazon 拥有的密钥, Amazon 服务可以透明地加密您的数据,并允许轻松地跨账户或跨区域共享数据,而无需担心密钥权限。 Amazon 拥有的密钥 用于提供更简单、更自动化的数据保护 encryption-by-default的工作负载。由于这些密钥由所有和管理 Amazon,因此您无需为其存在或使用付费,也无法更改其策略,无法审计这些密钥上的活动,也无法删除它们。在重视控制时使用客户托管密钥,在最重视便利性时使用 Amazon 拥有的密钥 。

客户托管密钥 Amazon 托管式密钥 Amazon 拥有的密钥
密钥策略 完全由客户控制 由服务控制;客户可以查看 独家控制,只能由加密 Amazon 数据的服务查看
日志记录 CloudTrail 客户跟踪或事件数据存储 CloudTrail 客户跟踪或事件数据存储 客户无法查看
生命周期管理 客户管理轮换、删除和区域位置 Amazon KMS 管理轮换(每年)、删除和区域位置 Amazon Web Services 服务 管理轮换、删除和区域位置
定价

密钥存在需收取月度费用(按小时

计费)。此外还需收取密钥使用费

不收取月费;但需要向来电者收取API使用这些密钥的费用 不向客户收费

您创建的KMS密钥是客户管理的密钥。 Amazon Web Services 服务 使用KMS密钥加密您的服务资源的用户通常会为您创建密钥。KMS在您的 Amazon 账户中 Amazon Web Services 服务 创建的密钥是Amazon 托管式密钥。KMS在服务帐号中 Amazon Web Services 服务 创建的密钥是Amazon 拥有的密钥

KMS密钥的类型 可以查看KMS关键元数据 可以管理KMS密钥 仅用于我的 Amazon Web Services 账户 自动轮换 定价
客户托管的密钥 可选。

月度费用(按小时计费)

每次使用费用

Amazon 托管式密钥 必需。每年(大约 365 天)。

没有月度费用

按次使用费(有些人会为您 Amazon Web Services 服务 支付此费用)

Amazon 拥有的密钥 Amazon Web Services 服务 管理轮换策略。 无费用

Amazon 与之集成的服务对KMS密钥的支持各不 Amazon KMS相同。某些 Amazon 服务默认使用 Amazon 拥有的密钥 或加密您的数据 Amazon 托管式密钥。某些 Amazon 服务支持客户管理的密钥。其他 Amazon 服务支持所有类型的KMS密钥,使您可以轻松获取 Amazon 拥有的密钥、查看或控制客户托管的密钥。 Amazon 托管式密钥有关 Amazon 服务提供的加密选项的详细信息,请参阅该服务的用户指南或开发人员指南中的 “静态加密” 主题。

客户托管密钥

您创建的KMS密钥是客户管理的密钥。客户管理的密KMS钥 Amazon Web Services 账户 是您创建、拥有和管理的密钥。您可以完全控制这些KMS密钥,包括建立和维护其密钥IAM策略、策略和授权、启用和禁用它们、轮换其加密材料添加标签创建引用密钥的别名以及安排KMS密钥的KMS删除时间。

客户托管密钥显示在 Amazon KMS的 Amazon Web Services Management Console 的 Customer managed keys(客户托管密钥)页面上。要明确识别客户管理的密钥,请使用DescribeKey操作。对于客户托管密钥,DescribeKey 响应的 KeyManager 字段的值为 CUSTOMER

您可以在加密操作中使用客户托管密钥并在 Amazon CloudTrail 日志中审核其使用情况。此外,许多与 Amazon KMS集成的Amazon 服务使您能够指定客户托管密钥以保护为您存储和管理的数据。

客户托管密钥会产生月费以及超过免费套餐使用量的费用。它们将计入您账户的 Amazon KMS 配额。有关详细信息,请参阅 Amazon Key Management Service 定价配额

Amazon 托管式密钥

Amazon 托管式密钥是您账户中的KMS密钥,由与集成的Amazon 服务代表您创建、管理和使用 Amazon KMS。

有些 Amazon 服务允许您选择一个 Amazon 托管式密钥 或一个客户托管的密钥来保护您在该服务中的资源。通常,除非要求您控制保护资源的加密密钥,否则 Amazon 托管式密钥 不妨选择。您不必创建或维护密钥或密钥策略,并且永远不会产生 Amazon 托管式密钥月度费用。

您有权 Amazon 托管式密钥在您的账户中查看查看其密钥策略审核其在 Amazon CloudTrail 日志中的使用情况。但是,您不能更改其任何属性 Amazon 托管式密钥、轮换它们、更改其密钥策略或安排将其删除。而且,您不能直接 Amazon 托管式密钥 在加密操作中使用;创建加密操作的服务会代表您使用它们。

您组织中的@@ 资源控制政策不适用于 Amazon 托管式密钥。

Amazon 托管式密钥 显示在 fo Amazon 托管式密钥r Amazon Web Services Management Console 的页面上 Amazon KMS。您也可以 Amazon 托管式密钥 通过别名进行识别,其格式为 aws/service-nameaws/redshift,例如。要明确识别 Amazon 托管式密钥,请使用DescribeKey操作。对于 Amazon 托管式密钥,DescribeKey 响应的 KeyManager 字段的值为 Amazon

所有这些 Amazon 托管式密钥 都是每年自动轮换的。您不能更改此轮换计划。

注意

2022年5月,将轮换时间表 Amazon 托管式密钥 从每三年(约1,095天) Amazon KMS 改为每年(约365天)。

新 Amazon 托管式密钥 版本在创建一年后自动轮换,此后大约每年轮换一次。

现有 Amazon 托管式密钥 人员在最近一次轮换一年后自动轮换,此后每年轮换。

不收取月费 Amazon 托管式密钥. 超出免费套餐的使用可能会收取费用,但有些 Amazon 服务会为您支付这些费用。有关详细信息,请参阅服务的用户指南或开发人员指南中的静态加密主题。有关详细信息,请参阅 Amazon Key Management Service 定价

Amazon 托管式密钥 不要计入您账户中每个区域的KMS密钥数量的资源配额。但是,当代表您账户中的委托人使用时,KMS密钥将计入请求配额。有关详细信息,请参阅配额

Amazon 拥有的密钥

Amazon 拥有的密钥是 Amazon 服务拥有和管理的KMS密钥的集合,用于多个密钥 Amazon Web Services 账户。尽管 Amazon 拥有的密钥 不在您的账户中 Amazon Web Services 账户,但 Amazon 服务可以使用 Amazon 拥有的密钥 来保护您账户中的资源。

某些 Amazon 服务允许您选择 Amazon 拥有的密钥 或客户管理的密钥。通常,除非要求您审核或控制保护资源的加密密钥, Amazon 拥有的密钥 否则不妨选择。 Amazon 拥有的密钥 完全免费(没有月费或使用费),它们不计入您账户的Amazon KMS 配额,而且易于使用。您不必创建或维护该密钥或其密钥策略。

的轮换因服务 Amazon 拥有的密钥 而异。有关特定项轮换的信息 Amazon 拥有的密钥,请参阅该服务的用户指南或开发者指南中的静态加密主题。

Amazon KMS key 等级制度

您的密钥层次结构从顶级逻辑密钥开始,即 Amazon KMS key。KMS密钥代表顶级密钥材料的容器,在 Amazon 服务命名空间中使用 Amazon 资源名称 (ARN) 进行唯一定义。ARN包括唯一生成的密钥标识符,即密钥 ID。KMS密钥是根据用户通过 Amazon KMS发起的请求创建的。收到后, Amazon KMS 请求创建初始HSM备用密钥 (HBK),将其放入KMS密钥容器中。HBK是在域HSM中生成的,并且设计为永远不会以纯文本形式从HSM中导出。取而代之的是,HBK是在HSM托管的域密钥下加密导出的。HBKs这些导出的密钥令牌称为导出的密钥令牌 (EKTs)。

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

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

Amazon KMS key 等级制度。

您可以通过 Amazon KMS 请求使用您的KMS密钥直接保护信息,或者请求由您的KMS密钥保护的其他HSM生成的密钥。这些密钥称为客户数据密钥,或CDKs。CDKs可以加密后返回为密文 (CT)、纯文本或两者兼而有之。使用KMS密钥加密的所有对象(客户提供的数据或HSM生成的密钥)只能HSM通过呼叫进行解密。 Amazon KMS

返回的密文或解密后的有效载荷永远不会存储在其中。 Amazon KMS信息将通过您与的TLS连接返回给您 Amazon KMS。这也适用于 Amazon 服务部门代表您拨打的电话。

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

描述 生命周期

域密钥

一个 256 位AES的GCM密钥,仅用于存储HSM用于封装密钥的版本,即HSM备用KMS密钥。

每天轮换1

HSM后备密钥

256 位对称密钥RSA或椭圆曲线私钥,用于保护客户数据和密钥,并以加密方式存储在域密钥下。一个或多个HSM备用密钥构成KMS密钥,由表示keyId。

每年轮换2(可选配置)

派生加密密钥

256 位AESGCM密钥,仅用于存储HSM用于加密客户数据和密钥。派生自 for HBK each 的加密。

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

客户数据密钥

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

使用HSM支持密钥进行加密,并通过TLS频道返回给授权用户。

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

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

2 由您代您 Amazon 托管式密钥 创建和管理 Amazon KMS 的默认值每年自动轮换。

密钥标识符 (KeyId)

密钥标识符就像KMS密钥的名称。它们可以帮助您在控制台中识别您的KMS密钥。您可以使用它们来指示要在 Amazon KMS API操作、KMS密钥策略、IAM策略和授权中使用哪些密钥。密钥标识符值与与密钥关联的密钥材料完全无关。KMS

Amazon KMS 定义了几个密钥标识符。创建KMS密钥时, Amazon KMS 会生成密钥ARN和密钥 ID,它们是KMS密钥的属性。创建名时, Amazon KMS 会ARN根据您定义的别名生成别名。您可以在和中查看密钥和别名标识符 Amazon KMS API。 Amazon Web Services Management Console

在 Amazon KMS 控制台中,您可以按密钥ARN、KMS密钥 ID 或别名查看和筛选密钥,并按密钥 ID 和别名进行排序。有关在控制台中查找密钥标识符的帮助,请参阅查找密钥 ID 和密钥 ARN

在中 Amazon KMS API,用于标识KMS密钥的参数被命名KeyId或变体,例如TargetKeyIdDestinationKeyId。但是,这些参数的值并不仅限于 key IDs。一些参数可以使用任意有效的密钥标识符。有关每个参数的值的信息,请参阅《 Amazon Key Management Service API参考资料》中的参数描述。

注意

使用时 Amazon KMS API,请注意所使用的密钥标识符。不同APIs需要不同的密钥标识符。通常,请在您的任务中使用最完整实用的密钥标识符。

Amazon KMS 支持以下密钥标识符。

钥匙 ARN

密钥ARN是密钥的 Amazon 资源名称 (ARN)。KMS它是KMS密钥的唯一且完全限定的标识符。密钥ARN包括 Amazon Web Services 账户、区域和密钥 ID。有关查找密钥密KMS钥ARN的帮助,请参阅查找密钥 ID 和密钥 ARN

密钥的格式ARN如下:

arn:<partition>:kms:<region>:<account-id>:key/<key-id>

以下是单区域密钥ARN的示例KMS密钥。

arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

这些区域有:key-id 多区域密钥ARNs的密钥元素以mrk-前缀开头。以下是多区域密钥ARN的示例密钥。

arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
密钥 ID

密钥 ID 唯一标识账户和区域内的KMS密钥。有关查找密钥密钥 ID 的KMS帮助,请参阅查找密钥 ID 和密钥 ARN

以下是单区域KMS密钥的密钥 ID 示例。

1234abcd-12ab-34cd-56ef-1234567890ab

多区域密钥IDs的密钥mrk-前缀开头。以下是多区域密钥的示例密钥 ID。

mrk-1234abcd12ab34cd56ef1234567890ab
别名 ARN

别名ARN是别名的亚马逊资源名称 (ARN)。 Amazon KMS 它是别名及其所代表的KMS密钥的唯一且完全限定的标识符。别名ARN包括 Amazon Web Services 账户、地区和别名。

在任何给定时间,别名都会ARN标识一个特定的KMS密钥。但是,由于您可以更改与别名关联的KMS密钥,因此别名ARN可以在不同的时间识别不同的KMS密钥。有关查找KMS密钥别ARN名的帮助,请参阅查找KMS密钥的别名ARN和别名

别名的格式ARN如下:

arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>

以下是虚构ARNExampleAlias的别名。

arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
别名

别名是最多 256 个字符的字符串。它唯一标识账户和区域内的关联KMS密钥。在中 Amazon KMS API,别名始终以开头alias/。有关查找KMS密钥别名的帮助,请参阅查找KMS密钥的别名ARN和别名

别名的格式如下:

alias/<alias-name>

例如:

alias/ExampleAlias

别名的 aws/ 前缀保留用于 Amazon 托管式密钥。您无法使用此前缀创建别名。例如,亚马逊简单存储服务 (Amazon S3) 的别名如下所示。 Amazon 托管式密钥

alias/aws/s3