

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

# 配置 Amazon Kendra 为使用 Amazon VPC
<a name="vpc-configuration"></a>

Amazon Kendra 可以连接到您创建的虚拟私有云 (VPC)， Amazon Virtual Private Cloud 以索引存储在私有云中运行的数据源中的内容。创建数据来源连接器时，您可以为包含您的数据来源的子网提供安全组和子网标识符。利用这些信息， Amazon Kendra 创建一个 elastic network 接口，用于安全地与 VPC 内的数据源进行通信。

要使用设置 Amazon Kendra 数据源连接器 Amazon VPC，您可以使用 AWS 管理控制台 或 [CreateDataSource](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateDataSource.html)API 操作。如果您使用控制台，则可以在连接器配置过程中连接 VPC。

**注意**  
设置 Amazon Kendra 数据源连接器时，该 Amazon VPC 功能是可选的。如果您的数据源可以从公共互联网访问，则无需启用该 Amazon VPC 功能。并非所有 Amazon Kendra 数据来源连接器都支持 Amazon VPC。

如果您的数据源未运行 Amazon VPC 且无法通过公共 Internet 进行访问，则首先使用虚拟专用网络 (VPN) 将数据源连接到 VPC。然后，您可以使用 Amazon VPC 和的组合将您的数据源连接到 Amazon Kendra AWS Virtual Private Network。有关设置 VPN 的更多信息，请参阅 [Site-to-Site VPN 文档](https://docs.aws.amazon.com/vpn/)。

**Topics**
+ [

# 配置对 Amazon Kendra 连接器的 Amazon VPC 支持
](connector-vpc-steps.md)
+ [

# 设置要连接 Amazon Kendra 的数据源 Amazon VPC
](connector-vpc-setup.md)
+ [

# 在 VPC 中连接到数据库
](vpc-example.md)
+ [

# 解决 VPC 连接问题
](vpc-connector-troubleshoot.md)

# 配置对 Amazon Kendra 连接器的 Amazon VPC 支持
<a name="connector-vpc-steps"></a>

要配置 Amazon VPC 为与 Amazon Kendra 连接器配合使用，请执行以下步骤。

**Topics**
+ [

## 步骤 1：为创建 Amazon VPC 子网 Amazon Kendra
](#connector-vpc-prerequisites-1)
+ [

## 步骤 2：为以下 Amazon VPC 对象创建安全组 Amazon Kendra
](#connector-vpc-prerequisites-2)
+ [

## 步骤 3：配置您的外部数据源和 Amazon VPC
](#connector-vpc-prerequisites-3)

## 步骤 1：为创建 Amazon VPC 子网 Amazon Kendra
<a name="connector-vpc-prerequisites-1"></a>

创建或选择 Amazon Kendra 可用于访问您的数据源的现有 Amazon VPC 子网。准备好的子网必须位于以下 AWS 区域 可用区之一：
+ 美国西部（俄勒冈州）/us-west-2 - usw2-azz1、usw2-az2、usw2-az3
+ 美国东部（弗吉尼亚州北部）/us-eaz-1 - useaz1、use1-az2、use1-az4
+ 美国东部（俄亥俄州）/us-eaz-eaz-2 - useaz1、use2-azz2、use2-az3
+ 亚太地区（东京）/ap-northeast-1 - apne1-azz1、apne1-azz2、apne1-azz4
+ 亚太地区（孟买）/ap-south-1 - aps1-azz1、aps1-azz2、aps1-az3
+ 亚太地区（新加坡）/ap-southeasteast-1 - apse1-azz1、apse1-azz2、apse1-az3
+ 亚太地区（悉尼）/ap-southeasteast-2 - apse2-azz1、apse2-azz2、apse2-azz3
+ 加拿大（中部）/ca-central-1 - cacz1、cac1-azz2、cac1-azz4
+ 欧洲（爱尔兰）/euwest-1 - euww1-azz1、uew1-azz2、euw1-az3
+ 欧洲地区（伦敦）/eu-west-2—euw2-az1、euw2-az2、euw2-az3

您的数据来源必须能够从您提供给 Amazon Kendra 连接器的子网访问。

有关如何配置 Amazon VPC 子网的更多信息，请参阅 Amazon *VPC 用户*[指南 Amazon VPC中的适合您的子网](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html)。

如果 Amazon Kendra 必须在两个或多个子网之间路由连接，则可以准备多个子网。例如，包含您的数据来源的子网 IP 地址不在范围内。在这种情况下，您可以提供 Amazon Kendra 一个额外的子网，该子网具有足够的 IP 地址并连接到第一个子网。如果您列出多个子网，则子网必须能够相互通信。

## 步骤 2：为以下 Amazon VPC 对象创建安全组 Amazon Kendra
<a name="connector-vpc-prerequisites-2"></a>

要将您的 Amazon Kendra 数据源连接器连接到 Amazon VPC，您必须从 VPC 准备一个或多个要分配给的安全组 Amazon Kendra。安全组将与 Amazon Kendra创建的弹性网络接口相关联。此网络接口控制访问 Amazon VPC 子网 Amazon Kendra 时进出的入站和出站流量。

确保在您的安全组的出站规则中，允许了来自 Amazon Kendra 数据来源连接器的流量访问子网和您要与之同步的数据来源。例如，您可以使用 MySQL 连接器从 MySQL 数据库进行同步。如果您使用的是默认端口，则安全组必须 Amazon Kendra 允许访问运行数据库的主机上的端口 3306。

我们建议您使用以下值配置默认安全组 Amazon Kendra 以供使用：
+ **入站规则** – 如果您选择将此项留空，则将阻止所有入站流量。
+ **出站规则**-添加一条规则以允许所有出站流量，这样 Amazon Kendra 就可以从您的数据源发起同步请求。
  + **IP 版本** — IPv4
  + **类型** – 所有流量
  + **协议** – 所有流量
  + **端口范围** – 全部
  + **目标** – 0.0.0.0/0

有关如何配置 Amazon VPC 安全组的更多信息，请参阅 *Amazon VPC 用户指南*中的[安全组规则](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html)。

## 步骤 3：配置您的外部数据源和 Amazon VPC
<a name="connector-vpc-prerequisites-3"></a>

确保您的外部数据源具有正确的访问权限配置和网络设置。 Amazon Kendra 您可以在每个连接器页面的先决条件部分中，找到有关如何配置数据来源的详细说明。

此外，请检查您的 Amazon VPC 设置，并确保可以从您要分配的子网访问您的外部数据源 Amazon Kendra。为此，我们建议您在同一子网中创建具有相同安全组的 Amazon EC2 实例，并测试该 Amazon EC2 实例对数据源的访问权限。有关更多信息，请参阅[Amazon VPC 连接疑难解答](https://docs.aws.amazon.com/kendra/latest/dg/vpc-connector-troubleshoot.html)。

# 设置要连接 Amazon Kendra 的数据源 Amazon VPC
<a name="connector-vpc-setup"></a>

在中添加新数据源时 Amazon Kendra，如果所选数据源连接器支持此 Amazon VPC 功能，则可以使用该功能。

您可以使用 AWS 管理控制台 或 Amazon Kendra API 在 Amazon VPC 启用状态下设置新的 Amazon Kendra 数据源。具体而言，使用 [https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateDataSource.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateDataSource.html) API 操作，然后使用 `VpcConfiguration` 参数提供以下信息：
+ `SubnetIds`— Amazon VPC 子网标识符列表
+ `SecurityGroupIds`— Amazon VPC 安全组标识符列表

如果您使用控制台，则需要在连接器配置期间提供所需的 Amazon VPC 信息。要使用控制台为连接器启用 Amazon VPC 功能，您需要先选择一个 Amazon VPC。然后，您提供任意 Amazon VPC 子网的标识符以及任意 Amazon VPC 安全组的标识符。您可以选择在[配置 Amazon VPC](https://docs.aws.amazon.com/kendra/latest/dg/connector-vpc-steps.html) 中创建的 Amazon VPC 子网和 Amazon VPC 安全组，也可以使用任何现有的子网和安全组。

**Topics**
+ [

## 查看 Amazon VPC 标识符
](#viewing-vpc-identifiers)
+ [

## 检查您的数据源 IAM 角色
](#vpc-iam-roles)

## 查看 Amazon VPC 标识符
<a name="viewing-vpc-identifiers"></a>

子网和安全组的标识符是在 Amazon VPC 控制台中配置的。要查看标识符，请执行以下步骤。

**查看子网标识符**

1. 登录 AWS 管理控制台 并打开 Amazon VPC 控制台，网址为[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择**子网**。

1. 从**子网**列表中，选择包含您的数据库服务器的子网。

1. 在**详细信息**选项卡中，记下**子网 ID** 字段中的标识符。

**查看安全组标识符**

1. 登录 AWS 管理控制台 并打开 Amazon VPC 控制台，网址为[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 从导航窗格中，选择**安全组**。

1. 从安全组列表中，选择要为其提供标识的组。

1. 在**详细信息**选项卡中，记下**安全组 ID** 字段中的标识符。

## 检查您的数据源 IAM 角色
<a name="vpc-iam-roles"></a>

确保您的数据源 AWS Identity and Access Management IAM（连接器）角色包含访问您的权限 Amazon VPC。

如果您使用控制台为角色创建新 IAM 角色，则 Amazon Kendra 会自动代表您为 IAM 角色添加正确的权限。如果您使用 API 或使用现有 IAM 角色，请检查您的角色是否包含访问权限 Amazon VPC。要验证您是否拥有合适的权限，请参阅 [IAM roles for VPC](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-vpc)。

您可以修改现有数据来源以使用不同的 Amazon VPC 子网。但是，请检查数据源的 IAM 角色，并在必要时对其进行修改以反映 Amazon Kendra 数据源连接器正常工作的更改。

# 在 VPC 中连接到数据库
<a name="vpc-example"></a>

以下示例显示如何连接在虚拟私有云（VPC）中运行的 MySQL 数据库。该示例假设您从默认 VPC 开始，并且需要创建一个 MySQL 数据库。如果您已有 VPC，请确保其配置如图所示。如果您有一个 MySQL 数据库，您可以用它来代替创建一个新的数据库。

**Topics**
+ [

## 步骤 1：配置 VPC
](#vpc-example-1)
+ [

## 步骤 2：创建和配置安全组
](#vpc-example-2)
+ [

## 步骤 3：创建数据库
](#vpc-example-3)
+ [

## 步骤 4：创建数据来源连接器
](#vpc-example-4)

## 步骤 1：配置 VPC
<a name="vpc-example-1"></a>

配置您的 VPC，以便您拥有私有子网和安全组，以便 Amazon Kendra 访问子网中运行的 MySQL 数据库。VPC 配置中提供的子网必须位于美国西部（俄勒冈州）、美国东部（弗吉尼亚北部）或欧洲地区（爱尔兰）区域。

**使用配置 VPC Amazon VPC**

1. 登录 AWS 管理控制台 并打开 Amazon VPC 控制台，网址为[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择**路由表**，然后选择**创建路由表**。

1. 对于**名称**字段，输入 **Private subnet route table**。从 **VPC** 下拉列表中，选择您的 VPC，然后选择**创建路由表**。选择**关闭**以返回路由表列表。

1. 在导航窗格中，选择 **NAT 网关**，然后选择**创建 NAT 网关**。

1. 从**子网**下拉列表中，选择作为公有子网的子网。记下子网 ID。

1. 如果您没有弹性 IP 地址，请选择**创建新 EIP**，选择**创建 NAT 网关**，然后选择**关闭**。

1. 从导航窗格中，选择**路由表**。

1. 从路由表列表中，选择您在步骤 3 中创建的**私有子网路由表**。从**操作**中，选择**编辑路由**。

1. 选择 **Add route**（添加路由）。对于目的地，输入 **0.0.0.0/0** 以允许所有传出流量传输到互联网。对于**目标**，选择 **NAT 网关**，然后选择您在步骤 4 中创建的网关。选择**保存更改**，然后选择**关闭**。

1. 从**操作**菜单中选择**编辑子网关联**。

1. 选择要设为私有的子网。不要选择之前记下的 NAT 网关的子网。完成后，选择**保存关联**。

## 步骤 2：创建和配置安全组
<a name="vpc-example-2"></a>

接下来，为您的数据库配置安全组。

**创建和配置安全组**

1. 登录 AWS 管理控制台 并打开 Amazon VPC 控制台，网址为[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在您的 VPC 描述中，记下 IPv4 CIDR。

1. 从导航窗格中，选择**安全组**，然后选择**创建安全组**。

1. 对于**安全组名称**，输入 **DataSourceInboundSecurityGroup**。提供描述，然后从列表中选择 VPC。选择创建**安全组**，然后选择**关闭**。

1. 选择**入站规则**选项卡。

1. 选择**编辑入站规则**，然后选择**添加规则**。

1. 对于数据库，针对**端口范围**输入端口号。例如，对于 MySQL 来说是 **3306**，对于 HTTPS 来说，则是 **443**。对于**源**，键入您的 VPC 的无类别域间路由（CIDR）。选择**保存规则**，然后选择**关闭**。

安全组允许 VPC 中的任何用户连接到数据库，并允许出站连接到 Internet。

## 步骤 3：创建数据库
<a name="vpc-example-3"></a>

创建一个数据库来保存您的文档，或者您也可以使用现有的数据库。

有关如何创建 MySQL 数据库的说明，请参阅 [https://docs.aws.amazon.com/kendra/latest/dg/data-source-mysql.html](https://docs.aws.amazon.com/kendra/latest/dg/data-source-mysql.html)。

## 步骤 4：创建数据来源连接器
<a name="vpc-example-4"></a>

配置 VPC 并创建数据库后，您可以为数据库创建数据来源连接器。有关支持的数据库连接器的信息，请参阅[支持的连接器](https://docs.aws.amazon.com/kendra/latest/dg/data-sources.html)。 Amazon Kendra 

对于您的数据库，请务必配置您的 VPC、在 VPC 中创建的私有子网以及在 VPC 中创建的安全组。

# 解决 VPC 连接问题
<a name="vpc-connector-troubleshoot"></a>

如果您的虚拟私有云 (VPC) 连接遇到任何问题，请检查您的 IAM 权限、安全组设置和子网的路由表是否配置正确。

数据源连接器同步失败的一个潜在原因是，可能无法从您分配的子网访问数据源。 Amazon Kendra要解决此问题，我们建议您使用相同的 Amazon VPC 设置创建 Amazon EC2 实例。然后，尝试使用 REST API 调用或其他方法（基于数据源的特定类型）从该 Amazon EC2 实例访问数据源。

如果您成功地从您创建的 Amazon EC2 实例访问数据源，则意味着可以从该子网访问您的数据源。因此，您的同步问题与无法访问您的数据源无关。 Amazon VPC

如果您无法从 VPC 配置访问您的 Amazon EC2 实例，也无法使用您创建的 Amazon EC2 实例对其进行验证，则需要进一步排除故障。例如，如果您的连接器由于 Amazon S3 连接问题错误而同步失败，则可以使用分配给 Amazon S3 连接器的相同 Amazon VPC 配置来设置 Amazon EC2 实例。然后，使用此 Amazon EC2 实例来测试您的 Amazon VPC 设置是否正确。

以下是设置 Amazon EC2 实例以排除与 Amazon S3 数据源的 Amazon VPC 连接故障的示例。

**Topics**
+ [

## 步骤 1：启动实 Amazon EC2 例
](#vpc-connector-troubleshoot-1)
+ [

## 第 2 步：Connect 连接到 Amazon EC2 实例
](#vpc-connector-troubleshoot-2)
+ [

## 步骤 3：测试 Amazon S3 访问权限
](#vpc-connector-troubleshoot-3)

## 步骤 1：启动实 Amazon EC2 例
<a name="vpc-connector-troubleshoot-1"></a>

1. 登录 AWS 管理控制台 并打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择**启动实例**。

1. 选择**网络设置**，之后选择**编辑**，然后执行以下操作：

   1. 选择与您分配的相同 VPC 和**子网** Amazon Kendra。

   1. 对于**防火墙（安全组）**，请选择**选择现有安全组**。然后，选择您分配给的安全组 Amazon Kendra。
**注意**  
安全组应允许出站流量进入 Amazon S3。

   1. 将**自动分配公有 IP** 设置为**禁用**。

   1. 在**高级详细信息**中，执行以下操作：
      + 对于 **IAM 实例配置文件**，选择**创建新 IAM 配置文件**以创建 IAM 实例配置文件并将其附加到您的实例。确保该配置文件具有访问 Amazon S3的权限。有关更多信息，请参阅[如何向我的 Amazon EC2 实例授予对 Amazon S3 存储桶的访问权限？](https://repost.aws/knowledge-center/ec2-instance-access-s3-bucket) 在 AWS re:Post。
      + 将所有其他设置保留为默认值。

   1. 查看并启动实 Amazon EC2 例。

## 第 2 步：Connect 连接到 Amazon EC2 实例
<a name="vpc-connector-troubleshoot-2"></a>

 Amazon EC2 实例运行后，前往您的实例详细信息页面并连接到您的实例。为此，请参阅适用于 Linux 实例的《Amazon EC2 用户指南》**中的[使用 EC2 Instance Connect Endpoint 在不需要公有 IPv4 地址的情况下连接到您的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-with-ec2-instance-connect-endpoint.html)一文，并按照其中步骤操作。

## 步骤 3：测试 Amazon S3 访问权限
<a name="vpc-connector-troubleshoot-3"></a>

连接到 Amazon EC2 实例终端后，运行 AWS CLI 命令以测试从该私有子网到您的 Amazon S3 存储桶的连接。

要测试 Amazon S3 访问权限， AWS CLI 请在中键入以下命令 AWS CLI：`aws s3 ls`

 AWS CLI 命令运行后，请查看以下内容：
+ 如果您已正确设置必要的 IAM 权限并且 Amazon S3 设置正确，则应该会看到 Amazon S3 存储桶列表。
+ 如果您看到权限错误`Access Denied`，例如，您的 VPC 配置可能正确，但您的 IAM 权限或 Amazon S3 存储桶策略有问题。

如果命令超时，则可能是因为您的 VPC 设置不正确，并且 Amazon EC2 实例无法从您的子网访问 Amazon S3 而导致连接超时。重新配置您的 VPC，然后重试。