

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

# Amazon S3
<a name="data-source-s3"></a>

Amazon S3 是一种对象存储服务，可将数据作为对象存储在存储桶中。您可以使用 Amazon Kendra 为 Amazon S3 存储桶中的文档存储库编制索引。

**警告**  
Amazon Kendra 不使用向 Amazon Kendra 委托人授予与 S3 存储桶交互的权限的存储桶策略。相反，它使用 IAM 角色。请确保该成员 Amazon Kendra 未作为可信成员包含在存储桶策略中，以避免在意外向任意委托人授予权限时出现任何数据安全问题。但是，您可以添加存储桶策略，以便在不同的账户中使用 Amazon S3 存储桶。有关更多信息，请参阅[跨账户使用 Amazon S3 的策略](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds-s3-cross-accounts)（在“S3 IAM 角色”选项卡的**数据来源的IAM 角色**下）。有关 S3 数据源的 IAM 角色的信息，请参阅[IAM 角色](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds-s3)。

**注意**  
Amazon Kendra 现在支持升级后的 Amazon S3 连接器。  
已为您自动完成控制台升级。您在控制台中新建的所有连接器都将使用升级后的架构。现在，如果您使用 API，则必须使用 [https://docs.aws.amazon.com/kendra/latest/APIReference/API_TemplateConfiguration.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_TemplateConfiguration.html) 对象而不是 `S3DataSourceConfiguration` 对象来配置您的连接器。  
使用旧版控制台和 API 架构配置的连接器仍可照常运行，但您将无法编辑或更新它们。如果要编辑或更新连接器配置，必须新建一个连接器。  
我们建议您将连接器工作流程迁移至升级后的版本。使用旧版架构配置的连接器的支持预计将在 2024 年 6 月前终止。

您可以使用[Amazon Kendra 控制台](https://console.aws.amazon.com/kendra/)或 [TemplateConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_TemplateConfiguration.html)API 连接到您的 Amazon S3 数据源。

**注意**  
要为您的 Amazon S3 数据源生成同步状态报告，请参阅数据源[疑难解答](https://docs.aws.amazon.com/kendra/latest/dg/troubleshooting-data-sources.html#troubleshooting-data-sources-sync-status-manifest)。

要 Amazon Kendra 对 S3 数据源连接器进行故障排除，请参阅[数据来源故障排除](troubleshooting-data-sources.md)。

**Topics**
+ [支持的功能](#supported-features-s3)
+ [先决条件](#prerequisites-s3)
+ [连接说明](#data-source-procedure-s3)
+ [创建 Amazon S3 数据源](create-ds-s3.md)
+ [Amazon S3 文档元数据](s3-metadata.md)
+ [Amazon S3 数据源的访问控制](s3-acl.md)
+ [Amazon VPC 与 Amazon S3 数据源一起使用](s3-vpc-example-1.md)

## 支持的功能
<a name="supported-features-s3"></a>
+ 字段映射
+ 用户访问控制
+ 包含/排除筛选条件
+ 完整和增量内容同步
+ 虚拟私有云（VPC）

## 先决条件
<a name="prerequisites-s3"></a>

在使用 Amazon Kendra 索引 S3 数据源之前，请在您的 S3 和 AWS 账户中进行这些更改。

**在 S3 中，请确保：**
+ 已复制 Amazon S3 存储桶的名称。
**注意**  
您的存储桶必须与您的 Amazon Kendra 索引位于同一区域，并且您的索引必须有权访问包含您的文档的存储桶。
+ 在 S3 以及计划用于编制同一索引的其他数据来源中，已检查每个文档都是唯一的。您要用于编制索引的每个数据来源在所有数据来源中都不能包含相同的文档。文档对索引来说 IDs 是全局的，并且每个索引必须是唯一的。

**在您的 AWS 账户中，请确保您有：**
+ [已创建 Amazon Kendra 索引](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html)，如果使用 API，则记下索引 ID。
+ 为您的数据源@@ [创建了一个 IAM 角色](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds)，如果使用 API，请记下该角色的 ARN。 IAM 

如果您没有现有 IAM 角色，则可以在将 S3 数据源连接到时使用控制台创建新 IAM 角色 Amazon Kendra。如果您使用的是 API，则必须提供现有 IAM 角色的 ARN 和索引 ID。

## 连接说明
<a name="data-source-procedure-s3"></a>

要连接 Amazon Kendra 到 S3 数据源，您必须提供 S3 数据源的必要详细信息， Amazon Kendra 以便访问您的数据。如果您尚未为 S3 配置 Amazon Kendra，请参阅[先决条件](#prerequisites-s3)。

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

**要连接 Amazon Kendra 到 Amazon S3 ** 

1. 登录 AWS 管理控制台 并打开[Amazon Kendra 控制台](https://console.aws.amazon.com/kendra/)。

1. 在左侧导航窗格中，选择**索引**，然后从索引列表中选择要使用的索引。
**注意**  
您可以选择在**索引设置**下配置或编辑您的**用户访问控制**设置。

1. 在**开始使用**页面上，选择**添加数据来源**。

1. 在**添加数据来源**页面上，选择 **S3 连接器**，然后选择**添加连接器**。如果使用版本 2（如果适用），请选择带有“V2.0”标签的 **S3 连接器**。

1. 在**指定数据来源详细信息**页面上，输入以下信息：

   1. 在**名称和描述**中，在**数据来源名称**中输入您的数据来源的名称。可以包含连字符，但不能包含空格。

   1. （可选）**描述**：输入数据来源的描述信息。

   1. 在**默认语言**中，选择用于筛选文档以编制索引的语言。除非另行指定，否则语言默认为英语。在文档元数据中指定的语言会覆盖所选语言。

   1. 在**标签**中，用于**添加新标签**-包括可选标签以搜索和筛选您的资源或跟踪您的 AWS 成本。

   1. 选择**下一步**。

1. 在**定义访问权限和安全性**页面上，输入以下可选信息：

   1. **IAM ro** le —选择现有 IAM 角色或创建新 IAM 角色来访问您的存储库凭据和索引内容。
**注意**  
IAM 用于索引的角色不能用于数据源。如果您不确定是否将现有角色用于编制索引或常见问题解答，为了避免出错，请选择**创建新角色**。

   1. **虚拟私有云（VPC）**- 您可以选择使用 VPC。如果是这样，则必须添加**子网**和 **VPC 安全组**。

   1. 选择**下一步**。

1. 在**配置同步设置**页面上，请输入以下信息：

   1. 在**数据来源位置**中 - 指定存储您数据的 Amazon S3 存储桶的路径。选择**浏览 S3** 以选择 S3 存储桶。

   1. 对于**最大文件大小** - 指定文件大小上限（以 MB 为单位），仅爬取不超过此大小的文件。允许的最大文件 Amazon Kendra 大小为 50 MB。

   1. 对于（可选）**元数据文件前缀文件夹位置**-指定存储您 fields/attributes 和其他文档元数据的文件夹的路径。选择**浏览 S3** 以找到元数据文件夹。

   1. 对于（可选的）**访问控制列表配置文件的位置** - 指定包含用户及其文档访问权限的 JSON 结构文件的路径。选择**浏览 S3** 以找到 ACL 文件。

   1. （可选）**选择解密密钥** - 选择使用解密密钥。您可以选择使用现有的 AWS KMS 密钥。

   1. 对于（可选的）**其他配置** - 添加正则表达式以包含或排除某些文件。所有路径都是相对于数据来源位置 S3 存储桶的路径。

   1. **同步模式** – 选择在数据来源内容发生变化时更新索引的方式。首次与同步数据源时， Amazon Kendra 默认情况下会对所有内容进行抓取和索引。如果首次同步失败，即使您没有选择“完整同步”作为同步模式，也必须执行一次完整的数据同步。
      + 完整同步：每次数据来源与索引同步时，重新为所有内容编制索引，并替换已有内容。
      + 新增、已修改、已删除的同步：每次数据源与索引同步时，仅索引新内容、修改内容和已删除内容。 Amazon Kendra 可以使用数据源的机制来跟踪内容更改并索引自上次同步以来更改的内容。

   1. 在**同步运行计划**的**频率**中 – 选择同步数据来源内容并更新索引的频率。

   1. 选择**下一步**。

1. 在**设置字段映射**页面上，输入以下可选信息：

   1. **默认字段映射**-从 Amazon Kendra 生成的默认数据源字段中选择要映射到索引的字段。

   1.  **添加字段** - 选择添加自定义数据来源字段以创建要映射到的索引字段名称和字段数据类型。

   1. 选择**下一步**。

1. 在**查看和创建**页面上，请检查输入的信息是否正确，然后选择**添加数据来源**。您也可以选择在此页面上编辑信息。成功添加数据来源后，您的数据来源将显示在**数据来源**页面上。

------
#### [ API ]

**要连接 Amazon Kendra 到 Amazon S3**

您必须使用 [TemplateConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_TemplateConfiguration.html) API 指定[数据来源架构](https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html)的 JSON。您必须提供以下信息：
+ **数据来源** – 当使用 [https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html](https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html) JSON 架构时，将数据来源类型指定为 `S3`。当调用 [https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html](https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html) API 时，还要将数据来源指定为 `TEMPLATE`。
+ **BucketName**— 包含文档的存储桶的名称。
+ **同步模式**-指定数据源内容发生变化时 Amazon Kendra 应如何更新索引。首次将数据来源与 Amazon Kendra 同步时，默认情况下会爬取所有内容并编制索引。如果首次同步失败，即使您没有选择“完整同步”作为同步模式，也必须执行一次完整的数据同步。您可以选择：
  + `FORCED_FULL_CRAWL`，每次数据来源与索引同步时，重新为所有内容编制索引，并替换已有内容。
  + `FULL_CRAWL`，每次数据来源与索引同步时，仅为新增、修改和删除的内容编制索引。 Amazon Kendra 可以利用数据来源自身的内容变更跟踪机制，仅为自上次同步以来发生变化的内容编制索引。
+ **IAM ro** le —指定`RoleArn`何时调用`CreateDataSource`以向 IAM 角色提供访问您的 Secrets Manager 密钥的权限以及调用 S3 连接器 APIs 所需的公用人员的权限和 Amazon Kendra。有关更多信息，请参阅 [S3 数据来源的IAM 角色](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds)。

您还可以添加以下可选功能：
+  **虚拟私有云（VPC）**- 指定 `VpcConfiguration`，以便调用 `CreateDataSource`。有关更多信息，请参阅 [配置 Amazon Kendra 为使用 Amazon VPC](vpc-configuration.md)。
+  **包含和排除筛选条件** - 指定是包含还是排除某些文件名、文件类型、文件路径。您可以使用 glob 模式（一种将通配符模式扩展为与给定模式匹配的路径名称列表的模式）。有关示例，请参阅[《 AWS CLI 命令参考》中的 “排除和包含筛选器的使用](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters)”。
+ **文档元数据和访问控制配置** - 添加包含文档元数据和访问控制信息的文件，例如来源 URI、文档作者、或自定义文档属性/字段，以及用户信息和他们可访问的文档。每个元数据文件都包含有关单个文档的元数据。
+  **字段映射** - 选择将 S3 数据来源字段映射到 Amazon Kendra 索引字段。有关更多信息，请参阅[映射数据来源字段](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)。
**注意**  
要搜索您的文档，必须输入文档正文字段或文档正文等效字段。 Amazon Kendra 您必须将数据来源中的文档正文字段名映射到索引字段名称 `_document_body`。其他所有字段均为可选字段。

有关要配置的其他重要 JSON 键的列表，请参阅 [S3 模板架构](https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html#ds-s3-schema)。

------

### 了解详情
<a name="s3-learn-more"></a>

要了解有关 Amazon Kendra 与 S3 数据源集成的更多信息，请参阅：
+ [使用支持 VPC Amazon Kendra 的 S3 连接器准确搜索答案](https://aws.amazon.com/blogs/machine-learning/search-for-answers-accurately-using-amazon-kendra-s3-connector-with-vpc-support/)