

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

# Google Drive 连接器 V2.0
<a name="data-source-v2-google-drive"></a>

Google Drive 是一项基于云的文件存储服务。您可以使用 Amazon Kendra 索引存储在 Google 云端硬盘数据源中的共享云端硬盘、“我的云端硬盘” 和 “与我共享” 文件夹中的文档和评论。您可以为 Google Workspace 文档以及[文档类型](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html)中列出的文档编制索引。您还可以使用包含和排除筛选条件按文件名、文件类型和文件路径对内容进行索引。

**注意**  
谷歌云端硬盘连接器 V1.0 /谷歌 DriveConfiguration API 于 2023 年结束。我们建议迁移到或使用 Google 云端硬盘连接器 V2.0/ TemplateConfiguration API。

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

**Topics**
+ [支持的功能](#supported-features-v2-google-drive)
+ [先决条件](#prerequisites-v2-google-drive)
+ [连接说明](#data-source-procedure-v2-google-drive)
+ [注意](#google-drive-notes)

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

## 先决条件
<a name="prerequisites-v2-google-drive"></a>

在使用 Amazon Kendra 索引 Google 云端硬盘数据源之前，请在您的 Google 云端硬盘和 AWS 帐号中进行这些更改。

**在 Google Drive 中，请确保：**
+ **要么**超级管理员角色已授予访问权限，**要么**是具有管理权限的用户。如果您已获得超级管理员角色的访问权限，则无需为自己设置超级管理员角色。
+ 已配置 Google Drive 服务帐号连接凭证，其中包含您的管理员帐号电子邮件、客户电子邮件（服务帐号电子邮件）和私有密钥。请参阅[有关创建和删除服务帐号密钥的 Google Cloud 文档](https://cloud.google.com/iam/docs/keys-create-delete)。
**注意**  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。我们建议**不要**跨数据来源以及连接器版本 1.0 和 2.0（如果适用）重复使用凭证和密钥。
+ 创建了一个 Google Cloud 服务帐号（具有使用用户身份授权的帐号），并激活了 “**启用 G Suite 全网域授**权” 进行 server-to-server身份验证，然后使用该帐号生成了 JSON 私钥。
**注意**  
私有密钥应在创建服务帐号之后生成。
+ 在您的用户账户中添加了管理员 SDK API 和 Google Drive API。
+ **可选：**已配置包含客户端 ID、客户端密钥和刷新令牌的 Google Drive OAuth 2.0 连接凭据作为特定用户的连接凭据。您需要它来爬取个人账户数据。请参阅 [Google 文档，了解如何使用 OAuth 2.0 进行访问 APIs](https://developers.google.com/identity/protocols/oauth2)。
+ 使用超级管理员角色向您的服务帐号添加（或要求具有超级管理员角色的用户添加）以下 OAuth范围。要爬取 Google Workspace 网域中所有用户的所有文档和访问控制（ACL）信息，需要这些 API 范围：
  + https://www.googleapis.com/auth/云端硬盘.readonly — 查看和下载所有的 Google 云端硬盘文件
  + https://www.googleapis.com/auth/云端硬盘.metadata.readonly — 查看 Google 云端硬盘中文件的元数据
  + https://www.googleapis.com/auth/admin.directory.group.readonly — 仅用于检索群组、群组别名和成员信息的范围。这是 Amazon Kendra 身份搜寻器所必需的。
  + https://www.googleapis.com/auth/admin.directory.user.readonly — 仅用于检索用户或用户别名的范围。这是在 Ident Amazon Kendra ity Crawler 中列出用户和进行设置 ACLs所必需的。
  + https://www.googleapis.com/auth/云平台-用于生成访问令牌以获取大型 Google 云端硬盘文件内容的范围。
  + https://www.googleapis.com/auth/forms.body.readonly — 从谷歌表单中获取数据的范围。

  **要支持 Forms API，请添加以下附加范围：**
  + https://www.googleapis.com/auth/表单.body.readonly
+ 在 Google Drive 以及计划用于编制同一索引的其他数据来源中，已检查每个文档都是唯一的。您要用于编制索引的每个数据来源在所有数据来源中都不能包含相同的文档。文档对索引来说 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 角色才能访问正确的 AWS Secrets Manager 密钥 ID。
+ 将您的 Google Drive 身份验证凭证存储在 AWS Secrets Manager 密钥中，如果使用 API，请记下密钥的 ARN。
**注意**  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。我们建议**不要**跨数据来源以及连接器版本 1.0 和 2.0（如果适用）重复使用凭证和密钥。

如果您没有现有的 IAM 角色或密钥，则可以在将 Google 云端硬盘数据源关联到时使用控制台创建新的 IAM 角色和 Secrets Manager 密钥 Amazon Kendra。如果您使用的是 API，则必须提供现有 IAM 角色和 Secrets Manager 密钥的 ARN 以及索引 ID。

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

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

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

**连接 Amazon Kendra 到 Google 云端硬盘** 

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

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

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

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

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

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

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

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

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

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

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

   1. **授权** - 如果您有访问控制列表（ACL）并想将其用于访问控制，请选择是开启还是关闭文档的 ACL 信息。ACL 用于指定用户和组可以访问哪些文档。ACL 信息用于根据用户或其所在组对文档的访问权限来筛选搜索结果。有关更多信息，请参阅[用户上下文筛选](https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html#context-filter-user-incl-datasources)。

   1. **身份验证**-根据您的用例在 **Google 服务帐号**和 **OAuth 2.0 身份验证**之间进行选择。

   1. AWS Secrets Manager s@@ **ecret** —选择现有密钥，或创建一个新 Secrets Manager 密钥来存储您的 Google 云端硬盘身份验证凭据。如果您选择创建新密钥，则会打开 AWS Secrets Manager 密钥窗口。

      1. 如果您选择 **Google 服务账户**，请输入您的密钥名称、服务账户配置中的管理员用户或“服务账户用户”的电子邮件 ID（管理员电子邮件）、服务账户的电子邮件 ID（客户端电子邮件）以及您在服务账户中创建的私有密钥。

         保存并添加您的密钥

      1. 如果您选择 **OAuth 2.0 身份验证**，请输入您在 OAuth 账户中创建的密钥名称、客户端 ID、客户端密钥和刷新令牌。用户邮件 ID（配置了连接详细信息的用户）将被设置为 ACL。由于 API 限制，连接器不会将其他 user/group 主体信息设置为 ACL。

         保存并添加您的密钥。

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

   1. （仅适用于 Google 服务账户身份验证用户）

      **身份爬网程序** – 指定是否激活 Amazon Kendra的身份爬网程序。身份爬网程序使用文档的访问控制列表（ACL）信息，来根据用户或用户组对文档的访问权限筛选搜索结果。如果您的文档有 ACL 并选择使用 ACL，则也可以选择开启身份爬网程序来配置搜索结果 Amazon Kendra的[用户上下文筛选](https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html#context-filter-user-incl-datasources)。否则，如果关闭身份爬网程序，则可以公开搜索所有文档。如果您想对文档使用访问控制并且身份搜寻器已关闭，则可以使用 [PutPrincipalMapping](https://docs.aws.amazon.com/kendra/latest/APIReference/API_PutPrincipalMapping.html)API 上传用户和群组访问信息以进行用户上下文筛选。

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

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

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

   1. **同步内容** - 选择要爬取的选项或内容。您可以选择爬取“我的云端硬盘”（个人文件夹）和/或“共享云端硬盘”（与您共享的文件夹）。您也可以添加文件注释。

   1. 在**其他配置 - 可选**中，您也输入以下可选信息：

      1. **最大文件大小**-设置要抓取的文件的最大大小限制。 MBs 

      1. **用户电子邮件地址** - 添加要包含或排除的用户电子邮件地址。

      1. **共享云端硬盘** - 添加要包含或排除的共享云端硬盘名称。

      1. **MIME 类型** - 添加要包含或排除的 MIME 类型。

      1. **实体正则表达式模式** - 添加正则表达式模式以包含或排除所有受支持实体的某些附件。最多可以添加 100 个模式。

         您可以为**文件名、文件类型和**文件**路径****配置正则 include/exclude **表达式模式。
         + **文件名** - 要包含或排除的文件的名称。例如，要为名称为 `teamroster.txt` 的文件编制索引，请提供 `teamroster`。
         + **文件类型** - 要包含或排除的文件的类型。例如，.pdf、.txt、.docx。
         + **文件路径** - 要包含或排除的文件的路径。例如，要仅为云端硬盘的 `Products list` 文件夹内的文件编制索引，请提供 `/Products list`。

   1. **同步模式** – 选择在数据来源内容发生变化时更新索引的方式。首次将数据来源与 Amazon Kendra 同步时，默认情况下会爬取所有内容并编制索引。如果首次同步失败，即使您没有选择“完整同步”作为同步模式，也必须执行一次完整的数据同步。
      + 完整同步：每次数据来源与索引同步时，重新为所有内容编制索引，并替换已有内容。
      + 修改过的新同步：每次数据源与索引同步时，仅为新增和修改过的内容编制索引。 Amazon Kendra 可以使用数据源的机制来跟踪内容更改并索引自上次同步以来更改的内容。
      + 新增、修改、删除的同步：每次数据来源与索引同步时，仅为新增、修改和删除的内容编制索引。 Amazon Kendra 可以利用数据来源自身的内容变更跟踪机制，仅为自上次同步以来发生变化的内容编制索引。
**重要**  
Google Drive API 不支持从永久删除的文件中检索评论。可以检索已丢弃文件中的评论。当文件被丢弃时，连接器将从 Amazon Kendra 索引中删除注释。

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

   1. 在 “**同步运行历史记录**” 中，选择在同步数据源 Amazon S3 时将自动生成的报告存储在中。这对于在同步数据来源时跟踪问题很有用。

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

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

   1. 对于**文件**-从 Amazon Kendra 生成的默认数据源字段中选择要映射到索引的字段。
**注意**  
Google Drive API 不支持创建自定义字段。自定义字段映射不适用于 Google Drive 连接器。

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

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

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

**连接 Amazon Kendra 到 Google 云端硬盘**

您必须使用 [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 架构时，将数据来源类型指定为 `GOOGLEDRIVEV2`。当调用 [https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html](https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html) API 时，还要将数据来源指定为 `TEMPLATE`。
+ **身份验证类型**-指定是使用服务帐户身份验证还是 OAuth 2.0 身份验证。
+ **同步模式**-指定数据源内容发生变化时 Amazon Kendra 应如何更新索引。首次与同步数据源时， Amazon Kendra 默认情况下会对所有内容进行抓取和索引。如果首次同步失败，即使您没有选择“完整同步”作为同步模式，也必须执行一次完整的数据同步。您可以选择：
  + `FORCED_FULL_CRAWL`，每次数据来源与索引同步时，重新为所有内容编制索引，并替换已有内容。
  + `FULL_CRAWL`每次数据源与索引同步时，仅对新的、修改过的和已删除的内容编制索引。 Amazon Kendra 可以使用数据源的机制来跟踪内容更改并索引自上次同步以来更改的内容。
  + `CHANGE_LOG`每次数据源与索引同步时，仅索引新的和修改过的内容。 Amazon Kendra 可以使用数据源的机制来跟踪内容更改并索引自上次同步以来更改的内容。
**重要**  
Google Drive API 不支持从永久删除的文件中检索评论。可以检索已丢弃文件中的评论。当文件被丢弃时，连接器将从 Amazon Kendra 索引中删除注释。
+ **亚马逊秘密资源名称 (ARN)**-提供包含您在 Google 云端硬盘账户中创建的身份验证凭证的 Secrets Manager 密钥的亚马逊资源名称 (ARN)。如果您使用 Google 服务账户身份验证，密钥将存储在 JSON 结构中，其中包含以下键：

  ```
  {
      "clientEmail": "user account email",
      "adminAccountEmail": "service account email",
      "privateKey": "private key"
  }
  ```

  如果您使用 OAuth 2.0 身份验证，则密钥将存储在 JSON 结构中，其中包含以下密钥：

  ```
  {
      "clientID": "OAuth client ID",
      "clientSecret": "client secret",
      "refreshToken": "refresh token"
  }
  ```
+ **IAM 角色**-指定`RoleArn`何时致电`CreateDataSource`为 IAM 角色提供访问您的 Secrets Manager 密钥的权限，以及致电 APIs 所需的公众以获取 Google 云端硬盘连接器和 Amazon Kendra。有关更多信息，请参阅 [Google Drive 数据来源的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)。
+ **我的云端硬盘、共享云端硬盘、评论** - 您可以指定是否爬取这些类型的内容。
+  **包含和排除筛选条件** - 您可以指定是包含还是排除某些用户账户、共享云端硬盘和 MIME 类型。
**注意**  
大多数数据来源使用正则表达式模式，即称为筛选条件的包含或排除模式。如果您指定包含筛选条件，则只会为与包含筛选条件匹配的内容编制索引。不会为任何与包含筛选条件不匹配的文档编制索引。如果您指定包含和排除筛选条件，则不会为与排除筛选条件匹配的文档编制索引，即使它们与包含筛选条件相匹配。
+ **访问控制列表（ACL）**- 如果您有 ACL 并想将其用于访问控制，请选择是否爬取文档的 ACL 信息。ACL 用于指定用户和组可以访问哪些文档。ACL 信息用于根据用户或其所在组对文档的访问权限来筛选搜索结果。有关更多信息，请参阅[用户上下文筛选](https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html#context-filter-user-incl-datasources)。
+ **身份爬网程序** – 指定是否激活 Amazon Kendra的身份爬网程序。身份爬网程序使用文档的访问控制列表（ACL）信息，来根据用户或用户组对文档的访问权限筛选搜索结果。如果您的文档有 ACL 并选择使用 ACL，则也可以选择开启身份爬网程序来配置搜索结果 Amazon Kendra的[用户上下文筛选](https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html#context-filter-user-incl-datasources)。否则，如果关闭身份爬网程序，则可以公开搜索所有文档。如果您想对文档使用访问控制并且身份搜寻器已关闭，则可以使用 [PutPrincipalMapping](https://docs.aws.amazon.com/kendra/latest/APIReference/API_PutPrincipalMapping.html)API 上传用户和群组访问信息以进行用户上下文筛选。
+  **字段映射** - 选择将 Google Drive 数据来源字段映射到 Amazon Kendra 索引字段。有关更多信息，请参阅[映射数据来源字段](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)。
**注意**  
要搜索您的文档，必须输入文档正文字段或文档正文等效字段。 Amazon Kendra 您必须将数据来源中的文档正文字段名映射到索引字段名称 `_document_body`。其他所有字段均为可选字段。

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

------

## 注意
<a name="google-drive-notes"></a>
+ 由于 Google Drive UI 不支持创建自定义字段，因此自定义字段映射不适用于 Google Drive 连接器。
+ Google Drive API 不支持从永久删除的文件中检索评论。但是，对于已丢弃的文件，可以检索评论。当文件被丢弃时， Amazon Kendra 连接器将从 Amazon Kendra 索引中删除注释。
+ Google Drive API 不会返回 .docx 文件中存在的评论。
+ 如果将特定 Google document（文档、电子表格、幻灯片等）的权限设置为**一般访问权限：拥有链接的任何人**或**共享到您的特定公司域**，则在进行查询的用户访问该文档之前，Amazon Kendra 搜索用户将无法看到该文档。