Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Обработка контента с помощью коннекторов Elastic ›Справочник по коннекторам

Справочник по коннектору Elastic Gmail

Коннектор Elastic GMail — это коннектор для GMail.

Справочник по управляемому коннектору Elastic

Просмотр справки управляемого коннектора Elastic
Доступность и предварительные условия

Этот коннектор доступен как управляемый коннектор (управляемая служба) в Elastic Cloud.

Этот коннектор совместим с версиями Elastic 8.13.0+.

Чтобы использовать этот коннектор, выполните все требования к управляемому коннектору.

Создание коннектора Gmail

Использование пользовательского интерфейса

Чтобы создать новый коннектор Gmail:

  1. В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы из главного меню или используйте поле глобального поиска.
  2. Следуйте инструкциям для создания нового родного коннектора Gmail.

Дополнительные операции см. в Пользовательском интерфейсе коннекторов в Kibana.

Использование API

Вы можете использовать Elasticsearch API создания коннектора для создания нового родного коннектора Gmail.

Например:

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
    is_native=True,
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
  is_native: true,
});
console.log(response);
PUT _connector/my-gmail-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from Gmail",
  "service_type": "gmail",
  "is_native": true
}
Вам также потребуется создать ключ API для использования коннектором.

Пользователю необходимы привилегии кластера manage_api_key, manage_connector и write_connector_secrets для программного создания ключей API.

Чтобы создать ключ API для коннектора:

  1. Выполните следующую команду, заменив указанные значения. Обратите внимание на значения id и encoded из ответа:

    resp = client.security.create_api_key(
        name="my-connector-api-key",
        role_descriptors={
            "my-connector-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "my-index_name",
                            ".search-acl-filter-my-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "my-connector-api-key",
      role_descriptors: {
        "my-connector-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "my-connector-api-key",
      "role_descriptors": {
        "my-connector-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. Используйте значение encoded для хранения секрета коннектора и обратите внимание на значение id из ответа:

    resp = client.perform_request(
        "POST",
        "/_connector/_secret",
        headers={"Content-Type": "application/json"},
        body={
            "value": "encoded_api_key"
        },
    )
    print(resp)
    const response = await client.transport.request({
      method: "POST",
      path: "/_connector/_secret",
      body: {
        value: "encoded_api_key",
      },
    });
    console.log(response);
    POST _connector/_secret
    {
      "value": "encoded_api_key"
    }
  3. Используйте ключ API id и секрет коннектора id для обновления коннектора:

    resp = client.connector.update_api_key_id(
        connector_id="my_connector_id>",
        api_key_id="API key_id",
        api_key_secret_id="secret_id",
    )
    print(resp)
    const response = await client.connector.updateApiKeyId({
      connector_id: "my_connector_id>",
      api_key_id: "API key_id",
      api_key_secret_id: "secret_id",
    });
    console.log(response);
    PUT /_connector/my_connector_id>/_api_key_id
    {
      "api_key_id": "API key_id",
      "api_key_secret_id": "secret_id"
    }

Подробности всех доступных API коннекторов см. в документации API Elasticsearch.

Использование

Чтобы использовать этот коннектор как управляемый коннектор в Elastic Cloud, используйте рабочий процесс Коннекторы в пользовательском интерфейсе Kibana.

Чтобы создать новый коннектор Gmail:

  1. Перейдите на страницу Поиск → Коннекторы в пользовательском интерфейсе Kibana.
  2. Нажмите кнопку Новый родной коннектор.
  3. Выберите коннектор Gmail.

Дополнительные операции см. в Пользовательском интерфейсе коннекторов в Kibana.

Предварительные условия аутентификации коннектора

Перед синхронизацией данных из GMail вам необходимо создать сервис-аккаунт с соответствующим доступом к API GMail и Google Directory, который является частью API Google Admin SDK. Вам также необходимо включить делегирование на уровне домена для имитации пользователей, сообщения которых вы получаете.

Для начала войдите в Google Cloud Platform и перейдите в Console.

  1. Создайте проект Google Cloud. Присвойте проекту имя, измените идентификатор проекта и нажмите кнопку Создать.
  2. Включите API Google. Выберите API и службы в левом меню и нажмите на Enable APIs and Services. Вам необходимо включить API GMail и API Google Admin SDK.
  3. Создайте сервис-аккаунт. В разделе APIs & Services нажмите на Credentials и нажмите на Create credentials, чтобы создать сервис-аккаунт. Присвойте вашему сервис-аккаунту имя и идентификатор. Это как адрес электронной почты и будет использоваться для идентификации вашего сервис-аккаунта в будущем. Нажмите на Done, чтобы завершить создание сервис-аккаунта.

    Ваш сервис-аккаунт должен иметь доступ, по крайней мере, к следующим областям действия:

    • https://www.googleapis.com/auth/gmail.readonly
  4. Создайте файл ключей.

    • В Консоли Google перейдите к IAM and Admin > Service accounts страница.
    • Нажмите на адрес электронной почты сервис-аккаунта, для которого вы хотите создать ключ.
    • Нажмите на вкладку Keys. Нажмите на раскрывающееся меню Add key, затем выберите Create new key.
    • Выберите JSON в качестве типа ключа, а затем нажмите Create. Это загрузит JSON-файл, содержащий учетные данные сервис-аккаунта.
  5. Делегирование полномочий в домене Google Workspace.

    Для доступа к данным пользователей, таким как сообщения в домене Google Workspace, сервис-аккаунту, который вы создали, необходимо предоставить доступ супер-администратором домена. Вы можете следовать официальной документации для выполнения делегирования полномочий в домене Google Workspace.

    Вам необходимо предоставить вашему сервис-аккаунту следующие OAuth области действия:

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

    Этот шаг позволяет коннектору получать доступ к данным пользователей и их членству в группах в вашей организации Google Workspace.

Конфигурация

Требуются следующие поля конфигурации:

JSON сервис-аккаунта GMail
Учетные данные сервис-аккаунта, сгенерированные из Google Cloud Platform (строка JSON). Дополнительную информацию см. в документации Google Cloud.
Электронная почта администратора Google Workspace
Электронная почта администратора Google Workspace. Требуется для включения защиты на уровне документа (DLS). Сервис-аккаунт с делегированными полномочиями может имитировать администратора с разрешениями на доступ к данным пользователей Google Workspace и их членству в группах. Дополнительную информацию см. в документации Google Cloud.
Идентификатор клиента Google
Идентификатор клиента Google. Требуется для получения сообщений и для включения защиты на уровне документа (DLS). Перейдите к Google Workspace Admin Console → Account и скопируйте значение в поле Customer Id.
Включать сообщения спама и корзины
Включите для получения сообщений спама и корзины. Также работает с защитой на уровне документа (DLS).
Включить защиту на уровне документа

Включите, чтобы включить защиту на уровне документа (DLS). DLS поддерживается для коннектора GMail. При включении:

  • Полные синхронизации получат списки управления доступом для каждого документа и сохранят их в поле _allow_access_control.
  • Синхронизации управления доступом получат списки управления доступом пользователей и сохранят их в отдельном индексе.
Документы и синхронизации

Коннектор получит все сообщения всех пользователей, к которым у сервис-аккаунта есть доступ.

Типы синхронизации

Полные синхронизации поддерживаются по умолчанию для всех коннекторов.

Этот коннектор также поддерживает инкрементальные синхронизации.

Правила синхронизации

Основные правила синхронизации идентичны для всех коннекторов и доступны по умолчанию.

Доступны расширенные правила синхронизации для этого коннектора. Коннектор поддерживает синтаксис расширенного поиска GMail в поле messages.

Например:

{
  "messages": [
    "before:2021/10/10",
    "from:amy"
  ]
}
Защита на уровне документа

Безопасность на уровне документа (DLS) позволяет ограничить доступ к документам на основе разрешений пользователя. Обратитесь к настройке на этой странице, чтобы узнать, как включить DLS для этого коннектора.

Обратитесь к DLS в приложениях поиска, чтобы узнать, как импортировать данные из коннектора с включенной DLS при создании приложения поиска. В примере используется SharePoint Online в качестве источника данных, но те же шаги применяются ко всем коннекторам.

Известные проблемы

В настоящее время для этого коннектора нет известных проблем.

Отладка

См. Отладку.

Безопасность

См. Безопасность.

Фреймворк и исходный код

Этот коннектор разработан на Python с использованием фреймворка Elastic для коннекторов.

Просмотрите исходный код этого коннектора (ветка 8.17, совместима с Elastic 8.17).

Справочник по управляемому пользователем коннектору

Просмотр справки по самостоятельно управляемому соединителю
Доступность и предварительные условия

Этот соединитель доступен как самостоятельно управляемый самостоятельно управляемый соединитель из фреймворка соединителей Elastic.

Этот самостоятельно управляемый соединитель совместим с версиями Elastic 8.10.0+.

Для использования этого соединителя, выполните все требования к самостоятельно управляемому соединителю.

Создание соединителя Gmail

Использование пользовательского интерфейса

Чтобы создать новый соединитель Gmail:

  1. В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Соединители из главного меню или используйте поле глобального поиска.
  2. Следуйте инструкциям для создания нового Gmail самостоятельно управляемого соединителя.

Использование API

Вы можете использовать Elasticsearch API для создания соединителя для создания нового самостоятельно управляемого соединителя Gmail.

Например:

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
});
console.log(response);
PUT _connector/my-gmail-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from Gmail",
  "service_type": "gmail"
}
Вам также потребуется создать ключ API для использования соединителем.

Пользователю необходимы права кластера manage_api_key, manage_connector и write_connector_secrets для программного создания ключей API.

Чтобы создать ключ API для соединителя:

  1. Выполните следующую команду, заменив указанные значения. Обратите внимание на значения encoded из ответа:

    resp = client.security.create_api_key(
        name="connector_name-connector-api-key",
        role_descriptors={
            "connector_name-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "index_name",
                            ".search-acl-filter-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "connector_name-connector-api-key",
      role_descriptors: {
        "connector_name-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "connector_name-connector-api-key",
      "role_descriptors": {
        "connector_name-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. Обновите свой файл config.yml с значением ключа API encoded.

Обратитесь к документации API Elasticsearch за подробностями всех доступных API соединителей.

Использование

Для использования этого соединителя в качестве самостоятельно управляемого соединителя используйте рабочий процесс Соединителя в пользовательском интерфейсе Kibana.

Для дополнительных операций см. Пользовательский интерфейс соединителей в Kibana.

Предварительные условия для проверки подлинности соединителя

Перед синхронизацией любых данных из GMail, вам необходимо создать сервис-аккаунт с соответствующим доступом к API GMail и Google Directory, который является частью API Google Admin SDK. Вам также нужно включить делегирование полномочий на уровне домена для имитации пользователей, из которых вы получаете сообщения.

Для начала войдите в Google Cloud Platform и перейдите к Console.

  1. Создайте проект Google Cloud. Дайте проекту имя, измените идентификатор проекта и нажмите кнопку Создать.
  2. Включите Google API. Выберите API и службы в левом меню и нажмите на Enable APIs and Services. Вам нужно включить API GMail и API Google Admin SDK.
  3. Создайте сервис-аккаунт. В разделе APIs & Services нажмите на Credentials и нажмите на Create credentials, чтобы создать сервис-аккаунт. Присвойте вашему сервис-аккаунту имя и идентификатор сервис-аккаунта. Это как электронный адрес, который будет использоваться для идентификации вашего сервис-аккаунта в будущем. Нажмите Done, чтобы завершить создание сервис-аккаунта.

    Вашему сервис-аккаунту нужен доступ по крайней мере к следующим областям:

    • https://www.googleapis.com/auth/gmail.readonly
  4. Создайте файл ключей.

    • В консоли Cloud перейдите к IAM and Admin > Service accounts.
    • Щелкните адрес электронной почты сервис-аккаунта, для которого вы хотите создать ключ.
    • Щелкните вкладку Keys. Щелкните раскрывающееся меню Add key, затем выберите Create new key.
    • Выберите JSON в качестве типа ключа и затем нажмите Create. Это загрузит файл JSON, который будет содержать учетные данные сервис-аккаунта.
  5. Делегирование полномочий Google Workspace на уровне всего домена.

    Для доступа к данным пользователей, таким как сообщения в домене Google Workspace, сервис-аккаунту, который вы создали, необходимо предоставить доступ супер-администратором домена. Вы можете следовать официальной документации для выполнения делегирования полномочий Google Workspace на уровне всего домена.

    Вам нужно предоставить следующие OAuth-области своему сервис-аккаунту:

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

    Этот шаг позволяет соединителю получить доступ к данным пользователей и их членству в группах в вашей организации Google Workspace.

Настройка

При использовании рабочего процесса самостоятельно управляемого соединителя, изначально эти поля будут использовать настройки по умолчанию, установленные в коде источника соединителя. Они устанавливаются в определении функции get_default_configuration.

Эти настраиваемые поля будут отображаться со своими соответствующими метками в пользовательском интерфейсе Kibana. После подключения вы сможете обновить эти значения в Kibana.

Требуются следующие поля конфигурации:

GMail service account JSON
Учетные данные сервис-аккаунта, сгенерированные в Google Cloud Platform (строка JSON). Для получения дополнительной информации обратитесь к документации Google Cloud.
Google Workspace admin email
Электронный адрес администратора Google Workspace. Необходим для включения защиты на уровне документов (DLS). Сервис-аккаунт с делегированными полномочиями может имитировать пользователя-администратора с разрешениями на доступ к данным пользователей Google Workspace и их членству в группах. Для получения дополнительной информации обратитесь к документации Google Cloud.
Google customer id
Идентификатор клиента Google. Необходим для получения сообщений и включения защиты на уровне документов (DLS). Перейдите к Google Workspace Admin Console → Account и скопируйте значение в поле Customer Id.
Include spam and trash emails
Переключатель для получения спама и мусора. Также работает с DLS.
Enable document level security

Переключатель для включения защиты на уровне документов (DLS. DLS поддерживается для соединителя GMail. При включении:

  • Полные синхронизации получат списки управления доступом для каждого документа и сохранят их в поле _allow_access_control.
  • Синхронизации управления доступом получат списки управления доступом пользователей и сохранят их в отдельном индексе.
Развертывание с использованием Docker

Вы можете развернуть соединитель Gmail как самостоятельно управляемый соединитель с использованием 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

Если вы запускаете службу соединителя с использованием 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: gmail
    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-образ с Connector Service, используя следующую команду:

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.

Документы и синхронизации

Коннектор получит все сообщения всех пользователей, к которым имеет доступ учетная запись службы.

Типы синхронизации

Полные синхронизации по умолчанию поддерживаются для всех коннекторов.

Этот коннектор также поддерживает инкрементные синхронизации.

Правила синхронизации

Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.

Для этого коннектора доступны расширенные правила синхронизации. Коннектор поддерживает синтаксис расширенного поиска Gmail в поле messages.

Например:

{
  "messages": [
    "before:2021/10/10",
    "from:amy"
  ]
}
Безопасность на уровне документов

Безопасность на уровне документов (DLS) позволяет ограничивать доступ к документам на основе разрешений пользователя. См. настройку на этой странице, чтобы узнать, как включить DLS для этого коннектора.

Обратитесь к DLS в приложениях поиска, чтобы узнать, как импортировать данные из коннектора с включенной DLS при создании приложения поиска. В примере используется SharePoint Online в качестве источника данных, но те же шаги применимы к каждому коннектору.

Известные проблемы

В настоящее время для этого коннектора нет известных проблем.

Поиск решения проблем

См. Поиск решения проблем.

Безопасность

См. Безопасность.

Фреймворк и исходный код

Этот коннектор разработан на Python с использованием фреймворка Elastic для коннекторов.

Просмотреть исходный код этого коннектора (ветка 8.17, совместима с Elastic 8.17).

© 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-gmail.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API