

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

# 还原 Amazon DynamoDB 表
<a name="restoring-dynamodb"></a>

## 使用 AWS Backup 控制台恢复 DynamoDB 恢复点
<a name="ddb-restore-console"></a>

**还原 DynamoDB 表**

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 在导航窗格中，选择**受保护的资源**和要还原的 DynamoDB 资源 ID。

1. 在 **Resource details (资源详细信息)** 页面上，将显示所选资源 ID 的恢复点列表。要还原资源，请在**备份**窗格中，选择资源的恢复点 ID 旁边的单选按钮。在窗格的右上角，选择**还原**。

1. 对于**设置**，在**新表名称**文本字段中输入新表的名称。

1. 对于**还原角色**，请选择 AWS Backup 将担任此还原的 IAM 角色。

1. 对于**加密设置**：

   1. 如果您的备份由 DynamoDB 管理（其 ARN 开头为），则`arn:aws:dynamodb`使用拥有的密钥对还原 AWS Backup 后的表进行加密。 AWS

      要选择其他密钥来加密已恢复的表，您可以使用该 AWS Backup [StartRestoreJob操作](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html)或从 [DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Restore.Tutorial.html#restoretable_console) 控制台执行恢复。

   1. 如果您的备份支持完全 AWS Backup 管理（其 ARN 开头为`arn:aws:backup`），则可以选择以下任何加密选项来保护已恢复的表：
      + （默认）DynamoDB 拥有的 KMS 密钥（加密不收取额外费用）
      + DynamoDB 托管的 KMS 密钥（收取 KMS 费用）
      + 客户托管的 KMS 密钥（收取 KMS 费用）

      “DynamoDB 拥有”和“DynamoDB 托管”的密钥分别与“AWS拥有”和“AWS托管”的密钥相同。如需澄清，请参阅《Amazon DynamoDB 开发人员指南》** 中的[静态加密：工作原理](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html)。

      有关完全 AWS Backup 管理的更多信息，请参阅[高级 DynamoDB 备份](advanced-ddb-backup.md)。
**注意**  
仅当您还原复制的备份并希望使用与加密原始表相同的密钥对还原后的表进行加密时，以下准则才适用。  
恢复跨区域备份时，要使用与加密原始表相同的密钥来加密已恢复的表，您的密钥必须是多区域密钥。 AWS自有密钥和 AWS托管密钥不是多区域密钥。要了解更多信息，请参阅《AWS Key Management Service 开发人员指南》**中的[多区域密钥](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)。  
恢复跨账户备份时，要使用与加密原始表相同的密钥来加密已恢复的表，则必须与目标账户共享源账户中的密钥。 AWS账户之间不能共享拥有的密钥和 AWS托管的密钥。要了解更多信息，请参阅《AWS Key Management Service 开发人员指南》**中的[允许其他账户中的用户使用 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。

1. 选择**还原备份**。

   这将显示**还原作业**窗格。页面顶部的消息提供了有关还原作业的信息。

## 使用 AWS Backup API、CLI 或 SDK 恢复 DynamoDB 恢复点
<a name="ddb-restore-cli"></a>

使用 `[StartRestoreJob](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html)`。在任何 DynamoDB 还原期间，您都可以指定以下元数据。此元数据不区分大小写。

```
targetTableName
encryptionType
kmsMasterKeyArn
aws:backup:request-id
```

以下是 CLI 中某项 `StartRestoreJob` 操作的 `restoreMetadata` 参数示例：

```
aws backup start-restore-job \
--recovery-point-arn "arn:aws:backup:us-east-1:123456789012:recovery-point:abcdef12-g3hi-4567-8cjk-012345678901" \
--iam-role-arn "arn:aws:iam::123456789012:role/YourIamRole" \
--metadata 'TargetTableName=TestRestoreTestTable,EncryptionType=KMS,kmsMasterKeyArn=arn:aws:kms:us-east-1:123456789012:key/abcdefg' \
--region us-east-1 \
--endpoint-url https://endpointurl.com
```

前面的示例使用客户管理的密钥对恢复的表进行加密。

要使用 AWS拥有的密钥对已恢复的表进行加密，请指定以下还原元数据：`"encryptionType\":\"Default\"`。

要使用 AWS托管密钥加密已恢复的表，请省略`kmsMasterKeyArn`参数并指定:。`"encryptionType\":\"KMS\"`

要使用客户管理的密钥对已恢复的表进行加密，请指定以下还原元数据：`"encryptionType\":\"KMS\",\"kmsMasterKeyArn\":\"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"`。