创建多区域副本密钥 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

创建多区域副本密钥

您可以在 Amazon KMS 控制台中、使用 ReplicateKey 操作,或使用 Amazon CloudFormation 模板创建多区域副本密钥。您无法使用 CreateKey 操作创建副本密钥。

您可以使用这些步骤复制任何多区域主密钥,包括对称加密 KMS 密钥,一个非对称 KMS 密钥,或者 HMAC KMS 密钥

此操作完成后,新的副本密钥具有暂时性的密钥状态 Creating。在创建新副本密钥的过程完成几秒后,此密钥状态变为 Enabled(或者 PendingImport)。当密钥状态为 Creating 时,您可以管理该密钥,但不能将其用于加密操作。如果要以编程方式创建和使用副本密钥,请重试 KMSInvalidStateException 或调用 DescribeKey 来检查其 KeyState 值,然后再使用它。

如果误删了副本密钥,您可以使用此过程来重新创建副本密钥。如果您在同一区域中复制相同的主密钥,则您创建的新副本密钥将具有与原始副本密钥相同的共享属性

了解更多

副本区域

您通常会基于您的业务模式和法规要求选择将多区域密钥复制到 Amazon Web Services 区域 中。例如,您可以将密钥复制到保留资源的区域中。或者,为了符合灾难恢复要求,您可以将密钥复制到地理位置偏远的区域中。

以下是对副本区域的 Amazon KMS 要求。如果您选择的区域不符合这些要求,则尝试复制密钥失败。

  • 每个区域一个相关的多区域密钥 — 您不能在与主密钥相同的区域中创建副本密钥,也不能在与主密钥的另一个副本相同的区域中创建副本密钥。

    如果您尝试在已具有该主密钥副本的区域中复制主密钥,则尝试会失败。如果区域中的当前副本密钥处于 PendingDeletion 密钥状态,您可以取消副本密钥删除或者等待副本密钥被删除。

  • 同一区域中的多个不相关的多区域密钥 — 您可以在同一个区域中拥有多个不相关的多区域密钥。例如,您可以在 us-east-1 区域中拥有两个多区域主密钥。每个主密钥在 us-west-2 区域中都可以有一个副本密钥。

  • 同一分区中的区域 — 副本密钥区域必须位于与主密钥区域相同的 Amazon 分区中。

  • 必须启用区域 — 如果某个区域默认已禁用,则无法在该区域中创建任何资源,直到为您的 Amazon Web Services 账户 启用该区域为止。

创建副本密钥(控制台)

在 Amazon KMS 控制台中,您可以在同一操作中创建多区域主密钥的一个或多个副本。

此过程类似于在控制台中创建标准的单区域 KMS 密钥。但是,由于副本密钥基于主密钥,因此您不能为共享属性选择值,例如密钥规范(对称或非对称)、密钥用法或密钥来源。

您可以指定不共享的属性,包括别名、标签、描述和密钥策略。为方便起见,控制台会显示主密钥的当前属性值,但您可以更改它们。即使您保留主密钥值,Amazon KMS 也不会保持这些值同步。

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Key Management Service (Amazon KMS) 控制台:https://console.aws.amazon.com/kms

  2. 要更改 Amazon Web Services 区域,请使用页面右上角的区域选择器。

  3. 在导航窗格中,选择客户托管密钥

  4. 选择多区域主密钥的密钥 ID 或别名。此操作将打开 KMS 密钥的密钥详细信息页面。

    要识别多区域主密钥,请使用右上角的工具图标将 Regionality(区域性)列添加到表中。

  5. 选择 Regionality(区域性)选项卡。

  6. Related multi-Region keys(相关的多区域密钥)部分中,选择 Create new replica keys(创建新的副本密钥)。

    Related multi-Region keys(相关的多区域密钥)部分显示主密钥及其副本密钥的区域。您可以使用此显示来帮助您为新副本密钥选择区域。

  7. 选择一个或多个 Amazon Web Services 区域。此过程将在您选择的每个区域中创建一个副本密钥。

    菜单仅包含与主密钥处于相同 Amazon 分区中的区域。已具有相关多区域密钥的区域显示出来,但不可选。您可能没有权限将密钥复制到菜单上的所有区域。

    完成选择 Regions(区域)后,关闭菜单。将显示您选择的区域。要取消复制到某个区域,请选择 Region(区域)名称旁边的 X

  8. 为副本密钥键入别名

    控制台将显示主密钥的当前别名之一,但您可以对其进行更改。您可以为多区域主密钥及其副本密钥指定相同的别名或不同的别名。别名不是多区域密钥的共享属性。Amazon KMS 不同步多区域密钥的别名。

    添加、删除或更新别名可以允许或拒绝对 KMS 密钥的权限。有关详细信息,请参阅 Amazon KMS 中的 ABAC使用别名控制对 KMS 密钥的访问

  9. (可选)键入副本密钥的描述。

    控制台将显示主密钥的当前描述,但您可以对其进行更改。描述不是多区域密钥的共享属性。您可以为多区域主密钥及其副本密钥指定相同的描述或不同的描述。Amazon KMS 不同步多区域密钥的密钥描述。

  10. (可选) 键入标签键和一个可选标签值。要为副本密钥分配多个标签,请选择 Add tag(添加标签)。

    控制台将显示当前附加到主密钥的标签,但您可以更改它们。标签不是多区域密钥的共享属性。您可以为多区域主密钥及其副本密钥指定相同的标签或不同的标签。Amazon KMS 不同步多区域密钥的标签。

    标记或取消标记 KMS 密钥可以允许或拒绝对 KMS 密钥的权限。有关详细信息,请参阅 Amazon KMS 中的 ABAC使用标签控制对 KMS 密钥的访问

  11. 选择可管理副本密钥的 IAM 用户和角色。

    注意

    IAM 策略可以向其他 IAM 用户和角色授予管理副本密钥的权限。

    此步骤将开始为副本密钥创建密钥策略的过程。控制台将显示主密钥的当前密钥策略,但您可以对其进行更改。密钥策略不是多区域密钥的共享属性。您可以为多区域主密钥及其副本提供相同的密钥策略或不同的密钥策略。Amazon KMS 不同步密钥策略。您可以随时更改任何 KMS 密钥的密钥策略。

  12. 完成创建密钥策略的步骤,包括选择密钥管理员。审查密钥策略后,请选择 Finish(完成)以创建副本密钥。

创建副本密钥 (Amazon KMS API)

要创建多区域副本密钥,请使用 ReplicateKey 操作。您无法使用 CreateKey 操作创建副本密钥。此操作一次创建一个副本密钥。您指定的区域必须符合副本密钥的区域要求

当您使用 ReplicateKey 操作时,无需为多区域密钥的任何共享属性指定值。共享属性值从主密钥复制并保持同步。但是,您可以为未共享的属性指定值。否则,Amazon KMS 将为 KMS 密钥应用标准默认值,而不是主密钥的值。

注意

如果您还没有为 TagsDescriptionKeyPolicy参数指定值,Amazon KMS 将创建不带标签的副本密钥、空字符串描述和默认的密钥策略

例如,以下命令在亚太地区(悉尼)区域 (ap-southeast-2) 中创建一个多区域副本密钥。此副本密钥基于美国东部(弗吉尼亚北部)区域 (us-east-1) 中的主密钥建模,它由 KeyId 参数的值进行标识。此示例接受所有其他属性的默认值,包括密钥策略。

响应描述了新的副本密钥。它包含共享属性的字段,例如 KeyIdKeySpecKeyUsage 和密钥材料来源 (Origin)。它还包括独立于主密钥的属性,例如 Description、密钥策略 (ReplicaKeyPolicy) 和标签 (ReplicaTags)。

响应还包括主密钥的密钥 ARN 和区域及其所有副本密钥,包括刚刚在 ap-southeast-2 区域中创建的密钥。在此示例中,ReplicaKey 元素表明此主密钥已在欧洲(爱尔兰)区域 (eu-west-1) 复制。

$ aws kms replicate-key \ --key-id arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab \ --replica-region ap-southeast-2 { "ReplicaKeyMetadata": { "MultiRegion": true, "MultiRegionConfiguration": { "MultiRegionKeyType": "REPLICA", "PrimaryKey": { "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "us-east-1" }, "ReplicaKeys": [ { "Arn": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "ap-southeast-2" }, { "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "eu-west-1" } ] }, "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "CreationDate": 1607472987.918, "Description": "", "Enabled": true, "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_KMS", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] }, "ReplicaKeyPolicy": "{\n \"Version\" : \"2012-10-17\",\n \"Id\" : \"key-default-1\",..., "ReplicaTags": [] }