Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы создать соединитель данных хранилища 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 соединителя данных.