本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将密钥材料导入到多区域密钥中
您可以将自己的密钥材料导入多区域 KMS 密钥。您使用自己的密钥材料创建的多区域密钥是可互操作的。您可以对一个区域中的数据进行加密,并使用相关的多区域密钥在任何其他区域中解密该数据。
但是,您必须管理密钥材料。
-
AWS KMS 不会将密钥材料从具有导入密钥材料的主密钥中复制或同步到其副本密钥。您必须将相同的密钥材料导入相关的主密钥和副本密钥中。
-
导入密钥材料时,您可以单独设置每个密钥的到期模型和到期日期。您可以为相关的多区域密钥配置相同或不同的过期模式和过期日期。如果密钥材料接近到期日期,您必须将密钥材料重新导入受影响的多区域密钥。
相关多区域密钥的密钥状态是相互独立的。例如,如果主密钥中的密钥材料过期,则其副本密钥不受影响。
相同的副本密钥的区域要求适用于带导入的密钥材料的多区域密钥。如果您将相同的密钥材料导入到单区域密钥或不相关的多区域密钥中,则这些 KMS 密钥不可互操作。
您可以使用导入的对称、非对称或 HMAC 密钥材料创建多区域密钥。 AWS KMS不支持在自定义密钥存储库中导入的密钥材料。而且,您不能为具有导入密钥材料的 KMS 密钥启用自动密钥轮换。
除了具有多区域功能外,带有导入密钥材料的多区域密钥还与其他带有导入密钥材料的 KMS 密钥相同。有关创建和配置带有导入密钥材料的单区域密钥的详细信息,请参阅 关于导入的密钥材料。
为什么不是所有带有导入密钥材料的 KMS 密钥都可互操作?
带有导入密钥材料的单区域 KMS 密钥不可互操作,即使它们具有相同的密钥材料也是如此。AWS KMS 使用 KMS 密钥加密数据时,它会以加密方式将某些密钥元数据绑定到密文。这样可以保护密文,以便只有加密数据的 KMS 密钥才能解密该数据。
多区域密钥设计为可互操作。除了具有相同的密钥材料外,它们还具有相同的密钥 ID 和其他元数据。因此,它们生成的密文可以通过任何相关的多区域密钥进行解密。因此,多区域密钥的信任属性与单区域密钥的信任属性不同。但对于某些客户来说,在多个区域中解密的好处超过了依赖单个 AWS 区域 中的单个 KMS 密钥的密文的安全值。
创建带导入的密钥材料的主密钥
要使用导入的密钥材料创建主密钥,首先要创建不包含密钥材料的 KMS 密钥。在创建不包含密钥材料的主键时,必须指定反映您计划导入的密钥材料类型的密钥规范。然后,将您的密钥材料导入主键。
创建不包含密钥材料的多区域主密钥的过程几乎与创建不包含密钥材料的单区域密钥的过程相同。唯一的区别是您指定密钥是多区域密钥。
使用导入的密钥材料创建多区域主密钥的权限与使用密钥材料创建多区域主密钥所需的权限相同,包括 IAM 策略中的 AWS KMS kms: CreateKey 和 iam: CreateServiceLinkedRole 权限。您可以使用 kms: MultiRegionKeyType 和 kms: 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操作使用导入的密钥材料创建主键时,请使用Origin
和MultiRegion
参数并指定KeySpec
和KeyUsage
。以下示例创建了一个可以导入密EXTERNAL
钥材料的 KMS ECC_NIST_P384
密钥。
$
aws kms create-key --origin EXTERNAL --key-specECC_NIST_P384
--key-usageSIGN_VERIFY
--multi-region
结果将生成一个不包含密钥材料且密钥状态为 PendingImport
的多区域主密钥。
要启用此 KMS 密钥,您必须下载公有密钥和导入令牌,使用公有密钥加密密钥材料,然后导入密钥材料。有关说明,请参阅 为密钥导入AWS KMS密钥材料。
创建带导入的密钥材料的副本密钥
您可以在 AWS KMS 控制台中或使用 AWS KMS API 操作创建多区域副本密钥。要复制具有导入的密钥材料的多区域主密钥,请使用您用于创建具有 AWS KMS 密钥材料的副本密钥的相同程序。然而,结果是不同的。复制过程不会返回具有与主密钥相同的密钥材料的副本密钥,而是返回一个不包含密钥材料且密钥状态为 PendingImport
的副本密钥。要启用副本密钥,您必须将相同的密钥材料导入到您导入主密钥的副本密钥中。
虽然不复制密钥材料,但 AWS KMS 会创建具有相同密钥 ID、密钥规范、密钥用法和密钥材料源的副本密钥作为主密钥。它还可确保您导入到副本密钥中的密钥材料与导入到主密钥中的密钥材料相同。
要创建带导入的密钥材料的副本密钥:
-
创建带已导入密钥材料的多区域主密钥。
-
请执行以下任一操作。
在 AWS KMS 控制台中,选择带已导入密钥材料的多区域主密钥。然后,在其 Regionality(区域性)选项卡上,选择 Create new replica keys(创建新副本密钥)。有关说明,请参阅 创建副本密钥(控制台)。
或者使用该ReplicateKey操作。对于
KeyId
参数,输入带导入的密钥材料的多区域主密钥的密钥 ID 或密钥 ARN。有关说明,请参阅 创建副本密钥 (AWS KMS API)。 -
对于每个新的副本密钥,请按照以下步骤下载公有密钥和导入令牌。使用公有密钥对主密钥的密钥材料进行加密,然后在副本密钥中导入主密钥的密钥材料。您的每个副本密钥都需要不同的公有密钥和导入令牌。
如果您尝试导入到副本密钥中的密钥材料与其主密钥不同,则操作将失败。AWS KMS 不需要协调过期模式和过期日期,但您可以为多区域密钥建立业务规则。有关说明,请参阅 为密钥导入AWS KMS密钥材料。
复制带有导入密钥材料的密钥的权限
要创建带导入的密钥材料的副本密钥,您必须具有以下权限。
在主密钥区域中:
-
kms:在主键ReplicateKey上(在主键的区域中)。将此权限包含在主密钥的密钥策略或 IAM 策略中。
在副本密钥区域中:
-
kms:CreateKey在 IAM 策略中。
-
kms:GetParametersForImport。您可以将此权限包含在副本密钥的密钥策略或 IAM 策略中。
-
kms:ImportKeyMaterial。您可以将此权限包含在副本密钥的密钥策略或 IAM 策略中。
-
km TagResource s:需要在复制时分配标签。将此权限包含在副本区域的 IAM 策略中。
-
k@@ m CreateAlias s:需要在AWS KMS控制台中复制密钥。有关详细信息,请参阅控制对别名的访问。