删除多区域密钥 - AWS Key Management Service

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

删除多区域密钥

当您不再使用多区域主密钥或副本密钥时,您可以计划删除该密钥。

尽管删除 KMS 密钥应始终谨慎操作,但删除多区域密钥的副本的风险较小,前提是主密钥仍然存在于 AWS KMS 中。如果从其区域中删除副本密钥,但发现在已删除密钥下加密的密文,则可以使用任何相关的多区域密钥解密该密文。您还可以通过将主密钥再次复制到副本密钥区域来重新创建副本密钥。

但是,删除主密钥及其所有副本密钥是一个非常危险的操作,相当于删除单区域密钥。

警告

删除 KMS 密钥具有破坏性和潜在危险性。只有当您确定不再需要使用 KMS 密钥并且将来也不再需要了,才能继续删除操作。如果您不确定,则应禁用 KMS 密钥,而不是将其删除。

要删除主密钥,必须先删除其所有的副本密钥。如果您必须从特定区域删除主密钥而不删除其副本密钥,请通过更新主区域将主密钥更改为副本密钥。

在安排删除任何 KMS 密钥之前,请查看删除 AWS KMS keys主题中的注意事项,以及说明如何确定 KMS 密钥的过去使用情况以及如何设置警 CloudWatch 报以提醒您在等待期间使用 KMS 密钥的主题。在删除非对称多区域密钥的主密钥之前,请查看删除非对称密钥主题。

删除多区域密钥的权限

要计划删除多区域密钥,您只需要以下权限。

我们还强烈建议您拥有以下相关权限。

您还可以包括复制主密钥和更改主密钥的权限。

您可以将这些权限包含在 IAM policy 中,但最佳做法是将这些权限放在密钥政策中,在此策略中,这些权限仅应用于您需要管理的 KMS 密钥。

如何删除副本密钥

您可以使用 AWS KMS 控制台或 AWS KMS API 删除副本密钥。您可以随时删除副本密钥。它不依赖于任何其他 KMS 密钥的密钥状态。

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

删除多区域副本密钥的过程与删除单区域密钥相同。


                删除多区域副本密钥
  1. 计划删除副本密钥。选择 7-30 天的等待时间。默认的等待期限为 30 天。

  2. 在等待期内,副本密钥的密钥状态更改为 Pending deletion (PendingDeletion),并且您不能在加密操作中使用它。

  3. 您可以在等待期内的任何时间点取消对副本密钥的计划删除。密钥状态更改为 Disabled,但您可以重新启用 KMS 密钥。

  4. 等待期到期后,AWS KMS 将删除副本密钥。

您可以查看您的 AWS CloudTrail 日志中的操作的记录。AWS KMS 将记录计划删除 KMS 密钥的操作和删除 KMS 密钥的操作。

删除副本密钥(控制台)

要计划删除多区域副本密钥,请使用您用于计划删除单区域密钥的相同程序

因为相关副本密钥位于不同 AWS 区域 中,您无法计划一次删除多个副本密钥。要删除所有相关的副本密钥,请使用类似于以下内容的模式。

计划删除所有相关副本密钥
  1. 登录到 AWS Management Console,然后通过以下网址打开 AWS Key Management Service (AWS KMS) 控制台:https://console.aws.amazon.com/kms

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

  3. 使用页面右上角的 Region selector(区域选择器)选择多区域主密钥的区域。

  4. 选择主密钥的别名和密钥 ID。

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

  6. Related multi-Region keys(相关的多区域密钥)部分中,选择副本密钥的密钥 ARN。

    此操作将在新的浏览器选项卡中打开副本密钥的密钥详细信息页面。控制台设置为副本密钥区域。

  7. Key actions(密钥操作)菜单中,选择 Schedule key deletion(计划删除密钥)。

    此操作将启动计划删除密钥的过程。完成计划密钥删除过程。有关更多信息,请参阅 计划和取消密钥删除(控制台)

  8. 返回到显示主密钥的 Regionality(区域性)选项卡的浏览器选项卡。(您可能需要刷新此页面才能看到副本密钥的更新状态。) 选择另一个副本密钥的密钥 ARN,然后重复计划删除副本密钥的过程。

删除副本密钥 (AWS KMS API)

要计划删除多区域副本密钥,请使用ScheduleKeyDeletion操作。要标识 KMS 密钥,请使用其密钥 ID密钥 ARN。使用多区域密钥时,您可以通过使用具有显式 Region(区域)值的密钥 ARN 减少错误的发生率。

例如,此命令将从 us-west-2(美国西部(俄勒冈))区域删除副本密钥。由于命令没有指定等待时间,因此等待时间设置为默认值 30 天。

$ aws kms schedule-key-deletion \ --region us-west-2 \ --key-id arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab

如果命令成功,将返回密钥 ARN (KeyId)、等待时间 (PendingWindowInDays)、删除日期 (DeletionDate) 和当前密钥状态 (KeyState)(预计将为 PendingDeletion)。

删除多区域副本密钥时,请确保验证密钥 ARN 中的密钥 ID 和区域值是否与您期望的值相同。

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "DeletionDate": 1599523200.0, "KeyState": "PendingDeletion", "PendingWindowInDays": 30 }

要以编程方式删除多区域主密钥的所有副本,请创建包含副本密钥的区域列表。然后,对于列表中的每个区域,调用 ScheduleKeyDeletion 操作,如上所示。

与永久删除的单区域密钥不同的是,您可以通过将主密钥复制到已删除副本密钥所在的区域来恢复副本密钥。

要检查副本密钥的状态并查看多区域密钥的主键和副本密钥,请使用DescribeKey操作。

如何删除主密钥

您可以随时计划删除多区域主密钥。然而,AWS KMS 将不会删除具有副本密钥的多区域主密钥,即使它们已计划删除。

要删除主密钥,您必须计划删除其所有副本密钥,然后等待副本密钥被删除。删除主密钥所需的等待时间从删除主密钥的最后一个副本密钥开始。如果您必须从特定区域删除主密钥而不删除其副本密钥,请通过更新主区域将主密钥更改为副本密钥。

如果主密钥不包含副本密钥,则该过程与删除副本密钥或者删除任何区域性 KMS 密钥相同。

如果某个主密钥已计划删除,则无法用它来执行加密操作,也无法复制它。但是,除非它们也被计划删除,否则其副本密钥不受影响。

您可以使用 AWS KMS 控制台或 AWS KMS API 来计划删除主密钥和副本密钥。您可以在计划删除副本密钥之前、之后或同时计划删除主密钥。过程可能如下所示。

  1. 计划删除主密钥。选择 7-30 天的等待时间。默认的等待期限为 30 天。但是,在删除所有副本密钥之前,主密钥的等待期不会开始。

    如果任何副本密钥仍然存在,主密钥的密钥状态更改为 Pending replica deletion (PendingReplicaDeletion)。否则,它将更改为 Pending deletion (PendingDeletion)。无论哪种情况,都不能在加密操作中使用主密钥,也无法复制它。

    计划删除主密钥不会影响副本密钥。它们的密钥状态仍为启用状态,您可以在加密操作中使用它们。如果未删除副本密钥,主密钥的 Pending replica deletion 状态可以无限期地持续存在。

    KMS key: Key state: Primary (us-east-1) Pending replica deletion (waiting period 30 days -- not started) Replica (us-west-2) Enabled Replica (eu-west-1) Enabled Replica (ap-southeast-2) Enabled
    
                        计划删除多区域主密钥
  2. 计划删除每个副本密钥。选择 7-30 天的等待时间。默认的等待期限为 30 天。您可以同时删除多个副本密钥。他们的等待期同时运行。在等待期内,副本密钥的密钥状态更改为 Pending deletion (PendingDeletion),并且您不能在加密操作中使用这些 KMS 密钥。

    例如,如果您有三个副本密钥,则可以同时计划删除所有三个副本密钥。他们可以具有相同或不同的等待时间。请注意,主密钥上的等待期尚未开始。它的密钥状态为 PendingReplicaDeletion,因为它具有现有的副本密钥。

    KMS key: Key state: Primary key (us-east-1) Pending replica deletion (waiting period 30 days -- not started) Replica (us-west-2) Pending deletion (7 days) Replica (eu-west-1) Pending deletion (7 days) Replica (ap-southeast-2) Pending deletion (30 days)
  3. 您可以取消对主密钥或任何副本密钥的计划删除,直到它被删除。密钥状态更改为 Disabled,但您可以重新启用 KMS 密钥。

  4. 当最后一个副本密钥的等待时间到期时,AWS KMS 将删除最后一个副本密钥。主密钥的密钥状态从 Pending replica deletion (PendingReplicaDeletion) 更改为 Pending deletion (PendingDeletion),主密钥的 7-30 天等待期开始。

    KMS key: Key state: Primary key (us-east-1) Pending deletion (waiting period 30 days)
    
                        删除多区域密钥的所有副本密钥
  5. 等待期到期后,AWS KMS 将删除主密钥。

删除带有副本的主密钥的最短时间为 14 天。

如果计划删除主密钥和所有副本密钥的等待期为 7 天,则副本密钥将在 7 天后删除。主密钥在第 14 天被删除。

  • 第 1 天:计划删除主密钥和副本密钥,最短等待时间为 7 天。副本密钥的 7 天删除等待期开始。主密钥的删除等待期尚未开始。

  • 第 7 天:副本密钥的删除等待期结束。AWS KMS 删除所有副本密钥。删除最后一个副本密钥后,主密钥的 7 天删除等待期将开始。

  • 第 14 天:主密钥的删除等待期结束。AWS KMS 删除主密钥。

您可以查看您的 AWS CloudTrail 日志中的操作的记录。AWS KMS 将记录计划删除每个 KMS 密钥的操作和删除 KMS 密钥的操作。

删除主密钥(控制台)

要删除多区域主密钥,请按以下步骤操作。

计划密钥删除
  1. 登录到 AWS Management Console,然后通过以下网址打开 AWS Key Management Service (AWS KMS) 控制台:https://console.aws.amazon.com/kms

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

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

  4. 选中想要删除的主密钥旁边的复选框。您还可以选择一个或多个 KMS 密钥,包括此主密钥的副本。

  5. 依次选择 Key actions (密钥操作)Schedule key deletion (计划密钥删除)

  6. 阅读并考虑警告,以及有关在等待期限内取消删除的信息。如果决定取消删除,请选择 Cancel (取消)

  7. 对于 Waiting period (in days) (等待期限(天)),键入一个介于 7 和 30 之间的天数。如果您选择了多个 KMS 密钥,则选择的等待时间将应用于所有选定的 KMS 密钥。副本密钥的等待期同时运行,但主密钥的等待时间不会开始,直到 AWS KMS 删除最后一个副本密钥。

  8. 选中 Confirm that you want to delete this key in <number of days> days(确认您要在 n 天后删除此密钥)旁的复选框。

  9. 选择计划删除

要检查 KMS 密钥的删除状态,请在主密钥的 detail page(详细信息)页面上,参阅 General configuration(常规配置)部分。密钥状态将显示在 Status(状态)字段中。当主密钥的密钥状态更改为 Pending deletion 时,将显示计划删除日期

您也可以在多区域密钥的详细信息页面的 Regionality(区域性)选项卡上检查密钥状态(状态)。有关更多信息,请参阅 查看多区域密钥

删除主密钥 (AWS KMS API)

要删除多区域副本密钥,请使用ScheduleKeyDeletion操作。要标识 KMS 密钥,请使用其密钥 ID密钥 ARN。使用多区域密钥时,您可以通过使用具有显式 Region(区域)值的密钥 ARN 减少错误的发生率。

例如,此命令将从 us-east-1(美国东部(弗吉尼亚北部))区域删除主密钥。由于命令没有指定等待时间,因此等待时间设置为默认值 30 天。

$ aws kms schedule-key-deletion \ --key-id arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab

如果命令成功,则它会返回密钥 ARN、生成的密钥状态和等待期 (PendingWindowInDays)。

如果主密钥不包含副本密钥,则主密钥的密钥状态为 PendingDeletion,并且输出包括 DeletionDate 字段。如果仍有任何副本密钥,则主密钥的密钥状态为 PendingReplicaDeletion,且 DeletionDate 因为不确定而被省略。即使副本密钥也计划删除,您也可以取消计划的删除。

删除多区域主密钥时,请确保验证密钥 ARN 中的密钥 ID 和区域值是否与您期望的值相同。

{ "KeyId": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "KeyState": "PendingReplicaDeletion", "PendingWindowInDays": 30 }

要检查您的 KMS 密钥的删除状态,请使用对主密钥或任何剩余副本密钥的DescribeKey操作。主密钥的等待周期时钟不会启动,直到删除最后一个副本并且密钥状态更改为 PendingDeletion

要计算主密钥的预期删除日期,请循环遍历响应中的副本密钥 ARN,在每个密钥上运行 DescribeKey,获取最新的 DeletionDate 值,然后添加主密钥的 PendingDeletionWindowInDays 值。副本密钥的等待期同时运行。

在以下示例中,KMS 密钥是具有现有副本密钥的多区域主密钥。因为密钥状态为 PendingReplicaDeletion,响应包括等待时间 (PendingWindowInDays),而不是 DeletionDate。主密钥的实际删除日期取决于删除副本密钥的时间。

$ aws kms describe-key \ --key-id arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab { "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "CreationDate": 1597902361.481, "Enabled": false, "Description": "", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "PendingReplicaDeletion", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": true, "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "us-east-1" }, "ReplicaKeys": [ { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "us-west-2" }, { "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "eu-west-1" }, { "Arn": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "ap-southeast-2" } ] }, "PendingDeletionWindowInDays": 30 } }

删除所有副本后,DescribeKey 输出将显示密钥状态为 PendingDeletion 的其余主密钥。当密钥状态为 PendingDeletion 时,会显示 DeletionDate 字段,而不是 PendingWindowInDays 字段。

$ aws kms describe-key \ --key-id arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab { "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", "Arn": "", "CreationDate": 1597902361.481, "Enabled": false, "Description": "", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "PendingDeletion", "KeyUsage": "ENCRYPT_DECRYPT", "DeletionDate": 1597968000.0, "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": true, "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "us-east-1" }, "ReplicaKeys": [] } } }