你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
若要使用无代码连接器框架 (CCF) 创建Azure存储 Blob 数据连接器,除了Microsoft Sentinel用于数据连接器的 REST API 一文外,还使用此参考。
每个dataConnector都表示Microsoft Sentinel数据连接器的特定连接。 一个数据连接器可能有多个连接,这些连接从不同的终结点提取数据。 使用此参考文档生成的 JSON 配置用于完成 CCF 数据连接器的部署模板。
有关详细信息,请参阅为Microsoft Sentinel创建无代码连接器。
生成Azure存储 Blob CCF 数据连接器
使用示例存储 Blob CCF 数据连接器部署模板简化Azure存储 Blob 数据源连接的开发。 有关详细信息,请参阅 连接器存储Blob CCF 模板。
大多数部署模板部分都填写完后,只需生成前两个组件,即输出表和 DCR。 有关详细信息,请参阅 输出表定义 和 数据收集规则 (DCR) 部分。
数据连接器 - 创建或更新
请参阅 REST API 文档中的 创建或更新 操作,查找最新的稳定或预览 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 | 数据连接器 ID 必须是唯一名称,并且与请求正文中的 参数相同name。 |
| resourceGroupName | 资源组的名称,不区分大小写。 |
| subscriptionId | 目标订阅的 ID。 |
| workspaceName | 工作区 的名称 ,而不是 ID。 正则表达式模式: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$ |
| api-version | 要用于此操作的 API 版本。 |
请求正文
CCF 数据连接器的请求正文 StorageAccountBlobContainer 具有以下结构:
{
"name": "{{dataConnectorId}}",
"kind": "StorageAccountBlobContainer",
"etag": "",
"properties": {
"connectorDefinitionName": "",
"auth": {},
"request": {},
"dcrConfig": {},
"response": {}
}
}
StorageAccountBlobContainer
StorageAccountBlobContainer 表示 CCF 数据连接器,其中已配置Azure存储 Blob 数据源的预期响应有效负载。 必须将生成者配置为将数据发送到存储 Blob,必须单独完成。
| Name | 必需 | 类型 | 说明 |
|---|---|---|---|
| name | True | string | 与 URI 参数匹配的连接的唯一名称 |
| Kind | True | string | 必须是 StorageAccountBlobContainer |
| etag | GUID | 留空以创建新连接器。 对于更新操作,etag 必须与现有连接器的 etag (GUID) 匹配。 | |
| 性能。connectorDefinitionName | string | 定义数据连接器的 UI 配置的 DataConnectorDefinition 资源的名称。 有关详细信息,请参阅 数据连接器定义。 | |
| 性能。认证 | True | 嵌套 JSON | 介绍用于引入Azure存储 Blob 数据的凭据。 有关详细信息,请参阅 身份验证配置。 |
| 性能。请求 | True | 嵌套 JSON | 介绍接收作用域内 blob 创建事件的Azure存储队列。 有关详细信息,请参阅 请求配置。 |
| 性能。dcrConfig | 嵌套 JSON | 将数据发送到数据收集规则时所需的参数 (DCR) 。 有关详细信息,请参阅 DCR 配置。 | |
| 性能。响应 | True | 嵌套 JSON | 描述拉取数据时从 API 返回的响应对象和嵌套消息。 有关详细信息,请参阅 响应配置。 |
身份验证配置
Azure存储 Blob 连接器依赖于与Microsoft托管的多租户应用程序关联的租户中创建的服务主体, (服务主体蓝图) 。 租户管理员需要授予创建此服务主体的许可。 ARM 模板提供确认租户中是否已存在与应用程序关联的服务主体的功能,如果不存在,则提供一个选项,用于在用户同意的情况下创建服务主体。
ARM 模板示例包括对存储帐户应用所有必要的基于角色的访问权限以读取 Blob 和参与队列的操作。 确保使用的模板和服务主体与环境的应用程序相关联,并且已授予租户管理员同意。
下表列出了每个Azure环境的应用程序 ID:
| Azure 环境 | ApplicationId |
|---|---|
| AzureCloud | 4f05ce56-95b6-4612-9d98-a45c8cc33f9f |
StorageAccountBlobContainer 身份验证示例:
"auth": {
"type": "ServicePrincipal"
}
请求配置
请求部分介绍接收 blob 创建的事件消息Azure存储队列。
| 字段 | 必需 | 类型 | 说明 |
|---|---|---|---|
| QueueUri | True | String | 接收 blob 创建事件的Azure存储队列的 URI。 |
| 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 | 字段边界的转义字符。 默认为: "。 例如,具有标头 id,name,avg 的 CSV 和包含类似 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 不可变 ID。 通过查看 DCR 创建响应或使用 DCR API 找到它。 |
| StreamName | True | string | 此值是在 streamDeclaration DCR 中定义的 , (前缀必须以 Custom-) 开头。 |
CCF 数据连接器示例
下面是 CCF 数据连接器 JSON 的所有组件 StorageAccountBlobContainer 的示例。
{
"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 示例。