Elastic Google Drive 连接器参考

编辑

Elastic Google Drive 连接器是一个用于 Google Drive连接器。此连接器使用 Elastic 连接器框架以 Python 编写。

查看此连接器的源代码(分支 8.17,与 Elastic 8.17 兼容)。

Elastic 托管连接器参考

编辑
查看 Elastic 托管连接器 参考
可用性和先决条件
编辑

此连接器从 Elastic 版本 8.11.0 起作为托管连接器提供。

要在 Elastic Cloud 中本地使用此连接器,请满足所有托管连接器要求

用法
编辑

要在 Elastic Cloud 中本地使用此连接器,请参阅Elastic 托管连接器

有关其他操作,请参阅Kibana 中的连接器 UI

连接器身份验证先决条件
编辑

在从 Google Drive 同步任何数据之前,您需要创建一个有权访问 Google Drive API 的服务帐户

要开始使用,请登录Google Cloud Platform并转到控制台

  1. 创建 Google Cloud 项目。 为您的项目命名,更改项目 ID,然后单击“创建”按钮。
  2. 启用 Google API。 从左侧菜单中选择“API 和服务”,然后单击启用 API 和服务。您需要启用Drive API
  3. 创建服务帐户。API 和服务部分,单击凭据,然后单击创建凭据以创建服务帐户。为您的服务帐户命名和服务帐户 ID。这就像一个电子邮件地址,将来会用于识别您的服务帐户。单击完成以完成服务帐户的创建。您的服务帐户至少需要具有以下范围的访问权限

    • https://www.googleapis.com/auth/drive.readonly
  4. 创建密钥文件.

    • 在 Cloud Console 中,转到IAM 和管理员 > 服务帐户页面。
    • 单击要为其创建密钥的服务帐户的电子邮件地址。
    • 单击密钥选项卡。单击添加密钥下拉菜单,然后选择创建新密钥
    • 选择 JSON 作为密钥类型,然后单击创建。这将下载一个 JSON 文件,其中包含服务帐户凭据。
  5. [可选]共享 Google Drive 文件夹。 如果您使用域范围授权进行数据同步,则可以跳过此步骤。转到您的 Google Drive。右键单击文件夹或共享云盘,选择共享,然后将您在步骤 3 中创建的服务帐户的电子邮件地址添加为该文件夹的查看者。

当您授予服务帐户对 Google Drive 中特定文件夹或共享云盘的访问权限时,请务必注意,权限会扩展到该文件夹或云盘中的所有子项。这意味着包含在授予权限的文件夹或云盘中的任何文件夹或文件都会继承与其父级相同的访问权限。

域范围授权的其他身份验证先决条件
编辑

当启用使用域范围授权进行数据同步启用文档级安全性配置选项时,此步骤是必需的

  1. 启用 Google API.

    从左侧菜单中选择“API 和服务”,然后单击启用 API 和服务。您需要启用Admin SDK APIDrive API

  2. Google Workspace 域范围授权.

    要访问 Google Workspace 域中的云盘和用户数据,您创建的服务帐户需要由该域的超级管理员授予访问权限。您可以按照官方文档执行 Google Workspace 域范围授权。

    您需要将以下OAuth 范围授予您的服务帐户

    • https://www.googleapis.com/auth/admin.directory.group.readonly
    • https://www.googleapis.com/auth/admin.directory.user.readonly
    • https://www.googleapis.com/auth/drive.readonly
    • https://www.googleapis.com/auth/drive.metadata.readonly

    此步骤允许连接器

    • 访问 Google Workspace 组织中的用户数据及其组成员身份
    • 访问与 Google Workspace 成员关联的云盘中的 Google Drive 数据
配置
编辑

需要以下配置字段

Google Drive 服务帐户 JSON
从 Google Cloud Platform 生成的服务帐户凭据(JSON 字符串)。有关详细信息,请参阅Google Cloud 文档
启用文档级安全性

切换以启用文档级安全性 (DLS)。Google Drive 连接器支持 DLS。启用后

  • 完全同步将提取每个文档的访问控制列表,并将其存储在_allow_access_control字段中。
  • 访问控制同步将提取用户的访问控制列表,并将其存储在单独的索引中。
Google Workspace 管理员电子邮件
Google Workspace 管理员电子邮件。需要启用文档级安全性 (DLS) 或域范围授权进行数据同步。具有委派权限的服务帐户可以模拟具有访问 Google Workspace 用户数据及其组成员身份权限的管理员用户。有关详细信息,请参阅Google Cloud 文档
文档和同步
编辑

连接器将提取服务帐户有权访问的所有文件和文件夹。

它将尝试从 Google Suite 文档(Google 文档、Google 表格和 Google 幻灯片)和常规文件中提取内容。

  • 不会提取大于 10 MB 的文件的内容。(自管理连接器可以使用自管理本地提取服务来处理更大的二进制文件。)
  • 默认情况下不同步权限。您必须首先启用DLS。否则,索引到 Elastic 部署的所有文档将对所有有权访问该 Elastic 部署的用户可见。
同步类型
编辑

默认情况下,所有连接器都支持完全同步

此连接器还支持增量同步

同步规则
编辑

所有连接器的基本同步规则都相同,并且默认情况下可用。

当前版本中此连接器不提供高级同步规则。目前,过滤是通过提取管道控制的。

文档级安全性
编辑

文档级安全性 (DLS) 使您可以根据用户的权限限制对文档的访问。有关如何为此连接器启用 DLS,请参阅此页面上的配置

请参阅搜索应用程序中的 DLS,了解在构建搜索应用程序时如何从启用 DLS 的连接器提取数据。该示例使用 SharePoint Online 作为数据源,但相同的步骤适用于每个连接器。

内容提取
编辑

有关详细信息,请参阅内容提取

已知问题
编辑

目前此连接器没有已知问题。

故障排除
编辑

请参阅故障排除

安全性
编辑

请参阅安全性

自管理连接器

编辑
查看自管理连接器参考
可用性和先决条件
编辑

此连接器作为自管理自管理连接器提供。要使用此连接器,请满足所有自管理连接器要求

用法
编辑

要将此连接器用作自管理连接器,请参阅自管理连接器。有关其他使用操作,请参阅Kibana 中的连接器 UI

连接器身份验证先决条件
编辑

在从 Google Drive 同步任何数据之前,您需要创建一个有权访问 Google Drive API 的服务帐户

要开始使用,请登录Google Cloud Platform并转到控制台

  1. 创建 Google Cloud 项目。 为您的项目命名,更改项目 ID,然后单击“创建”按钮。
  2. 启用 Google API。 从左侧菜单中选择“API 和服务”,然后单击启用 API 和服务。您需要启用Drive API
  3. 创建服务帐户。API 和服务部分,单击凭据,然后单击创建凭据以创建服务帐户。为您的服务帐户命名和服务帐户 ID。这就像一个电子邮件地址,将来会用于识别您的服务帐户。单击完成以完成服务帐户的创建。您的服务帐户至少需要具有以下范围的访问权限

    • https://www.googleapis.com/auth/drive.readonly
  4. 创建密钥文件.

    • 在 Cloud Console 中,转到IAM 和管理员 > 服务帐户页面。
    • 单击要为其创建密钥的服务帐户的电子邮件地址。
    • 单击密钥选项卡。单击添加密钥下拉菜单,然后选择创建新密钥
    • 选择 JSON 作为密钥类型,然后单击创建。这将下载一个 JSON 文件,其中包含服务帐户凭据。
  5. [可选]共享 Google Drive 文件夹。 如果您使用域范围授权进行数据同步,则可以跳过此步骤。转到您的 Google Drive。右键单击文件夹或共享云盘,选择共享,然后将您在步骤 3 中创建的服务帐户的电子邮件地址添加为该文件夹的查看者。

当您授予服务帐户对 Google Drive 中特定文件夹或共享云盘的访问权限时,请务必注意,权限会扩展到该文件夹或云盘中的所有子项。这意味着包含在授予权限的文件夹或云盘中的任何文件夹或文件都会继承与其父级相同的访问权限。

域范围授权的其他身份验证先决条件
编辑

当启用使用域范围授权进行数据同步启用文档级安全性配置选项时,此步骤是必需的

  1. 启用 Google API.

    从左侧菜单中选择“API 和服务”,然后单击启用 API 和服务。您需要启用Admin SDK APIDrive API

  2. Google Workspace 域范围授权.

    要访问 Google Workspace 域中的云盘和用户数据,您创建的服务帐户需要由该域的超级管理员授予访问权限。您可以按照官方文档执行 Google Workspace 域范围授权。

    您需要将以下OAuth 范围授予您的服务帐户

    • https://www.googleapis.com/auth/admin.directory.group.readonly
    • https://www.googleapis.com/auth/admin.directory.user.readonly
    • https://www.googleapis.com/auth/drive.readonly
    • https://www.googleapis.com/auth/drive.metadata.readonly

    此步骤允许连接器

    • 访问 Google Workspace 组织中的用户数据及其组成员身份
    • 访问与 Google Workspace 成员关联的云盘中的 Google Drive 数据
配置
编辑

当使用自管理连接器工作流时,这些字段最初将使用 连接器源代码 中设置的默认配置。这些配置在 get_default_configuration 函数定义中设置。

这些可配置字段将在 Kibana UI 中使用它们各自的标签呈现。连接后,您可以在 Kibana 中更新这些值。

需要以下配置字段

service_account_credentials
从 Google Cloud Platform 生成的服务帐户凭据(JSON 字符串)。有关详细信息,请参阅Google Cloud 文档
use_domain_wide_delegation_for_sync
使用域范围委托自动同步 Google Workspace 中所有共享和个人云盘的内容。这样就无需手动与您的服务帐户共享 Google 云盘数据,但可能会增加同步时间。如果禁用,则只会同步手动与服务帐户共享的项目和文件夹。
google_workspace_admin_email_for_data_sync
启用数据同步的域范围委托时,此项为必填项。此电子邮件用于发现和同步共享云盘。只会同步此用户有权访问的共享云盘。
google_workspace_email_for_shared_drives_sync
启用数据同步的域范围委托时,此项为必填项。提供用于发现和同步共享云盘的 Google Workspace 用户电子邮件。只会同步此用户有权访问的共享云盘。
use_document_level_security

切换以启用文档级安全性 (DLS)。Google Drive 连接器支持 DLS。启用后

  • 完全同步将提取每个文档的访问控制列表,并将其存储在_allow_access_control字段中。
  • 访问控制同步将提取用户的访问控制列表,并将其存储在单独的索引中。
google_workspace_admin_email
Google Workspace 管理员电子邮件。需要启用文档级安全性 (DLS) 或域范围授权进行数据同步。具有委派权限的服务帐户可以模拟具有访问 Google Workspace 用户数据及其组成员身份权限的管理员用户。有关详细信息,请参阅Google Cloud 文档
max_concurrency
到 Google Drive API 的最大并发 HTTP 请求数。增加此值可以提高数据检索速度,但也可能对系统资源和网络带宽提出更高的要求。
use_text_extraction_service
需要单独部署Elastic 文本提取服务。需要管道设置禁用文本提取。默认值为 False
使用 Docker 部署
编辑

您可以使用 Docker 将 Google Drive 连接器部署为自管理连接器。请按照以下说明进行操作。

步骤 1:下载示例配置文件

下载示例配置文件。您可以手动下载或运行以下命令

curl https://raw.githubusercontent.com/elastic/connectors/main/config.yml.example --output ~/connectors-config/config.yml

如果您的目录名称不同,或者您想使用其他配置文件名称,请记住更新 --output 参数值。

步骤 2:更新自管理连接器的配置文件

使用以下设置更新配置文件以匹配您的环境

  • elasticsearch.host
  • elasticsearch.api_key
  • connectors

如果您针对 Docker 化的 Elasticsearch 和 Kibana 版本运行连接器服务,您的配置文件将如下所示

# When connecting to your cloud deployment you should edit the host value
elasticsearch.host: http://host.docker.internal:9200
elasticsearch.api_key: <ELASTICSEARCH_API_KEY>

connectors:
  -
    connector_id: <CONNECTOR_ID_FROM_KIBANA>
    service_type: google_drive
    api_key: <CONNECTOR_API_KEY_FROM_KIBANA> # Optional. If not provided, the connector will use the elasticsearch.api_key instead

建议使用 elasticsearch.api_key 作为身份验证方法。但是,您也可以使用 elasticsearch.usernameelasticsearch.password 来对您的 Elasticsearch 实例进行身份验证。

注意:您可以通过简单地取消注释配置文件中的特定设置并修改其值来更改其他默认配置。

步骤 3:运行 Docker 镜像

使用以下命令运行带有连接器服务的 Docker 镜像

docker run \
-v ~/connectors-config:/config \
--network "elastic" \
--tty \
--rm \
docker.elastic.co/enterprise-search/elastic-connectors:8.17.0.0 \
/app/bin/elastic-ingest \
-c /config/config.yml

有关更多详细信息,请参阅 elastic/connectors 仓库中的 DOCKER.md

官方注册表中查找所有可用的 Docker 镜像。

我们还提供了一个使用 Docker Compose 的快速启动自管理选项,因此您可以一次启动所有必需的服务:Elasticsearch、Kibana 和连接器服务。有关更多信息,请参阅 elastic/connectors 仓库中的此 README

文档和同步
编辑

连接器将提取服务帐户有权访问的所有文件和文件夹。

它将尝试从 Google Suite 文档(Google 文档、Google 表格和 Google 幻灯片)和常规文件中提取内容。

  • 不会提取大于 10 MB 的文件的内容
  • 默认情况下不会同步权限。您必须先启用DLS。否则,索引到 Elastic 部署的所有文档对于所有可以访问该 Elastic 部署的用户都可见。
同步类型
编辑

默认情况下,所有连接器都支持完全同步

此连接器还支持增量同步

同步规则
编辑

所有连接器的基本同步规则都相同,并且默认情况下可用。

当前版本中此连接器不提供高级同步规则。目前,过滤是通过提取管道控制的。

文档级安全性
编辑

文档级安全性 (DLS) 使您可以根据用户的权限限制对文档的访问。有关如何为此连接器启用 DLS,请参阅此页面上的配置

请参阅搜索应用程序中的 DLS,了解在构建搜索应用程序时如何从启用 DLS 的连接器提取数据。该示例使用 SharePoint Online 作为数据源,但相同的步骤适用于每个连接器。

内容提取
编辑

有关详细信息,请参阅内容提取

端到端测试
编辑

连接器框架使操作员能够针对实际数据源运行功能测试。有关更多详细信息,请参阅连接器测试

要对 Google Drive 连接器执行 E2E 测试,请运行以下命令

make ftest NAME=google_drive

为了加快测试速度,请添加 DATA_SIZE=small 标志

make ftest NAME=google_drive DATA_SIZE=small
已知问题
编辑

目前此连接器没有已知问题。

故障排除
编辑

请参阅故障排除

安全性
编辑

请参阅安全性