Справочник по соединителю данных хранилища BLOB-объектов хранилища Azure для платформы соединителей без кода

Чтобы создать соединитель данных хранилища BLOB-объектов Azure с помощью платформы соединителей без кода (CCF), используйте эту ссылку в дополнение к статье Microsoft Sentinel REST API для соединителей данных.

В этом процессе загрузки производитель записывает данные в Хранилище BLOB-объектов Azure. Сетка событий Azure отправляет события создания blob в очередь служба хранилища Azure, где они буферизируются до тех пор, пока коннектор их не обработает. Затем коннектор читает blob-и и направляет их содержимое через правило сбора данных Azure Monitor (DCR) в таблицу назначения. Эта надёжная конструкция на основе очереди поддерживает обработку обратного давления и устойчивое поглощение источников данных с большим объёмом.

Каждый из них dataConnector представляет определенное соединение соединителя данных Microsoft Sentinel. Один соединитель данных может иметь несколько подключений, которые извлекает данные из разных конечных точек. Конфигурация JSON, созданная с помощью этого справочного документа, используется для завершения шаблона развертывания соединителя данных CCF.

Дополнительные сведения см. в статье Создание соединителя без кода для Microsoft Sentinel.

Создание соединителя данных CCF хранилища BLOB-объектов хранилища Azure

Упростите разработку подключения источника данных хранилища BLOB-объектов Azure с помощью примера шаблона развертывания соединителя данных CCF хранилища BLOB-объектов. Дополнительные сведения см. в разделе Хранилище соединителяBlob CCF шаблон.

После того как большая часть разделов шаблона развертывания заполнена, необходимо только создать первые два компонента: таблицу выходных данных и DCR. Дополнительные сведения см. в разделах Определение таблицы вывода и Правило сбора данных (DCR).

Соединители данных — создание или обновление

Чтобы найти последнюю стабильную или предварительную версию API, ознакомьтесь с операцией создания или обновления в документации по REST API. Разница между операцией создания и обновления заключается в том, что для обновления требуется значение etag .

Метод PUT

https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectors/{{dataConnectorId}}?api-version={{apiVersion}}

Параметры URI

Дополнительные сведения о последней версии API см. в разделе Соединители данных — создание или обновление параметров URI.

Имя Описание
dataConnectorId Идентификатор соединителя данных должен иметь уникальное имя и совпадать с параметром name в тексте запроса.
resourceGroupName Имя группы ресурсов без учета регистра.
subscriptionId Идентификатор целевой подписки.
workspaceName Имя рабочей области, а не идентификатор.
Шаблон регулярных выражений: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
версия api Версия API, используемая для этой операции.

Текст запроса

Текст запроса для соединителя StorageAccountBlobContainer данных CCF имеет следующую структуру:

{
   "name": "{{dataConnectorId}}",
   "kind": "StorageAccountBlobContainer",
   "etag": "",
   "properties": {
        "connectorDefinitionName": "",
        "auth": {},
        "request": {},
        "dcrConfig": {},
        "response": {}
   }
}

StorageAccountBlobContainer

StorageAccountBlobContainer представляет соединитель данных CCF, в котором уже настроены ожидаемые полезные данные ответа для источника данных хранилища BLOB-объектов хранилища Azure. Настройка производителя для отправки данных в хранилище BLOB-объектов должна выполняться отдельно.

Имя Обязательный Тип Описание
name True string Уникальное имя подключения, соответствующее параметру URI.
kind True string Необходимое значение — StorageAccountBlobContainer.
etag GUID Оставьте пустым для создания новых соединителей. Для операций обновления etag должен соответствовать существующему etag соединителя (GUID).
Вариантов размещения. connectorDefinitionName string Имя ресурса DataConnectorDefinition, определяющего конфигурацию пользовательского интерфейса соединителя данных. Дополнительные сведения см. в разделе Определение соединителя данных.
Вариантов размещения. Auth True Вложенный JSON Описывает учетные данные для приема Azure данных BLOB-объектов хранилища. Дополнительные сведения см. в разделе Настройка проверки подлинности.
Вариантов размещения. Запрос True Вложенный JSON Описывает очереди хранилища Azure, получающие события, созданные в область BLOB-объекта. Дополнительные сведения см. в разделе Настройка запроса.
Вариантов размещения. dcrConfig Вложенный JSON Обязательные параметры при отправке данных в правило сбора данных (DCR). Дополнительные сведения см. в разделе Конфигурация DCR.
Вариантов размещения. Ответ True Вложенный JSON Описывает объект ответа и вложенное сообщение, возвращаемое API при извлечении данных. Дополнительные сведения см. в разделе Настройка ответа.

Конфигурация проверки подлинности

Соединитель blob-объектов хранилища Azure использует субъект-службу, созданный в клиенте, связанном с мультитенантным приложением, управляемым Корпорацией Майкрософт (схема субъекта-службы). Администратор клиента должен предоставить согласие на создание этого субъекта-службы. Шаблон ARM позволяет проверить, существует ли субъект-служба, связанный с приложением, в вашем клиенте, а если нет, можно создать субъект-службу с согласия пользователя.

Пример шаблона ARM включает операции для применения всех необходимых ролей доступа к учетной записи хранения для чтения BLOB-объектов и участия в очередях. Убедитесь, что шаблон и используемые субъекты-службы связаны с приложением для вашей среды и что предоставлено согласие администратора клиента.

В следующей таблице перечислены идентификаторы приложений для Azure среды:

Среда Azure ApplicationId
AzureCloud 4f05ce56-95b6-4612-9d98-a45c8cc33f9f

Пример проверки подлинности StorageAccountBlobContainer:

"auth": {
    "type": "ServicePrincipal"
}

Конфигурация запроса

В разделе запроса описываются очереди хранилища Azure, которые получают сообщения о событиях, созданных blob-объектами.

Прежде чем настроить этот раздел, создайте очереди уведомлений и мёртвых букв. Настройте подписку Сетка событий Azure на аккаунте хранения для отправки Microsoft.Storage.BlobCreated событий в очередь уведомлений, указанную QueueUri. Для получения дополнительной информации см. Быстрый старт: Маршрутизация событий хранения Blob на веб-конечную точку через портал Azure.

Поле Обязательный Тип Описание
QueueUri True String Универсальный код ресурса (URI) очереди хранилища Azure, которая получает события, созданные blob-объектами.
DlqUri True String Универсальный код ресурса (URI) очереди недоставленных сообщений.

Пример запроса StorageAccountBlobContainer:

"request": {
    "QueueUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('queueName'))]",
    "DlqUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('dlqName'))]"
}

Конфигурация ответа

Определите обработку ответов соединителя данных со следующими параметрами:

Поле Обязательный Тип Описание
EventsJsonPaths True Список строк Определяет путь к сообщению в json-файле ответа. Выражение пути JSON указывает путь к элементу или набору элементов в структуре JSON.
IsGzipCompressed Логический Определяет, сжимается ли ответ в GZIP-файле.
format True String json, csv, xmlили parquet
CompressionAlgo String Алгоритм сжатия, либо multi-gzipdeflate. Для сжатия gzip настройте isGzipCompressed в вместо того, чтобы True задавать значение для этого параметра.
CsvDelimiter String Если формат ответа — CSV и необходимо изменить разделитель ,CSV по умолчанию .
HasCsvBoundary Логический Указывает, имеет ли данные CSV границу.
HasCsvHeader Логический Указывает, есть ли у данных CSV заголовок. Значение по умолчанию: True.
CsvEscape String Escape-символ для границы поля. Значение по умолчанию: ". Например, csv с заголовками и строкой данных, содержащей такие пробелы id,name,avg , требует 1,"my name",5.5 границы " поля.

Примечание.

Тип формата CSV анализируется спецификацией RFC 4180 .

Примеры конфигурации ответа

Несжатый JSON:

"response": {
    "EventsJsonPaths": ["$"],
    "format": "json"
}

Сжатый CSV-файл:

"response": {
    "EventsJsonPaths": ["$"],
    "format": "csv",
    "IsGzipCompressed": true
}

Parquet (можно вывести сжатие):

"response": {
    "EventsJsonPaths": ["$"],
    "format": "parquet"
}

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

Поле Обязательный Тип Описание
DataCollectionEndpoint True String DCE (конечная точка сбора данных), например: https://example.ingest.monitor.azure.com.
DataCollectionRuleImmutableId True String Неизменяемый идентификатор DCR. Найдите его, просмотрев ответ на создание DCR или с помощью API DCR.
StreamName True string Это значение определяется streamDeclaration в DCR (префикс должен начинаться с Custom-).

Пример соединителя данных CCF

Ниже приведен пример всех компонентов json соединителя StorageAccountBlobContainer данных CCF.

{
    "kind": "StorageAccountBlobContainer",
    "properties": {
        "connectorDefinitionName": "[[parameters('connectorDefinitionName')]",
        "dcrConfig": {
            "streamName": "[variables('streamName')]",
            "dataCollectionEndpoint": "[[parameters('dcrConfig').dataCollectionEndpoint]",
            "dataCollectionRuleImmutableId": "[[parameters('dcrConfig').dataCollectionRuleImmutableId]"
        },
        "auth": {
            "type": "ServicePrincipal"
        },
        "request": {
            "QueueUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('queueName'))]",
            "DlqUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('dlqName'))]"
        }
    }
}

Дополнительные сведения см. в разделе Пример создания REST API соединителя данных.