若要使用 CCF) (Codeless Connector Framework 建立 Azure 儲存體 Blob 資料連接器,請使用本參考資料,並搭配 Microsoft Sentinel REST API for Data Connectors 文章。
在這個擷取模式中,生產者會將資料寫入 Azure Blob 儲存體。 Azure 事件方格 會將 blob 建立事件傳送到 Azure 儲存體 隊列,並在那裡緩衝,直到連接器處理。 連接器接著讀取這些 blob,並將其內容透過 Azure 監視器 資料收集規則(DCR)路由到目的地資料表。 這種耐用的隊列式設計支援高容量資料來源的背壓處理與韌性擷取。
每個dataConnector節點代表 Microsoft Sentinel 資料連接器的特定連接。 一個資料連接器可能有多個連接點,從不同端點擷取資料。 使用此參考文件建立的 JSON 配置用來完成 CCF 資料連接器的部署範本。
欲了解更多資訊,請參閱「為 Microsoft Sentinel 建立無程式碼連接器」。
Build the Azure 儲存體 Blob CCF data connector
簡化連接 Azure 儲存體 Blob 資料來源與範例 Storage Blob CCF 資料連接器部署範本的開發過程。 更多資訊請參閱 Connector StorageBlob 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 | 資源群組名稱,不區分大小寫。 |
| 訂閱ID | 目標訂閱的 ID。 |
| 工作區名稱 | 工作區 名稱 ,不是 ID。 正則表達式模式: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$ |
| API 版本 | 用於此操作的 API 版本。 |
要求內文
CCF 資料連接器的請求體 StorageAccountBlobContainer 結構如下:
{
"name": "{{dataConnectorId}}",
"kind": "StorageAccountBlobContainer",
"etag": "",
"properties": {
"connectorDefinitionName": "",
"auth": {},
"request": {},
"dcrConfig": {},
"response": {}
}
}
StorageAccountBlobContainer
StorageAccountBlobContainer 代表一個 CCF 資料連接器,裡面已經設定好 Azure 儲存體 Blob 資料來源的預期回應有效載荷。 設定你的生產者要把資料傳送到 Storage Blob 必須另外完成。
| 名稱 | 必要項目 | 類型 | 描述 |
|---|---|---|---|
| name | 對 | 字串 | 唯一與 URI 參數相符的連線名稱 |
| 種類 | 對 | 字串 | 必須是 StorageAccountBlobContainer |
| ETAG | GUID | 留空以建立新的連接器。 在更新操作中,etag 必須與現有連接器的 etag (GUID) 相符。 | |
| 屬性。connectorDefinitionName | 字串 | 定義資料連接器 UI 配置的 DataConnectorDefinition 資源名稱。 更多資訊請參閱 資料連接器定義。 | |
| 屬性。認證 | 對 | 巢狀 JSON | 描述 Azure 儲存體 Blob 資料匯入的憑證。 欲了解更多資訊,請參閱 認證設定。 |
| 屬性。請求 | 對 | 巢狀 JSON | 描述 Azure 儲存佇列接收範圍內 blob 產生事件的事件。 欲了解更多資訊,請參閱 請求設定。 |
| 屬性。dcrConfig | 巢狀 JSON | 資料傳送至資料收集規則 (DCR) 時所需的參數。 欲了解更多資訊,請參閱 DCR 配置。 | |
| 性質。回應 | 對 | 巢狀 JSON | 描述回應物件及從 API 拉取資料時回傳的巢狀訊息。 欲了解更多資訊,請參閱 響應配置。 |
認證設定
Azure 儲存體 Blob 連接器依賴於租戶中建立的服務主體,該服務主體與Microsoft管理的多租戶應用程式 (服務主體藍圖) 相連結。 租戶管理員必須同意才能建立這個服務主體。 ARM 範本提供確認與應用程式相關的服務主體是否已存在於租戶中,若未存在,則提供在使用者同意下建立服務主體的選項。
ARM 範本範例包含操作,將所有必要的角色基礎存取應用於儲存帳號,以讀取 blob 並貢獻佇列。 請確保範本與所使用的服務主體與您的環境應用程式相關聯,且已獲得租戶管理員同意。
下表列出各 Azure 環境的應用程式 ID:
| Azure Environment | ApplicationID |
|---|---|
| AzureCloud | 4f05ce56-95b6-4612-9d98-a45c8cc33f9f |
StorageAccountBlobContainer 認證範例:
"auth": {
"type": "ServicePrincipal"
}
請求設定
請求區段描述接收 blob 產生事件訊息的 Azure 儲存佇列。
在設定此區塊前,先建立通知與死號隊列。 在儲存帳號上設定 Azure 事件方格 訂閱,將事件傳送Microsoft.Storage.BlobCreated到 QueueUri 指定的通知佇列。 欲了解更多資訊,請參閱快速入門:將 Blob 儲存事件路由至 Azure 入口網站的網頁端點。
| 欄位 | 必要項目 | 類型 | 描述 |
|---|---|---|---|
| 排隊 | 對 | 字串 | Azure 儲存佇列的 URI,接收 blob 建立的事件。 |
| 德爾奎里 | 對 | 字串 | 就是訊息失敗佇列的 URI。 |
| StorageAccountSubscriptionId | 對 | 字串 | 儲存帳號的訂閱 ID。 |
| StorageAccountResourceGroupName | 對 | 字串 | 記憶體帳戶的資源群組。 |
StorageAccountBlobContainer 請求範例:
"request": {
"QueueUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('queueName'))]",
"DlqUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('dlqName'))]",
"StorageAccountSubscriptionId": "[[parameters('StorageAccountSubscription')]",
"StorageAccountResourceGroupName": "[[parameters('StorageAccountResourceGroupName')]"
}
響應配置
請用以下參數定義你的資料連接器的回應處理方式:
| 欄位 | 必要項目 | 類型 | 描述 |
|---|---|---|---|
| EventsJsonPaths | 對 | 弦樂列表 | 在回應 JSON 中定義訊息的路徑。 JSON 路徑表達式指定 JSON 結構中元素或元素集合的路徑。 |
| IsGzip壓縮 | 布林值 | 判斷回應是否壓縮成 gzip 檔案。 | |
| format | 對 | 字串 |
json、、 csv、 xml或 parquet |
| 壓縮演算法 | 字串 | 壓縮演算法,要麼multi-gzipdeflate是 。 對於 gzip 壓縮,請將 IsGzipCompressed 設定為 , True 而不是設定這個參數的值。 |
|
| csvDelimiter | 字串 | 如果回應格式是 CSV 且你想更改預設的 CSV 分隔符。, |
|
| HasCsv邊界 | 布林值 | 顯示 CSV 資料是否有邊界。 | |
| HasCsvHeader | 布林值 | 顯示 CSV 資料是否有標頭。 預設為: True。 |
|
| CSV逃脫 | 字串 | Escape 角色用於場域邊界。 預設為: "。 例如,一個帶有標頭 id,name,avg 和包含空 1,"my name",5.5 格資料列的 CSV 需要欄位 " 邊界。 |
注意事項
CSV 格式類型由 RFC 4180 規範解析。
響應配置範例
未壓縮 JSON:
"response": {
"EventsJsonPaths": ["$"],
"format": "json"
}
壓縮 CSV:
"response": {
"EventsJsonPaths": ["$"],
"format": "csv",
"IsGzipCompressed": true
}
可以推斷 Parquet (壓縮) :
"response": {
"EventsJsonPaths": ["$"],
"format": "parquet"
}
DCR 配置
| 欄位 | 必要項目 | 類型 | 描述 |
|---|---|---|---|
| DataCollectionEndpoint | 對 | 字串 | DCE (資料收集端點) ,例如: https://example.ingest.monitor.azure.com。 |
| DataCollectionRuleImmutableId | 對 | 字串 | DCR 不可變 ID。 可透過查看 DCR 建立回應或使用 DCR API 來查詢。 |
| StreamName | 對 | 字串 | 此值即 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 範例。