将密钥材料导入到多区域密钥中 - AWS Key Management Service

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

将密钥材料导入到多区域密钥中

您可以将自己的密钥材料导入到多区域 KMS 密钥中。您使用自己的密钥材料创建的多区域密钥是可互操作的。您可以对一个区域中的数据进行加密,并使用相关的多区域密钥在任何其他区域中解密该数据。

但是,您必须管理密钥材料。

  • AWS KMS 不会将密钥材料从具有导入密钥材料的主密钥中复制或同步到其副本密钥。您必须将相同的密钥材料导入相关的主密钥和副本密钥中。

  • 导入密钥材料时,您可以单独设置每个密钥的到期模型和到期日期。您可以为相关的多区域密钥配置相同或不同的过期模式和过期日期。如果密钥材料接近到期日期,您必须将密钥材料重新导入受影响的多区域密钥。

    相关多区域密钥的密钥状态是相互独立的。例如,如果主密钥中的密钥材料过期,则其副本密钥不受影响。

相同的副本密钥的区域要求适用于带导入的密钥材料的多区域密钥。如果您将相同的密钥材料导入到单区域密钥或不相关的多区域密钥中,则这些 KMS 密钥不可互操作。

您可创建具有导入对称、非对称或 HMAC 密钥材料的多区域密钥。AWS KMS 不支持在自定义密钥存储中导入的密钥材料。而且,您不能为具有导入密钥材料的 KMS 密钥启用自动密钥轮换

除了具有多区域功能外,带有导入密钥材料的多区域密钥还与其他带有导入密钥材料的 KMS 密钥相同。有关创建和配置带有导入密钥材料的单区域密钥的详细信息,请参阅 关于导入的密钥材料

为什么不是所有带有导入密钥材料的 KMS 密钥都可互操作?

带有导入密钥材料的单区域 KMS 密钥不可互操作,即使它们具有相同的密钥材料也是如此。AWS KMS 使用 KMS 密钥加密数据时,它会以加密方式将某些密钥元数据绑定到密文。这样可以保护密文,以便只有加密数据的 KMS 密钥才能解密该数据。

多区域密钥设计为可互操作。除了具有相同的密钥材料外,它们还具有相同的密钥 ID 和其他元数据。因此,它们生成的密文可以通过任何相关的多区域密钥进行解密。因此,多区域密钥的信任属性与单区域密钥的信任属性不同。但对于某些客户来说,在多个区域中解密的好处超过了依赖单个 AWS 区域 中的单个 KMS 密钥的密文的安全值。

创建带导入的密钥材料的主密钥

要创建带导入的密钥材料的主密钥,请先创建不带密钥材料的 KMS 密钥。创建不带密钥材料的主密钥时,必须指定反映计划导入的密钥材料类型的密钥规范。然后,将您的密钥材料导入到主密钥中。

创建不包含密钥材料的多区域主密钥的过程几乎与创建不包含密钥材料的单区域密钥的过程相同。唯一的区别是您指定密钥是多区域密钥。

使用导入的密钥材料创建多区域主密钥的权限与使用密钥材料创建多区域主密钥所需的权限相同,包括 IAM 策略中的 AWS KMS k ms: CreateKey 和 iam: CreateServiceLinkedRole 权限。您可以使用 kms: MultiRegionKeyType 和 k ms: KeyOrigin 条件密钥来允许或拒绝使用导入的密钥材料创建多区域主密钥的权限。

在 AWS KMS 控制台中使用导入的密钥材料创建主密钥时,请使用 Advanced options(高级选项)部分中的设置。创建 KMS 密钥后,这些属性无法更改。

  • Key material origin(密钥材料源)设置为 External (Import key material) [外部(导入密钥材料)]。

  • Multi-Region replication(多区域复制)设置为 Allow this key to be replicated into other Regions(允许此密钥复制到其他区域中)。

使用CreateKey操作创建包含导入密钥材料的主键时,请使用OriginMultiRegion参数并指定KeySpecKeyUsage。以下示例创建了一个可以导入 ECC_NIST_P384 密钥材料的 EXTERNAL KMS 密钥。

$ aws kms create-key --origin EXTERNAL --key-spec ECC_NIST_P384 --key-usage SIGN_VERIFY --multi-region

结果将生成一个不包含密钥材料且密钥状态为 PendingImport 的多区域主密钥。

要启用此 KMS 密钥,您必须下载公有密钥和导入令牌,使用公有密钥加密密钥材料,然后导入密钥材料。有关说明,请参阅导入密钥的 AWS KMS 密钥材料

创建带导入的密钥材料的副本密钥

您可以在 AWS KMS 控制台中或使用 AWS KMS API 操作创建多区域副本密钥。要复制具有导入的密钥材料的多区域主密钥,请使用您用于创建具有 AWS KMS 密钥材料的副本密钥的相同程序。然而,结果是不同的。复制过程不会返回具有与主密钥相同的密钥材料的副本密钥,而是返回一个不包含密钥材料且密钥状态为 PendingImport 的副本密钥。要启用副本密钥,您必须将相同的密钥材料导入到您导入主密钥的副本密钥中。

虽然不复制密钥材料,但 AWS KMS 会创建具有相同密钥 ID密钥规范密钥用法密钥材料源的副本密钥作为主密钥。它还可确保您导入到副本密钥中的密钥材料与导入到主密钥中的密钥材料相同。

要创建带导入的密钥材料的副本密钥:

  1. 创建带已导入密钥材料的多区域主密钥

  2. 请执行以下操作之一。

    在 AWS KMS 控制台中,选择带已导入密钥材料的多区域主密钥。然后,在其 Regionality(区域性)选项卡上,选择 Create new replica keys(创建新副本密钥)。有关说明,请参阅创建副本密钥(控制台)

    或者使用该ReplicateKey操作。对于 KeyId 参数,输入带导入的密钥材料的多区域主密钥的密钥 ID 或密钥 ARN。有关说明,请参阅创建副本密钥 (AWS KMS API)

  3. 对于每个新的副本密钥,请按照以下步骤下载公有密钥和导入令牌。使用公有密钥对主密钥的密钥材料进行加密,然后在副本密钥中导入主密钥的密钥材料。您的每个副本密钥都需要不同的公有密钥和导入令牌。

    如果您尝试导入到副本密钥中的密钥材料与其主密钥不同,则操作将失败。AWS KMS 不需要协调过期模式和过期日期,但您可以为多区域密钥建立业务规则。有关说明,请参阅导入密钥的 AWS KMS 密钥材料

复制带有导入密钥材料的密钥的权限

要创建带导入的密钥材料的副本密钥,您必须具有以下权限。

在主密钥区域中:

  • kms:在主键ReplicateKey上(在主键的区域中)。将此权限包含在主密钥的密钥策略或 IAM policy 中。

在副本密钥区域中: