Справочник по соединителю Elastic Google Drive
Соединитель Elastic Google Drive — это соединитель для Google Диск. Этот соединитель написан на Python с использованием фреймворка соединителей Elastic.
Посмотреть исходный код для этого соединителя (ветка 8.17, совместимая с Elastic 8.17).
Справочник по управляемому соединителю Elastic
Просмотр справки управляемого коннектора Elastic
Доступность и предварительные требования
Этот коннектор доступен в качестве управляемого коннектора начиная с версии Elastic 8.11.0.
Чтобы использовать этот коннектор напрямую в Elastic Cloud, выполните все требования к управляемым коннекторам.
Использование
Чтобы использовать этот коннектор напрямую в Elastic Cloud, см. управляемые коннекторы Elastic.
Для дополнительных операций см. Интерфейс коннекторов в Kibana.
Предварительные требования к аутентификации коннектора
Перед синхронизацией данных из Google Диска необходимо создать учетную запись службы с соответствующим доступом к API Google Диска.
Для начала войдите в Google Cloud Platform и перейдите к Console.
- Создать проект Google Cloud. Присвойте проекту имя, измените идентификатор проекта и нажмите кнопку Создать.
- Включить Google API. В левом меню выберите «API и службы» и нажмите на
Enable APIs and Services. Вам необходимо включить API Диска. -
Создать учетную запись службы. В разделе
APIs & Services, нажмите наCredentialsи нажмите наCreate credentials, чтобы создать учетную запись службы. Присвойте вашей учетной записи службы имя и идентификатор учетной записи службы. Это как электронный адрес, который будет использоваться для идентификации вашей учетной записи службы в будущем. НажмитеDone, чтобы завершить создание учетной записи службы. Ваша учетная запись службы должна иметь доступ по крайней мере к следующему разрешению:-
https://www.googleapis.com/auth/drive.readonly
-
-
Создать файл ключей.
- В Консоли Google Cloud перейдите к
IAM and Admin>Service accountsстранице. - Щелкните адрес электронной почты учетной записи службы, для которой вы хотите создать ключ.
- Щелкните вкладку
Keys. Щелкните раскрывающееся менюAdd key, затем выберитеCreate new key. - Выберите JSON в качестве типа ключа, а затем нажмите
Create. Это загрузит файл JSON, который будет содержать учетные данные учетной записи службы.
- В Консоли Google Cloud перейдите к
- [Необязательно] Поделиться папками Google Диска. Если вы используете делегирование на уровне домена для синхронизации данных, вы можете пропустить этот шаг. Перейдите в свой Google Диск. Щелкните правой кнопкой мыши папку или общий диск, выберите
Shareи добавьте адрес электронной почты учетной записи службы, созданной на шаге 3, как зрителя в эту папку.
Когда вы предоставляете учетной записи службы доступ к определенной папке или общему диску в Google Диске, важно отметить, что разрешения распространяются на все элементы внутри этой папки или диска. Это означает, что все папки или файлы, содержащиеся в предоставленной папке или диске, унаследуют те же права доступа, что и родительский элемент.
Дополнительные предварительные требования к аутентификации для делегирования на уровне домена
Этот шаг требуется, когда Использовать делегирование на уровне домена для синхронизации данных или Включить безопасность на уровне документа опция конфигурации включена.
-
Включить Google API.
В левом меню выберите «API и службы» и нажмите на
Enable APIs and Services. Вам необходимо включить API Admin SDK и API Диска. -
Делегирование полномочий на уровне домена 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 Диска в дисках, связанных с участниками Google Workspace
-
Настройка
Требуются следующие поля конфигурации:
- Файл JSON учетной записи службы Google Диска
- Учетные данные учетной записи службы, сгенерированные из Google Cloud Platform (строка JSON). Для получения дополнительной информации обратитесь к документации Google Cloud.
- Включить безопасность на уровне документа
-
Переключатель для включения безопасности на уровне документа (DLS). DLS поддерживается для коннектора Google Диска. При включении:
- Полные синхронизации будут получать списки управления доступом для каждого документа и сохранять их в поле
_allow_access_control. - Синхронизации управления доступом будут получать списки управления доступом пользователей и сохранять их в отдельном индексе.
- Полные синхронизации будут получать списки управления доступом для каждого документа и сохранять их в поле
- Электронный адрес администратора Google Workspace
- Электронный адрес администратора Google Workspace. Требуется для включения безопасности на уровне документа (DLS) или делегирования на уровне домена для синхронизации данных. Учетная запись службы с делегированными полномочиями может подменять администратора с разрешениями для доступа к данным пользователей Google Workspace и их членству в группах. Для получения дополнительной информации обратитесь к документации Google Cloud.
Документы и синхронизации
Коннектор получит все файлы и папки, к которым имеет доступ учетная запись службы.
Он попытается извлечь содержимое из документов Google Suite (Google Docs, Google Sheets и Google Slides) и обычных файлов.
- Содержимое файлов размером более 10 МБ не будет извлечено. (Управляемые коннекторы могут использовать локальный сервис извлечения для обработки больших двоичных файлов.)
- Разрешения по умолчанию не синхронизируются. Сначала необходимо включить DLS. В противном случае все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому развертыванию.
Типы синхронизации
Полные синхронизации поддерживаются по умолчанию для всех коннекторов.
Этот коннектор также поддерживает инкрементные синхронизации.
Правила синхронизации
Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.
Расширенные правила синхронизации недоступны для этого коннектора в текущей версии. В настоящее время фильтрация контролируется через конвейеры поглощения.
Безопасность на уровне документа
Безопасность на уровне документа (DLS) позволяет ограничивать доступ к документам на основе разрешений пользователя. Обратитесь к настройке на этой странице, чтобы узнать, как включить DLS для этого коннектора.
Обратитесь к DLS в приложениях поиска, чтобы узнать, как получать данные из коннектора с включенной DLS при создании приложения поиска. Пример использует SharePoint Online в качестве источника данных, но те же шаги применимы к каждому коннектору.
Извлечение содержимого
См. Извлечение содержимого для получения дополнительной информации.
Известные проблемы
В настоящее время для этого коннектора нет известных проблем.
Устранение неполадок
См. Устранение неполадок.
Безопасность
См. Безопасность.
Управляемый коннектор
Ссылка на самостоятельно управляемый коннектор
Доступность и предварительные требования
Этот коннектор доступен в качестве самостоятельно управляемого самостоятельно управляемого коннектора. Для использования этого коннектора необходимо выполнить все требования к самостоятельно управляемому коннектору.
Использование
Чтобы использовать этот коннектор как самостоятельно управляемый коннектор, см. Самостоятельно управляемые коннекторы. Для дополнительных операций с использованием см. Интерфейс коннекторов в Kibana.
Предварительные требования к аутентификации коннектора
Перед синхронизацией любых данных из Google Диска необходимо создать учетную запись сервиса с соответствующим доступом к API Google Диска.
Для начала войдите в Google Cloud Platform и перейдите к Console.
- Создать проект Google Cloud. Присвойте проекту имя, измените идентификатор проекта и нажмите кнопку Создать.
- Включить API Google. Выберите «API и службы» в левом меню и нажмите на
Enable APIs and Services. Вам необходимо включить API Диска. -
Создать учетную запись сервиса. В разделе
APIs & Servicesнажмите наCredentialsи нажмите наCreate credentials, чтобы создать учетную запись сервиса. Присвойте вашей учетной записи сервиса имя и идентификатор учетной записи сервиса. Это как адрес электронной почты и будет использоваться для идентификации вашей учетной записи сервиса в будущем. НажмитеDone, чтобы завершить создание учетной записи сервиса. Вашей учетной записи сервиса нужен доступ по крайней мере к следующему объёму:-
https://www.googleapis.com/auth/drive.readonly
-
-
Создать файл ключа.
- В Консоли Google Cloud перейдите в
IAM and Admin>Service accountsстраницу. - Щелкните адрес электронной почты учетной записи сервиса, для которой вы хотите создать ключ.
- Щелкните вкладку
Keys. Щелкните раскрывающееся менюAdd key, затем выберитеCreate new key. - Выберите JSON в качестве типа ключа, а затем нажмите
Create. Это загрузит файл JSON, который будет содержать учетные данные учетной записи сервиса.
- В Консоли Google Cloud перейдите в
- [Необязательно] Разделить папки Google Диска. Если вы используете делегирование на уровне домена для синхронизации данных, вы можете пропустить этот шаг. Перейдите в свой Google Диск. Щелкните правой кнопкой мыши папку или общий диск, выберите
Shareи добавьте адрес электронной почты учетной записи сервиса, созданной на шаге 3. в качестве просмотрщика в эту папку.
Когда вы предоставляете учетной записи сервиса доступ к определенной папке или общему диску в Google Диске, важно отметить, что разрешения распространяются на все элементы внутри этой папки или диска. Это означает, что все папки и файлы, содержащиеся в предоставленной папке или диске, наследуют те же права доступа, что и родительский элемент.
Дополнительные предварительные требования к аутентификации для делегирования на уровне домена
Этот шаг обязателен, когда Использовать делегирование на уровне домена для синхронизации данных или Включить безопасность на уровне документа опция конфигурации включена.
-
Включить Google API.
Выберите «API и службы» в левом меню и нажмите на
Enable APIs and Services. Вам нужно включить API администратора и API Диска. -
Делегирование полномочий на уровне домена 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 Диска в дисках, связанных с членами Google Workspace
-
Конфигурация
При использовании потока работы самостоятельно управляемого коннектора изначально эти поля будут использовать значения по умолчанию, установленные в коде источника коннектора. Они заданы в определении функции get_default_configuration.
Эти настраиваемые поля будут отображены с соответствующими метками в пользовательском интерфейсе Kibana. После подключения вы сможете обновить эти значения в 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). DLS поддерживается для коннектора Google Диска. При включении:
- Полные синхронизации получат списки управления доступом для каждого документа и сохранят их в поле
_allow_access_control. - Синхронизации управления доступом получат списки управления доступом пользователей и сохранят их в отдельном индексе.
- Полные синхронизации получат списки управления доступом для каждого документа и сохранят их в поле
-
google_workspace_admin_email - Электронная почта администратора Google Workspace. Требуется для включения безопасности на уровне документа (DLS) или делегирования на уровне домена для синхронизации данных. Учетная запись сервиса с делегированными полномочиями может имитировать пользователя-администратора с разрешениями для доступа к данным пользователей Google Workspace и их принадлежности к группам. Для получения дополнительной информации см. документацию Google Cloud.
-
max_concurrency - Максимальное количество одновременных HTTP-запросов к API Google Диска. Увеличение этого значения может ускорить получение данных, но также может создать большие требования к системным ресурсам и пропускной способности сети.
-
use_text_extraction_service - Требует отдельного развертывания Услуги Elastic Text Extraction Service. Требуется, чтобы настройки конвейера отключали извлечение текста. Значение по умолчанию –
False.
Развертывание с помощью Docker
Вы можете развернуть коннектор Google Диска как самостоятельно управляемый коннектор с помощью Docker. Следуйте этим инструкциям.
Шаг 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
Если вы используете службу коннектора с контейнеризованной версией 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.username и elasticsearch.password для аутентификации с вашим экземпляром Elasticsearch.
Примечание: вы можете изменить другие значения по умолчанию, просто раскомментировав соответствующие настройки в файле конфигурации и изменив их значения.
Шаг 3: Запуск Docker-изображения
Запустите Docker-образ с Сервисом Коннектора, используя следующую команду:
docker run \ -v ~/connectors-config:/config \ --network "elastic" \ --tty \ --rm \ docker.elastic.co/enterprise-search/elastic-connectors:8.17.3 \ /app/bin/elastic-ingest \ -c /config/config.yml
Обратитесь к DOCKER.md в репозитории elastic/connectors для получения более подробной информации.
Найдите все доступные Docker-образы в официальном репозитории.
У нас также есть вариант быстрого запуска с автономным использованием Docker Compose, позволяющий одновременно запустить все необходимые службы: Elasticsearch, Kibana и службу коннекторов. Обратитесь к этому README в репозитории elastic/connectors для получения дополнительной информации.
Документы и синхронизация
Коннектор получит все файлы и папки, к которым имеет доступ учетная запись службы.
Он попытается извлечь содержимое документов Google Suite (Google Docs, Google Sheets и Google Slides), а также обычных файлов.
- Содержимое файлов размером более 10 МБ не будет извлечено
- Разрешения не синхронизируются по умолчанию. Сначала необходимо включить DLS. В противном случае, все документы, индексированные в Elastic-развертывании, будут видны всем пользователям с доступом к этому развертыванию Elastic.
Типы синхронизации
Полные синхронизации поддерживаются по умолчанию для всех коннекторов.
Этот коннектор также поддерживает инкрементные синхронизации.
Правила синхронизации
Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.
Расширенные правила синхронизации недоступны для этого коннектора в текущей версии. В настоящее время фильтрация контролируется через конвейеры инжеста.
Безопасность на уровне документа
Безопасность на уровне документа (DLS) позволяет ограничивать доступ к документам на основе разрешений пользователя. Обратитесь к настройкам на этой странице, чтобы узнать, как включить DLS для этого коннектора.
Обратитесь к DLS в приложениях поиска, чтобы узнать, как импортировать данные из коннектора с включенной DLS при создании приложения поиска. В примере используется SharePoint Online в качестве источника данных, но шаги аналогичны для каждого коннектора.
Извлечение содержимого
См. Извлечение содержимого для получения дополнительной информации.
Конечное тестирование
Структура коннектора позволяет операторам выполнять функциональное тестирование с использованием реального источника данных. Обратитесь к тестированию коннекторов для получения более подробной информации.
Для выполнения конечного тестирования для коннектора Google Диск выполните следующую команду:
make ftest NAME=google_drive
Для более быстрого тестирования добавьте флаг DATA_SIZE=small:
make ftest NAME=google_drive DATA_SIZE=small
Известные проблемы
В настоящее время для этого коннектора нет известных проблем.
Устранение неполадок
См. Устранение неполадок.
Безопасность
См. Безопасность.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/es-connectors-google-drive.html