

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

# 备份搜索
<a name="backup-search"></a>

## 概述
<a name="backup-search-overview"></a>

使用 AWS Backup，您可以创建 AWS 资源备份（也称为恢复点）。您可以使用 AWS Backup 控制台或命令行搜索某些资源类型（例如 Amazon S3 和 Amazon EBS）的备份，以及这些备份中的项目和文件。

AWS Backup 使您能够在精细级别上搜索支持的资源类型备份的元数据，寻找与您在搜索中定义的属性（例如大小、创建日期和资源类型）相匹配的文件或对象。您可以通过定义要查找的项目的属性来进行更深入的搜索。

首先，创建一个您希望能够包含在未来搜索中的备份索引。您可以通过备份计划自动创建备份索引，也可以为任何现有的恢复点手动创建备份索引。准备好进行搜索后，设置您希望在搜索结果中看到的备份和项目属性。您可以还原在搜索中搜索到的备份或项目，此操作是可选的。

本文档概述了创建备份索引、搜索索引备份、从搜索结果中恢复以及解决中 AWS Backup索引和搜索功能出现的任何问题的步骤。

## 备份索引和搜索的使用案例
<a name="backup-search-usecase"></a>

您可能是想要恢复特定文件或对象的管理员。您可以搜索恢复点的元数据并还原所需的确切备份、文件或对象，而不必手动识别或猜测哪些备份包含数据。

仅仅为了查找可能包含在其中的特定项目而还原完整备份可能需要花费数小时或数天的时间。而通过备份搜索，您可以仅查找和还原所需的特定文件或对象。

备份搜索对于备份管理员、备份操作员、数据所有者以及其他涉及数据备份、还原和合规性的 IT 专业人员非常有用。

## 访问
<a name="backup-search-access"></a>

在创建索引和搜索之前，您的账户必须具有所需的操作权限。

**索引权限**

对于索引操作，根据 IAM 角色而不是用户 AWS Backup 证书进行身份验证（有关 IAM 用户和 IAM 角色的详细信息，请参阅[身份验证](authentication.md)）。

创建 EBS 备份索引需要以下权限。这些权限包含在托管策略中 [AWSBackupServiceRolePolicyForIndexing](security-iam-awsmanpol.md#AWSBackupServiceRolePolicyForIndexing)：
+ `ec2:DescribeSnapshots`
+ `ebs:ListSnapshotBlocks`
+ `ebs:GetSnapshotBlock`
+ `kms:Decrypt`

创建 S3 索引不需要索引权限。

**搜索权限**

创建搜索需要以下权限。这些权限包含在托管策略中 [AWSBackupSearchOperatorAccess](security-iam-awsmanpol.md#AWSBackupSearchOperatorAccess)：
+ `backup:ListIndexedRecoveryPointsForSearch`
+ `backup:SearchRecoveryPoint`

如果您选择使用客户管理的密 AWS KMS 钥对搜索结果进行加密，请确保密钥中包含以下权限：
+ `kms:GenerateDataKey`
+ `kms:Decrypt`

## 流程
<a name="backup-search-process"></a>

备份搜索包括三个步骤，另外还有一个可选的第四个还原步骤，在您需要还原搜索中返回的项目时执行。

**为备份编制索引：**在备份计划中启用索引，或者通过控制台或 CLI 为每个要符合搜索条件的现有备份（恢复点）手动创建备份索引。

**在备份元数据中搜索恢复点、文件或对象：**指定要在搜索中查找的备份和项目的属性，例如搜索在 4 月 2 日至 6 日之间创建的标签为 `Administration` 的 S3 存储桶，查找键名称包含 `Admin` 且大于 100 MB 的对象。

**查看搜索结果：**如果您找到了要查找的恢复点或项目，可以选择将其还原。如果您没有找到所需的恢复点或项目，可以细化备份属性和项目属性，然后启动新的搜索。

**还原特定项目*（可选）*：**指定要还原的文件路径或项目，以及还原条件。

## 备份索引
<a name="backup-search-index"></a>

为了便于搜索，备份（恢复点）必须首先具有相应的索引。

您可以在备份计划中启用备份索引创建，这样未来的每个备份也将有一个关联的备份索引。您还可以在创建按需备份时创建索引。

或者，您可以通过 AWS Backup 控制台的 Vault 恢复点详细信息屏幕或通过 AWS CLI追溯方式为现有恢复点创建索引。

如果支持的资源类型的恢复点存储在标准备份保管库中，则可以创建备份索引（逻辑上受物理隔离的保管库中的恢复点当前不支持备份索引）。

**S3 备份索引**

S3 备份可以是定期的，即根据备份计划按固定的时间间隔安排备份。每次创建定期备份时，系统都会为其创建备份索引。S3 备份也可以是连续的，即记录备份中的每项更改。由于每天可能会有许多更改，因此对于连续备份，系统每天只创建一个备份索引。

为连续的 S3 恢复点创建的第一个备份索引是完整索引；同一恢复点的后续索引可能是增量索引。

**EBS 备份索引**

为 EBS 恢复点创建的每个备份索引都是完整索引（不是增量索引）。

AWS Backup 尝试在创建备份索引期间自动修复快照问题。如果创建恢复点时文件系统处于脏状态，则 AWS Backup 会自动尝试恢复文件系统。如果此恢复操作失败，索引创建作业也将失败。

快照的性质决定了能否对其编制索引：

**可以**编制索引：
+ 文件系统：ext2、ext3、ext4、vfat、xfs 和 ntfs

**无法**编制索引：
+ 归档层（冷存储）中的快照
+ RAID 和其他多磁盘存储选项
+ 符号链接
+ 硬链接

**备份索引创建步骤**

------
#### [ Console ]

**将备份索引创建添加到备份计划中。**

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

1. 在左侧导航栏的**我的账户**下，选择**备份计划**。

1. 在**备份计划**窗格中，选择包含要添加索引创建的计划名称的链接。

1. 在第二个窗格**备份规则**中，选择**添加备份规则**。

1. 向下滚动到**备份索引**窗格。选中要为其创建索引的资源类型旁边的复选框。

   对于此计划创建的每个新备份，还将同时为该恢复点创建相应的索引。

**为现有恢复点创建索引**

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

1. 在左侧导航栏中选择**保管库**。

1. 在存储要创建备份索引的备份的**保管库**名称列下，选择备份链接。

1. 在要为其创建备份索引的恢复点旁边打勾。

1. 选择**操作**按钮，然后选择**创建索引**。

创建索引时，其索引状态将为 `In progress`。状态变为 `Available` 后，可以将恢复点包含在搜索中。

**在创建按需备份时创建索引。**

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

1. 参阅[使用创建按需备份 AWS Backup](recov-point-create-on-demand-backup.md)使用 AWS Backup创建按需备份的步骤。

1. 在**设置**中，如果您选择了支持索引和搜索的资源类型，则系统将显示行项目**备份搜索索引**。开启**创建备份搜索索引**，在此按需备份进行的同时创建索引。

------
#### [ AWS CLI ]

通过 CLI 创建备份索引

使用 AWS CLI 命令[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-backup-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-backup-plan.html)制定新的备份计划。或者，使用 [https://amazonaws.com/documentation/api/latest/reference/backup/update-backup-plan.html](https://amazonaws.com/documentation/api/latest/reference/backup/update-backup-plan.html)，修改现有计划。

对于任一操作，请在参数 `--backup-plan -rules` 中包含 `IndexActions`。

有关更多信息，请参阅《AWS Backup API 参考指南》**中的 [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_BackupRuleInput.html](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_BackupRuleInput.html) 中的 [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_IndexAction.html](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_IndexAction.html)。

为恢复点创建索引后，就可以更新其设置。

示例：

```
aws backup update-recovery-point-index-settings
--recovery-point-arn arn:aws:ec2:us-west-2::snapshot/snap-012345678901234567           
--backup-vault-name [vaultname] // 
--index ENABLED
--endpoint-url [URL]
--iam-role-arn arn:aws:iam::012345678901:role/Admin
```

------

## Searches
<a name="backup-search-searches"></a>

一旦有一个或多个带有索引的备份，就可以通过 AWS Backup 控制台或通过 AWS CLI搜索这些已编入索引的备份。

在创建搜索时，您将选择一种资源类型。结果将仅返回包含该类型的恢复点，例如 S3 存储桶或 EBS 快照。

然后，指定要包含在搜索中的备份（恢复点）的属性。您最多可以指定 9 个属性。多次包含的属性类型将返回与所有包含的值相匹配的结果。

指定要在返回的恢复点内查找的项目的属性，例如存储桶名称或文件大小。可通过包含多个属性来缩小结果范围。

如果在通过 AWS Backup 控制台创建搜索时包含某个项目属性的一个值，则结果将仅返回与该项目属性（AND 逻辑）相匹配的项目。如果您重复包含相同的项目属性，但这些项目属性具有不同的值，则结果将返回与*任何*包含的值（OR 逻辑）相匹配的所有项目。例如，如果您包含两个 EBS 文件路径，则搜索中包含的所有与*任一*文件路径相匹配的恢复点项目都将出现在搜索结果中。
+ S3 项目属性包括创建时间、Etag、对象键、对象大小和版本 ID。
+ 可用于帮助筛选搜索结果的 EBS 项目属性包括创建时间、文件路径、上次修改时间和大小。

或者，您可以添加 AWS KMS 密钥 ID 来加密结果。如果未包含密钥，则 AWS Backup 将使用服务拥有的密钥对结果进行加密。

------
#### [ Console ]

**在备份中搜索项目**

针对已编制索引的备份创建搜索的路径有多种：

您可以通过导航到**备份保管库**并选择要搜索的特定恢复点来找到所需的恢复点。然后，选择**搜索**。您也可以从**恢复点详细信息**页面开始搜索。

在还原过程中，如果要包含特定的项目，则可以搜索备份以帮助找到包含这些项目的 URL 或文件路径。

要搜索多个备份，请查看以下步骤：

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

1. 在左侧导航菜单中，导航到**搜索**。

1. 在“搜索历史记录”部分中，选择**创建搜索**。

1. 选择**资源类型**。您必须为每次搜索选择一种资源类型。如果在输入其他字段后更改资源类型，则输入的内容将丢失，需要重新输入。

1. 选择 1 到 9 个**备份属性**，以帮助缩小搜索结果中将返回的恢复点范围。

   AWS Backup 将扫描所有具有索引的备份。它将仅返回与所有不同备份属性相匹配的恢复点。例如，将 `backup tag = "savings"` 和 `backup creation date = May 20, 2019 through May 23, 2019` 包含在内。

   您可以包含同一属性的多个值，例如三个不同的标签。如果重复包含具有不同值的属性，则搜索结果将返回与任何指定值相匹配的所有项目（称为“OR”逻辑）。例如，将 `backup tag = "savings"`、`backup tag = "checking"`、`backup creation date = May 20, 2019 through May 23, 2019` 包含在内；以及将 `backup creation date = May 20, 2020 through May 23, 2020` 包含在内。

   备份创建日期范围算作一个备份属性。只能将一个备份创建日期范围作为备份属性包含在内。

1. 选择 1 到 9 个**项目属性**，以帮助进一步缩小搜索返回的结果范围。

   您可以包含同一属性的多个值。如果重复包含具有不同值的属性，则搜索结果将返回与任何指定值相匹配的所有项目。

1. *可选*：要加密搜索结果，您可以通过下拉菜单或 ARN 指定现有 AWS KMS 密钥，也可以创建新的 KMS 密钥。

1. AWS Backup 建议创建一个唯一的搜索作业名称。

1. 选择**开始搜索**。

   您可能会看到一条警告，提示您的搜索可能包含大量恢复点。最佳实践是返回备份属性并选择更多条件来缩小搜索结果范围。减少搜索结果中的备份可能会降低成本。

------
#### [ AWS CLI ]

使用 AWS CLI 命令[start-search-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backupsearch/start-search-job.html)。

必需参数：

```
--search-scope // defines the backup properties you wish to include in the search
```

可选参数：

```
--client-token // string
--encryption-key-arn // if not included, AWS Backup uses service-owned key to encrypt results
--item-filters // accepted keys and values depend on which resource type is included in the search
--name // If not included, AWS Backup auto-assigns a name
```

可接受的 S3 项目筛选条件包括：

```
--object-keys // string 
--sizes // long condition
--creation-times // time condition
--version-ids // string 
--etags // string
```

可接受的 EBS 项目筛选条件包括：

```
--file-paths //
--sizes //
--creation-times //
--last-modification-time //
```

------

### 停止搜索
<a name="backup-search-stop"></a>

如果搜索作业的状态为 `RUNNING`，您可以停止该搜索作业。

搜索作业将一直处于进行中，直至其变为 `COMPLETED` 状态（如果出现错误，则为 `FAILED` 状态）。如果您想结束正在进行的搜索作业，可以中断状态为 `RUNNING` 的搜索作业。当您在搜索作业完成之前找到了要查找的备份或项目时，可能会想要这样做。
+ 在 AWS Backup 控制台中，选择 “**停止搜索作业**” 按钮。
+ 在 CLI 中，发送包含要停止的搜索作业标识符的操作 `stop-search-job`。

## 搜索结果
<a name="backup-search-results"></a>

 搜索作业启动后，即使处于 `Running` 状态，它也将开始汇总结果。在搜索作业运行期间，直至其完成，部分结果可用：
+ 在控制台中，将显示搜索期间检索到的结果。结果不会自动刷新，但您可以通过选择刷新按钮来查看最新结果。要查看前 1000 个项目以外的结果，请选择**导出结果**。
+ CLI 操作[get-search-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backupsearch/get-search-job.html)并[list-search-jobs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backupsearch/list-search-jobs.html)返回搜索作业状态。如果作业状态为 `RUNNING`，则该操作将返回一个不完整的列表。

搜索停止或完成后，搜索作业的结果将在控制台和 CLI 中保留 7 天。在此期间，您可以将结果导出到所需的 Amazon S3 存储桶中，这样您就可以在此时间段之后访问这些结果。

每个搜索作业都包含详细信息，可在控制台或通过 CLI 获得，包括搜索的恢复点、搜索名称和状态、描述、创建和完成日期和时间、返回的对象或项目的信息以及扫描的项目和恢复点的数量。

如果结果中未包含您要查找的恢复点、项目或对象，则您可以使用不同的备份和项目属性创建新的搜索。每次搜索均单独收费。

对于搜索返回的结果，每种资源类型都有独特的注意事项：
+ 对 S3 恢复点的搜索不会将删除标记作为其搜索结果的一部分返回，即使这些对象与搜索的指定项目属性相匹配也一样。
+ 对于不支持创建时间字段的文件系统，EBS 搜索结果的该字段可能为空值。这些文件系统可能包括但不限于 vfat、ext2/3 和 v5 之前的 XFS 版本。

## 将搜索结果导出到 S3 存储桶
<a name="backup-search-export"></a>

AWS Backup 将搜索结果保留 7 天，从完成时间和日期开始。这些结果可在 AWS Backup 控制台中查看，也可以通过 CLI 操作进行检索。 list-search-job-results

最佳实践是将搜索结果导出到 S3 存储桶，这样可以将结果保留超过 7 天的时间。导出作业将在您指定的存储桶中创建一个名为 `Export Job ID` 的文件夹，然后将结果导出到该文件夹中。将结果导出到该文件夹中后，只要您保留存储桶，这些结果便会一直可用。

您可以导出任何支持的资源类型的搜索结果，而不仅仅是 S3 搜索结果。

------
#### [ Console ]

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

1. 导航到**作业 > 搜索作业**。

1. 选择**搜索作业结果**。

1. 在要导出的结果旁边打勾。

1. 选择**导出到 S3**。

1. 为导出作业选择目标 S3 存储桶。

1. 配置完所有字段后，选择**导出**。

导出操作将创建导出作业。您可以在**作业 > 导出作业**中进行查看。导出作业变为 `COMPLETED` 状态后，搜索结果信息将在 S3 存储桶中可供检索或者下载为一个或多个 .csv 文件。

------
#### [ AWS CLI ]

使用 AWS CLI 命令 [start-search-result-export-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backupsearch/start-search-result-export-job.html)。

必需参数：

```
--search-job-identifier  
--export-specification
```

可选参数：

```
--client-token 
--role-arn
--tags
```

操作将返回 `ExportJobArn` 和 `ExportJobIdentifier`。

使用 [list-search-result-export-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backupsearch/list-search-result-export-jobs.html) s 检索导出任务的状态。

------

## 成本注意事项和最佳实践
<a name="backup-search-cost-considerations"></a>

每次创建备份索引和搜索作业时都会产生费用。每个备份索引都有存储费用。每次从搜索结果中还原（与其他所有还原作业一样）也会产生费用。如需了解更多信息，请参阅 [AWS Backup 定价](https://aws.amazon.com//backup/pricing/)。

您可以通过包含多个备份和项目属性来缩小搜索作业可能返回的结果范围；这种方法产生的成本可能低于在所有可能的恢复点中进行搜索产生的成本。



## 从搜索中还原
<a name="backup-search-restore"></a>

许多客户选择搜索其备份（以及其中的对象或文件）来查找特定的恢复点或要还原的项目。有关还原的一般信息，请参阅[按资源类型还原备份](restoring-a-backup.md)。

您可以通过导航到**职位 > 搜索工作结果 > 恢复，在 AWS Backup 控制台中从搜索结果中恢复**。要通过恢复 AWS CLI，请[https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html)使用特定于资源类型、恢复点和恢复所涉及项目的元数据。

有关如何使用 S3 数据还原恢复点、如何还原 S3 存储桶或者如何使用 S3 存储桶还原最多五个对象或文件夹的信息，请参阅[使用恢复 S3 数据 AWS Backup](restoring-s3.md)。

有关将 EBS 快照还原到附加到 EC2 实例的新卷的信息，请参阅[还原 Amazon EBS 卷](restoring-ebs.md)。