Google Drive 连接器 V2.0 - Amazon Kendra

Google Drive 连接器 V2.0

Google Drive 是一项基于云的文件存储服务。您可以使用 Amazon Kendra 为存储在 Google Drive 数据来源中的共享云端硬盘、我的云端硬盘和与我共享文件夹中的文档和评论编制索引。您可以为 Google Workspace 文档以及文档类型中列出的文档编制索引。您还可以使用包含和排除筛选条件按文件名、文件类型和文件路径对内容进行索引。

注意

Google Drive 连接器 V1.0/Google DriveConfiguration API 已于 2023 年结束服务。我们建议迁移到 Google Drive 连接器 V2.0/TemplateConfiguration API。

要对 Amazon Kendra Google Drive 数据来源连接器进行故障排除,请参阅数据来源故障排除

支持的功能

  • 字段映射

  • 用户访问控制

  • 包含/排除筛选条件

  • 完整和增量内容同步

  • 虚拟私有云(VPC)

先决条件

在使用 Amazon Kendra 为 Google Drive 数据来源编制索引之前,请先在 Google Drive 和 AWS 账户内进行这些更改。

在 Google Drive 中,请确保:

  • 要么超级管理员角色已授予访问权限,要么是具有管理权限的用户。如果您已获得超级管理员角色的访问权限,则无需为自己设置超级管理员角色。

  • 已配置 Google Drive 服务帐号连接凭证,其中包含您的管理员帐号电子邮件、客户电子邮件(服务帐号电子邮件)和私有密钥。请参阅有关创建和删除服务帐号密钥的 Google Cloud 文档

    注意

    我们建议您定期刷新或轮换您的凭证和密码。为了安全起见,请仅提供必要的访问权限级别。我们建议不要跨数据来源以及连接器版本 1.0 和 2.0(如果适用)重复使用凭证和密钥。

  • 创建了一个 Google Cloud 服务帐号(具有使用用户身份授权的帐号),并激活了启用 G Suite 全网域授权以进行服务器到服务器身份验证,然后使用该帐号生成了 JSON 私有密钥。

    注意

    私有密钥应在创建服务帐号之后生成。

  • 在您的用户账户中添加了管理员 SDK API 和 Google Drive API。

  • 可选:将 Google Drive OAuth 2.0 连接凭证配置为特定用户的连接凭证,其中包含客户端 ID、客户端密钥和刷新令牌。您需要它来爬取个人账户数据。请参阅有关如何使用 OAuth 2.0 访问 API 的 Google 文档

  • 使用超级管理员角色向您的服务帐号添加(或要求具有超级管理员角色的用户添加)以下 OAuth 范围。要爬取 Google Workspace 网域中所有用户的所有文档和访问控制(ACL)信息,需要这些 API 范围:

    • https://www.googleapis.com/auth/drive.readonly - 查看和下载您所有的 Google Drive 文件

    • https://www.googleapis.com/auth/drive.metadata.readonly - 查看您的 Google Drive 中文件的元数据

    • https://www.googleapis.com/auth/admin.directory.group.readonly - 范围仅用于检索组、组别名和成员信息。这是 Amazon Kendra 身份爬网程序所必需的。

    • https://www.googleapis.com/auth/admin.directory.user.readonly - 范围仅用于检索用户或用户别名。在 Amazon Kendra 身份爬网程序中列出用户和设置 ACL 时需要这样做。

    • https://www.googleapis.com/auth/cloud-platform - 范围用于生成访问令牌以获取大型 Google Drive 文件内容。

    • https://www.googleapis.com/auth/forms.body.readonly - 范围用于从 Google 表单中获取数据。

    要支持 Forms API,请添加以下附加范围:

    • https://www.googleapis.com/auth/forms.body.readonly

  • 在 Google Drive 以及计划用于编制同一索引的其他数据来源中,已检查每个文档都是唯一的。您要用于编制索引的每个数据来源在所有数据来源中都不能包含相同的文档。文档 ID 对索引来说是全局性的,并且每个索引都必须是唯一的。

在 AWS 账户 中,请确保:

  • 已创建 Amazon Kendra 索引,如果使用 API,则记下索引 ID。

  • 为您的数据来源创建了一个 IAM 角色,如果使用 API,请记下 IAM 角色的 ARN。

    注意

    如果您更改了身份验证类型和证书,则必须更新您的 IAM 角色才能访问正确的 AWS Secrets Manager 密钥 ID。

  • 将您的 Google Drive 身份验证凭证存储在 AWS Secrets Manager 密钥中,如果使用 API,请记下密钥的 ARN。

    注意

    我们建议您定期刷新或轮换您的凭证和密码。为了安全起见,请仅提供必要的访问权限级别。我们建议不要跨数据来源以及连接器版本 1.0 和 2.0(如果适用)重复使用凭证和密钥。

如果您没有现有的 IAM 角色或密钥,则在将 Google Drive 数据来源连接到 Amazon Kendra 时,您可以使用控制台创建新的 IAM 角色和 Secrets Manager 密钥。如果您使用 API,则必须提供现有 IAM 角色和 Secrets Manager 密钥的 ARN 以及索引 ID。

连接说明

要将 Amazon Kendra 连接到 Google Drive 数据来源,您必须提供 Google Drive 数据来源的必要详细信息,这样 Amazon Kendra 才能访问您的数据。如果您还没有为 Amazon Kendra 配置 Google Drive,请参阅先决条件

Console

将 Amazon Kendra 连接到 Google Drive

  1. 登录 AWS 管理控制台并打开 Amazon Kendra 控制台

  2. 在左侧导航窗格中,选择索引,然后从索引列表中选择要使用的索引。

    注意

    您可以选择在索引设置下配置或编辑您的用户访问控制设置。

  3. 入门页面上,选择添加数据来源

  4. 添加数据来源页面上,选择 Google Drive 连接器,然后选择添加连接器。如果使用版本 2(如果适用),请选择带有“V2.0”标签的 Google Drive 连接器

  5. 指定数据来源详细信息页面上输入以下信息:

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

    2. (可选)描述:输入数据来源的描述信息。

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

    4. 标签中,对于添加新标签 – 添加用于搜索和筛选资源或跟踪 AWS 成本的标签。

    5. 选择下一步

  6. 定义访问权限和安全性页面上,请输入以下信息:

    1. 授权 - 如果您有访问控制列表(ACL)并想将其用于访问控制,请选择是开启还是关闭文档的 ACL 信息。ACL 指定了用户和群组可以访问哪些文档。ACL 信息用于根据用户或其所在组对文档的访问权限来筛选搜索结果。有关更多信息,请参阅用户上下文筛选

    2. 对于身份验证 - 根据您的使用案例,选择 Google 服务帐号OAuth 2.0 身份验证

    3. AWS Secrets Manager 密钥 - 选择现有密钥或创建新的 Secrets Manager 密钥来存储您的 Google Drive 身份验证凭证。如果您选择创建新密钥,则会打开 AWS Secrets Manager 密钥窗口。

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

        保存并添加您的密钥

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

        保存并添加您的密钥。

    4. 虚拟私有云(VPC)- 您可以选择使用 VPC。如果是这样,则必须添加子网VPC 安全组

    5. (仅适用于 Google 服务账户身份验证用户)

      身份爬网程序 – 指定是否激活 Amazon Kendra 的身份爬网程序。身份爬网程序使用文档的访问控制列表(ACL)信息,来根据用户或用户组对文档的访问权限筛选搜索结果。如果您的文档有 ACL 并选择使用 ACL,则还可以选择开启 Amazon Kendra 的身份爬网程序来配置搜索结果的用户上下文筛选。否则,如果关闭身份爬网程序,则可以公开搜索所有文档。如果您想对文档使用访问控制,但身份爬网程序已关闭,则可以选择使用 PutPrincipalMapping API 上传用户和组访问信息,以进行用户上下文筛选。

    6. IAM 角色 - 选择现有 IAM 角色或创建新的 IAM 角色来访问您的存储库凭证和索引内容。

      注意

      用于编制索引的 IAM 角色不能用于数据来源。如果您不确定是否将现有角色用于编制索引或常见问题解答,为了避免出错,请选择创建新角色

    7. 选择下一步

  7. 配置同步设置页面上,请输入以下信息:

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

    2. 其他配置 - 可选中,您也输入以下可选信息:

      1. 最大文件大小 - 选择要爬取的文件的最大大小限制(以 MB 为单位)。

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

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

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

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

        您可以为文件名文件类型文件路径配置包含/排除正则表达式模式。

        • 文件名 - 要包含或排除的文件的名称。例如,要为名称为 teamroster.txt 的文件编制索引,请提供 teamroster

        • 文件类型 - 要包含或排除的文件的类型。例如,.pdf、.txt、.docx。

        • 文件路径 - 要包含或排除的文件的路径。例如,要仅为云端硬盘的 Products list 文件夹内的文件编制索引,请提供 /Products list

    3. 同步模式 - 选择在数据来源内容发生变化时更新索引的方式。首次将数据来源与 Amazon Kendra 同步时,默认情况下会爬取所有内容并编制索引。如果首次同步失败,即使您没有选择“完整同步”作为同步模式,也必须执行一次完整的数据同步。

      • 完整同步:每次数据来源与索引同步时,重新为所有内容编制索引,并替换已有内容。

      • 新增、修改的同步:每次数据来源与索引同步时,仅为新增和修改的内容编制索引。Amazon Kendra 可以利用数据来源自身的内容变更跟踪机制,仅为自上次同步以来发生变化的内容编制索引。

      • 新增、修改、删除的同步:每次数据来源与索引同步时,仅为新增、修改和删除的内容编制索引。Amazon Kendra 可以利用数据来源自身的内容变更跟踪机制,仅为自上次同步以来发生变化的内容编制索引。

      重要

      Google Drive API 不支持从永久删除的文件中检索评论。可以检索已丢弃文件中的评论。当文件被丢弃时,连接器将从 Amazon Kendra 索引中删除评论。

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

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

    6. 选择下一步

  8. 设置字段映射页面上,请输入以下信息:

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

      注意

      Google Drive API 不支持创建自定义字段。自定义字段映射不适用于 Google Drive 连接器。

    2. 选择下一步

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

API

将 Amazon Kendra 连接到 Google Drive

您必须使用 TemplateConfiguration API 指定数据来源架构的 JSON。您必须提供以下信息:

  • 数据来源 – 当使用 TemplateConfiguration JSON 架构时,将数据来源类型指定为 GOOGLEDRIVEV2。当调用 CreateDataSource 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 索引中删除评论。

  • 密钥 Amazon 资源名称(ARN)- 提供包含您在 Google Drive 账户中创建的身份验证凭证的 Secrets Manager 密钥的 Amazon 资源名称(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 密钥的权限,以及为 Google Drive 连接器和 Amazon Kendra 调用所需的公共 API 的权限。有关更多信息,请参阅 Google Drive 数据来源的 IAM 角色

您还可以添加以下可选功能:

  • 虚拟私有云(VPC)- 指定 VpcConfiguration,以便调用 CreateDataSource。有关更多信息,请参阅配置 Amazon Kendra 以使用 Amazon VPC

  • 我的云端硬盘、共享云端硬盘、评论 - 您可以指定是否爬取这些类型的内容。

  • 包含和排除筛选条件 - 您可以指定是包含还是排除某些用户账户、共享云端硬盘和 MIME 类型。

    注意

    大多数数据来源使用正则表达式模式,即称为筛选条件的包含或排除模式。如果您指定包含筛选条件,则只会为与包含筛选条件匹配的内容编制索引。不会为任何与包含筛选条件不匹配的文档编制索引。如果您指定包含和排除筛选条件,则不会为与排除筛选条件匹配的文档编制索引,即使它们与包含筛选条件相匹配。

  • 访问控制列表(ACL)- 如果您有 ACL 并想将其用于访问控制,请选择是否爬取文档的 ACL 信息。ACL 指定了用户和群组可以访问哪些文档。ACL 信息用于根据用户或其所在组对文档的访问权限来筛选搜索结果。有关更多信息,请参阅用户上下文筛选

  • 身份爬网程序 – 指定是否激活 Amazon Kendra 的身份爬网程序。身份爬网程序使用文档的访问控制列表(ACL)信息,来根据用户或用户组对文档的访问权限筛选搜索结果。如果您的文档有 ACL 并选择使用 ACL,则还可以选择开启 Amazon Kendra 的身份爬网程序来配置搜索结果的用户上下文筛选。否则,如果关闭身份爬网程序,则可以公开搜索所有文档。如果您想对文档使用访问控制,但身份爬网程序已关闭,则可以选择使用 PutPrincipalMapping API 上传用户和组访问信息,以进行用户上下文筛选。

  • 字段映射 - 选择将 Google Drive 数据来源字段映射到 Amazon Kendra 索引字段。有关更多信息,请参阅映射数据来源字段

    注意

    文档正文字段或文档正文的等效字段是 Amazon Kendra 搜索文档时所必需的。您必须将数据来源中的文档正文字段名映射到索引字段名称 _document_body。其他所有字段均为可选字段。

有关要配置的其他重要 JSON 键的列表,请参阅 Google Drive 模板架构

备注

  • 由于 Google Drive UI 不支持创建自定义字段,因此自定义字段映射不适用于 Google Drive 连接器。

  • Google Drive API 不支持从永久删除的文件中检索评论。但是,对于已丢弃的文件,可以检索评论。当文件被丢弃时,Amazon Kendra 连接器将从 Amazon Kendra 索引中删除评论。

  • Google Drive API 不会返回 .docx 文件中存在的评论。

  • 如果将特定 Google document(文档、电子表格、幻灯片等)的权限设置为一般访问权限:拥有链接共享到您的特定公司域的任何人,则在进行查询的用户访问该文档之前,Amazon Kendra 搜索用户将无法看到该文档。