次の方法で共有


コードレス コネクタ フレームワークの Azure Storage BLOB データ コネクタ リファレンス

コードレス コネクタ フレームワーク (CCF) を使用して Azure Storage BLOB データ コネクタを作成するには、 Microsoft Sentinel REST API for Data Connectors に関する記事に加えて、このリファレンスを使用します。

dataConnector は、Microsoft Sentinel データ コネクタの特定の connection を表します。 1 つのデータ コネクタに複数の接続があり、異なるエンドポイントからデータをフェッチする場合があります。 この参照ドキュメントを使用して構築された JSON 構成は、CCF データ コネクタのデプロイ テンプレートを完成させるために使用されます。

詳細については、「 Microsoft Sentinel 用のコードレス コネクタを作成する」を参照してください。

Azure Storage BLOB CCF データ コネクタを構築する

サンプルの Storage Blob CCF データ コネクタ デプロイ テンプレートを使用して、Azure Storage BLOB データ ソースを接続する開発を簡略化します。 詳細については、「 コネクタ StorageBlob CCF テンプレート」を参照してください。

ほとんどのデプロイ テンプレート セクションを入力したら、最初の 2 つのコンポーネント (出力テーブルと DCR) をビルドするだけで済みます。 詳細については、「 出力テーブルの定義 」および「 データ収集規則 (DCR)」 セクションを参照してください。

データ コネクタ - 作成または更新

REST API ドキュメントの Create または Update 操作を参照して、最新の安定した API バージョンまたはプレビュー API バージョンを見つけます。 createupdate操作の違いは、更新に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 バージョンの詳細については、「 Data コネクタ - URI パラメーターの作成または更新」を参照してください。

名前 説明
dataConnectorId データ コネクタ ID は一意の名前である必要があり、要求本文のname パラメーターと同じです
resourceGroupName リソース グループの名前。大文字と小文字は区別されません。
subscriptionId ターゲット サブスクリプションの ID。
workspaceName ID ではなく、ワークスペースの
正規表現パターン: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
api-version この操作に使用する API バージョン。

リクエスト本文

StorageAccountBlobContainer CCF データ コネクタの要求本文には、次の構造があります。

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

StorageAccountBlobContainer

StorageAccountBlobContainer は、Azure Storage BLOB データ ソースに予想される応答ペイロードが既に構成されている CCF データ コネクタを表します。 ストレージ BLOB にデータを送信するようにプロデューサーを構成するには、個別に行う必要があります。

名前 必須 タイプ 説明
name 正しい 文字列 URI パラメーターに一致する接続の一意の名前
親切 正しい 文字列 StorageAccountBlobContainer にする必要があります。
etag GUID 新しいコネクタを作成する場合は空のままにします。 更新操作の場合、etag は既存のコネクタの etag (GUID) と一致する必要があります。
プロパティ。connectorDefinitionName 文字列 データ コネクタの UI 構成を定義する DataConnectorDefinition リソースの名前。 詳細については、「 Data コネクタ定義」を参照してください。
properties.認証 正しい 入れ子の JSON Azure Storage BLOB データを取り込むための資格情報について説明します。 詳細については、 認証の構成を参照してください。
properties.依頼 正しい 入れ子の JSON スコープ内 BLOB で作成されたイベントを受信する Azure Storage キューについて説明します。 詳細については、「要求の構成」をご覧ください。
プロパティ。dcrConfig 入れ子の JSON データがデータ収集規則 (DCR) に送信されるときに必要なパラメーター。 詳細については、 DCR 構成を参照してください。
properties.応答 正しい 入れ子の JSON データをプルするときに API から返される応答オブジェクトと入れ子になったメッセージについて説明します。 詳細については、「応答の構成」をご覧ください。

認証の構成

Azure Storage BLOB コネクタは、Microsoft が管理するマルチテナント アプリケーション (サービス プリンシパル ブループリント) に関連付けられているテナントで作成されたサービス プリンシパルに依存します。 テナント管理者は、このサービス プリンシパルを作成するための同意を付与する必要があります。 ARM テンプレートは、アプリケーションに関連付けられているサービス プリンシパルが既にテナントに存在するかどうかを確認する機能を提供し、存在しない場合は、ユーザーの同意を得てサービス プリンシパルを作成するオプションを提供します。

ARM テンプレートの例には、ストレージ アカウントに必要なすべてのロールベースのアクセスを適用して BLOB を読み取り、キューに投稿する操作が含まれています。 使用するテンプレートとサービス プリンシパルが環境のアプリケーションに関連付けられていることを確認し、テナント管理者の同意が付与されていることを確認します。

次の表に、Azure 環境ごとのアプリケーション ID を示します。

Azure 環境 ApplicationId
AzureCloud 4f05ce56-95b6-4612-9d98-a45c8cc33f9f

StorageAccountBlobContainer 認証の例:

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

要求の構成

要求セクションでは、BLOB で作成されたイベント メッセージを受信する Azure Storage キューについて説明します。

フィールド 必須 タイプ 説明
QueueUri 正しい BLOB で作成されたイベントを受信する Azure Storage キューの URI。
DlqUri 正しい 失敗したメッセージの配信不能キューの 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 正しい 文字列の一覧 応答の JSON 内のメッセージへのパスを定義します。 JSON パス式は、JSON 構造体内の要素または要素のセットへのパスを指定します。
IsGzipCompressed ブール値 応答が gzip ファイルで圧縮されているかどうかを判断します。
形式 正しい jsoncsvxml、または parquet
CompressionAlgo multi-gzipまたはdeflateのいずれかの圧縮アルゴリズム。 gzip 圧縮の場合は、このパラメーターの値を設定するのではなく、Trueするように IsGzipCompressed を構成します。
CsvDelimiter 応答形式が CSV で、 ,の既定の CSV 区切り記号を変更する場合。
HasCsvBoundary ブール値 CSV データに境界があるかどうかを示します。
HasCsvHeader ブール値 CSV データにヘッダーがあるかどうかを示します。 既定値: True
CsvEscape フィールド境界のエスケープ文字。 既定値: "。 たとえば、ヘッダーが 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 正しい DCE (データ収集エンドポイント) (例: https://example.ingest.monitor.azure.com
DataCollectionRuleImmutableId 正しい DCR の変更できない ID。 これを見つけるには、DCR 作成応答を表示するか、 DCR API を使用します。
StreamName 正しい 文字列 この値は、DCR で定義されている streamDeclaration です (プレフィックスは Custom-で始まる必要があります)。

CCF データ コネクタの例

StorageAccountBlobContainer CCF データ コネクタ JSON のすべてのコンポーネントの例を次に示します。

{
    "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 の作成の例を参照してください。