重要
多くのアプライアンスおよびデバイスからのログ収集が、AMA 経由の Common Event Format (CEF)、AMA 経由の Syslog、または Microsoft Sentinel の AMA データ コネクタ経由のカスタム ログでサポートされるようになりました。 詳細については、「Microsoft Sentinel データ コネクタを見つける」を参照してください。
重要
新しいバージョンのコードレス コネクタ プラットフォーム (CCP) があります。 新しい CCP の詳細については、「コードレス コネクタの作成 (プレビュー)」を参照してください。
この古いバージョンの CCP に基づいてデータ コネクタを保守または更新する必要がある場合は、このドキュメントを参照してください。
CCP は、パートナー、上級ユーザー、および開発者に、カスタム コネクタを作成し、接続し、Microsoft Sentinel にデータを取り込む機能を提供します。 CCP を介して作成されたコネクタは、API、ARM テンプレート、または Microsoft Sentinel コンテンツ ハブのソリューションとしてデプロイできます。
CCP を使用して作成されたコネクタは完全に SaaS であり、サービスのインストールの要件はありません。また、 正常性の監視 と Microsoft Sentinel からの完全なサポートも含まれます。
データ コネクタを作成するには、JSON 構成を定義し、Microsoft Sentinel のデータ コネクタ ページの外観と、接続の機能を定義するポーリング設定を設定します。
重要
このバージョンのコードレス コネクタ プラットフォーム (CCP) はプレビュー段階ですが、レガシとも見な されます。 Azure プレビューの追加使用条件には、ベータ版、プレビュー版、またはまだ一般提供されていない Azure 機能に適用される追加の法律条項が含まれています。
CCP コネクタを作成し、Microsoft Sentinel からデータ ソースに接続するには、次の手順に従います。
- コネクタのユーザー インターフェイスを構成する
- コネクタのポーリング設定を構成する
- コネクタを Microsoft Sentinel ワークスペースにデプロイする
- Microsoft Sentinel をデータ ソースに接続し、データの取り込みを開始する
この記事では、CCP JSON の構成で使用される構文と、API、ARM テンプレート、または Microsoft Sentinel ソリューションを使用してコネクタをデプロイする手順について説明します。
[前提条件]
コネクタを構築する前に、データ ソースの動作と、Microsoft Sentinel の接続方法を正確に理解することをお勧めします。
たとえば、接続を成功させるために必要な認証、改ページ、API エンドポイントの種類を把握する必要があります。
コネクタ JSON 構成ファイルを作成する
カスタム CCP コネクタには、デプロイに必要な 2 つの主要な JSON セクションがあります。 これらの領域を入力して、Azure portal でのコネクタの表示方法と、コネクタが Microsoft Sentinel をデータ ソースに接続する方法を定義します。
connectorUiConfig
。 Microsoft Sentinel のデータ コネクタ ページに表示されるビジュアル要素とテキストを定義します。 詳細については、「 コネクタのユーザー インターフェイスを構成する」を参照してください。pollingConfig
。 Microsoft Sentinel がデータ ソースからデータを収集する方法を定義します。 詳細については、「 コネクタのポーリング設定を構成する」を参照してください。
次に、ARM 経由でコードレス コネクタをデプロイする場合は、データ コネクタ用の ARM テンプレートでこれらのセクションをラップします。
他の CCP データ コネクタを例として確認するか、サンプル テンプレート DataConnector_API_CCP_template.json (プレビュー) をダウンロードします。
コネクタのユーザー インターフェイスを構成する
このセクションでは、データ コネクタ ページのユーザー インターフェイスをカスタマイズするために使用できる構成オプションについて説明します。
次の図は、ユーザー インターフェイスの注目すべき領域に対応する数値で強調表示されたサンプル データ コネクタ ページを示しています。
- タイトル。 データ コネクタ用に表示されるタイトル。
- ロゴ。 データ コネクタ用に表示されるアイコン。 これをカスタマイズできるのは、ソリューションの一部としてデプロイする場合のみです。
- 状態。 データ コネクタが Microsoft Sentinel に接続されているかどうかを示します。
- データ グラフ。 関連するクエリと、過去 2 週間の取り込まれたデータの量を表示します。
- [手順] タブ。ユーザーがコネクタを有効にする前に最小限の検証の一覧を含む [前提条件] セクションと、コネクタのユーザー有効化をガイドする 手順が含まれています。 このセクションには、テキスト、ボタン、フォーム、テーブル、およびその他の一般的なウィジェットを含め、プロセスを簡略化できます。
- [次のステップ] タブ。サンプル クエリなど、イベント ログ内のデータを検索する方法を理解するのに役立つ情報が含まれています。
ユーザー インターフェイスを構成するために必要な connectorUiConfig
セクションと構文を次に示します。
プロパティ名 | タイプ | 説明 |
---|---|---|
可用性 | { "status": 1, "isPreview": ブーリアン} |
status: 1 コネクタが一般提供されていることを示します。 isPreview コネクタ名にサフィックス (プレビュー) を含めるかどうかを示します。 |
接続基準 | { "type": SentinelKindsV2, "value": APIPolling } |
コネクタが正しく定義されているかどうかを確認する方法を定義するオブジェクト。 ここに示されている値を使用します。 |
dataTypes | dataTypes[] | コネクタのすべてのデータ型の一覧と、各データ型の最後のイベントの時刻をフェッチするクエリ。 |
descriptionMarkdown | 糸 | マークダウン言語を追加して強化する機能を備えたコネクタの説明。 |
graphQueries | graphQueries[] | 過去2週間のデータインジェストを示すクエリは、データチャートペインに表示されます。 データ コネクタのすべてのデータ型に対して 1 つのクエリを指定するか、データ型ごとに異なるクエリを指定します。 |
graphQueriesTableName | 糸 | クエリのデータの取得元となる Log Analytics テーブルの名前を定義します。 テーブル名には任意の文字列を指定できますが、末尾は _CL にする必要があります。 例: TableName_CL |
instructionsSteps | instructionSteps[] | [ 手順 ] タブに表示される、コネクタのインストール方法を説明するウィジェット パーツの配列。 |
metadata | metadata | コネクタの説明の下に表示されるメタデータ。 |
アクセス許可 | permissions[] | UI の [前提条件 ] セクションに表示される情報。コネクタを有効または無効にするために必要なアクセス許可が一覧表示されます。 |
発行者 | 糸 | これは、[ プロバイダー ] セクションに表示されるテキストです。 |
sampleQueries | sampleQueries[] | [ 次のステップ ] タブに表示される、イベント ログ内のデータを検索する方法を理解するための顧客向けのサンプル クエリ。 |
タイトル | 糸 | データ コネクタ ページに表示されるタイトル。 |
これらすべての要素をまとめる作業は複雑です。 コネクタ ページのユーザー エクスペリエンス検証ツールを使用して、まとめたコンポーネントをテストします。
データ型
配列値 | タイプ | 説明 |
---|---|---|
名前 | 糸 | 変数のサポートを含む、lastDataReceivedQuery のわかりやすい説明。 例: {{graphQueriesTableName}} |
最後のデータ受信クエリ | 糸 | 1 つの行を返し、最後にデータを受信したことを示す KQL クエリ。関連するデータがない場合はデータがありません。 例: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time) |
graphQueries
データチャートペインで過去2週間のデータ取り込みを示すクエリを定義します。
データ コネクタのすべてのデータ型に対して 1 つのクエリを指定するか、データ型ごとに異なるクエリを指定します。
配列値 | タイプ | 説明 |
---|---|---|
metricName | 糸 | グラフのわかりやすい名前。 例: Total data received |
伝説 | 糸 | グラフの右側にある凡例に表示される文字列で、変数参照を含むものです。 例: {{graphQueriesTableName}} |
baseQuery | 糸 | 変数参照など、関連するイベントをフィルター処理するクエリ。 例: TableName_CL | where ProviderName == "myprovider" または {{graphQueriesTableName}} |
instructionSteps
このセクションでは、Microsoft Sentinel のデータ コネクタ ページに表示される一連の手順を定義するパラメーターを示します。
アレイ プロパティ | タイプ | 説明 |
---|---|---|
タイトル | 糸 | 省略可。 手順のタイトルを定義します。 |
説明 | 糸 | 省略可。 手順のわかりやすい説明を定義します。 |
innerSteps | 配列 | 省略可。 内部命令ステップの配列を定義します。 |
指示 | 命令の配列 | 必須。 特定のパラメーター型の命令の配列を定義します。 |
bottomBorder | ボーリアン | 省略可。
true を実行すると、Microsoft Sentinel のコネクタ ページの指示セクションに下罫線を追加します。 |
近日公開予定 | ボーリアン | 省略可。
true したら、Microsoft Sentinel のコネクタ ページに近日公開予定のタイトルを追加します |
指示
さまざまなオプションをパラメーターとして使用し、複数の instructionSteps をグループに入れ子にする機能を含む命令のグループを表示します。
パラメーター | 配列プロパティ | 説明 |
---|---|---|
APIKey | APIKey | コネクタの JSON 構成ファイルにプレースホルダーを追加します。 |
コピー可能なラベル | コピー可能ラベル | 末尾にコピー ボタンがあるテキスト フィールドが表示されます。 ボタンを選択すると、フィールドの値がコピーされます。 |
情報メッセージ | 情報メッセージ | インライン情報メッセージを定義します。 |
InstructionStepsGroup | InstructionStepsGroup | 別の手順セクションに、必要に応じて展開または折りたたみ可能な命令のグループを表示します。 |
InstallAgent | InstallAgent | さまざまなインストール要件を満たす Azure の他の部分へのリンクを表示します。 |
APIKey
プレースホルダー パラメーターを含む JSON 構成ファイル テンプレートを作成して、複数のコネクタ間で再利用したり、現在ないデータを含むコネクタを作成したりできます。
プレースホルダー パラメーターを作成するには、次の構文を使用して、CCP JSON 構成ファイルの Instructions セクションで userRequestPlaceHoldersInput
という名前の追加の配列を定義します。
"instructions": [
{
"parameters": {
"enable": "true",
"userRequestPlaceHoldersInput": [
{
"displayText": "Organization Name",
"requestObjectKey": "apiEndpoint",
"placeHolderName": "{{placeHolder}}"
}
]
},
"type": "APIKey"
}
]
userRequestPlaceHoldersInput
パラメーターには、次の属性が含まれています。
名前 | タイプ | 説明 |
---|---|---|
DisplayText | 糸 | 接続時にユーザーに表示されるテキスト ボックスの表示値を定義します。 |
RequestObjectKey | 糸 | プレースホルダーの値をユーザー指定の値に置き換えるために、 pollingConfig の要求セクションの ID を定義します。 この属性を使用しない場合は、代わりに PollingKeyPaths 属性を使用します。 |
PollingKeyPaths | 糸 | プレースホルダー値をユーザー値に置き換えるために、テンプレート内の任意の場所に API 呼び出しを指示する JsonPath オブジェクトの配列を定義します。 例: "pollingKeyPaths":["$.request.queryParameters.test1"] この属性を使用しない場合は、代わりに RequestObjectKey 属性を使用します。 |
PlaceHolderName | 糸 | JSON テンプレート ファイル内のプレースホルダー パラメーターの名前を定義します。
{{placeHolder}} など、任意の一意の値を指定できます。 |
コピー可能なラベル
例:
サンプル コード:
{
"parameters": {
"fillWith": [
"WorkspaceId",
"PrimaryKey"
],
"label": "Here are some values you'll need to proceed.",
"value": "Workspace is {0} and PrimaryKey is {1}"
},
"type": "CopyableLabel"
}
配列値 | タイプ | 説明 |
---|---|---|
fillWith | ENUM | 省略可。 プレースホルダーを設定するために使用される環境変数の配列。 複数のプレースホルダーをコンマで区切ります。 例: {0},{1} サポートされる値: workspaceId 、 workspaceName 、 primaryKey 、 MicrosoftAwsAccount 、 subscriptionId |
label | 糸 | テキスト ボックスの上にあるラベルのテキストを定義します。 |
の値 | 糸 | テキスト ボックスに表示する値を定義し、プレースホルダーをサポートします。 |
行 | 行 | 省略可。 ユーザー インターフェイス領域の行を定義します。 既定では、1 に設定 します。 |
wideLabel | ボーリアン | 省略可。 長い文字列のワイド ラベルを決定します。 既定では、 false に設定します。 |
InfoMessage
インライン情報メッセージの例を次に示します。
これに対し、次の図はインライン 以外の情報メッセージを示しています。
配列値 | タイプ | 説明 |
---|---|---|
テキスト | 糸 | メッセージに表示するテキストを定義します。 |
visible | ボーリアン | メッセージを表示するかどうかを決定します。 |
inline | ボーリアン | 情報メッセージの表示方法を決定します。 - true : (推奨) 指示に埋め込まれた情報メッセージを表示します。 - false :青い背景を追加します。 |
InstructionStepsGroup
展開可能な命令グループの例を次に示します。
配列値 | タイプ | 説明 |
---|---|---|
タイトル | 糸 | 命令ステップのタイトルを定義します。 |
canCollapseAllSections | ボーリアン | 省略可。 セクションが折りたたみ可能なアコーディオンかどうかを判断します。 |
noFxPadding | ボーリアン | 省略可。 もしtrue による場合、高さのパディングを減らしてスペースを節約します。 |
拡大 | ボーリアン | 省略可。
true 場合は、既定で展開済みとして表示されます。 |
詳細な例については、 Windows DNS コネクタの構成 JSON を参照してください。
インストールエージェント
一部の InstallAgent の種類はボタンとして表示され、他の種類はリンクとして表示されます。 両方の例を次に示します。
配列値 | タイプ | 説明 |
---|---|---|
リンクタイプ | ENUM | 次のいずれかの値として、リンクの種類を決定します。 InstallAgentOnWindowsVirtualMachine InstallAgentOnWindowsNonAzure InstallAgentOnLinuxVirtualMachine InstallAgentOnLinuxNonAzure OpenSyslogSettings OpenCustomLogsSettings OpenWaf OpenAzureFirewall
OpenMicrosoftAzureMonitoring
OpenFrontDoors OpenCdnProfile AutomaticDeploymentCEF OpenAzureInformationProtection OpenAzureActivityLog OpenIotPricingModel OpenPolicyAssignment OpenAllAssignmentsBlade OpenCreateDataCollectionRule |
policyDefinitionGuid | 糸 | OpenPolicyAssignment linkType を使用する場合は必須です。 ポリシー ベースのコネクタの場合は、組み込みのポリシー定義の GUID を定義します。 |
assignMode | ENUM | 省略可。 ポリシー ベースのコネクタの場合は、割り当てモードを次のいずれかの値として定義します: Initiative 、 Policy |
データ収集ルールタイプ | ENUM | 省略可。 DCR ベースのコネクタの場合、データ収集規則の種類を次のいずれかとして定義します。 SecurityEvent 、 ForwardEvent |
メタデータ
このセクションでは、データ コネクタ UI の [説明] 領域の下にメタデータを提供します。
コレクションの価値 | タイプ | 説明 |
---|---|---|
kind | 糸 | 作成する ARM テンプレートの種類を定義します。 常に dataConnector を使用します。 |
ソース | 糸 | 次の構文を使用して、データ ソースについて説明します。 { "kind": 文字列"name": 文字列} |
作成者 | 糸 | 次の構文を使用して、データ コネクタの作成者について説明します。 { "name": ストリング} |
サポート | 糸 | 次の構文を使用して、データ コネクタに提供されるサポートについて説明します。 { "tier": 文字列"name": 糸"email": 文字列"link": URL 文字列} |
権限
配列値 | タイプ | 説明 |
---|---|---|
関税 | 糸 | 次の構文で、データ接続に必要なカスタム アクセス許可について説明します。 { 文字列 "name": , "description": 文字列} 例: 通関 値は、青い情報アイコンと共に Microsoft Sentinel の [前提条件] セクションに表示されます。 GitHub の例では、これは行 GitHub API の個人用トークン キーに関連付けられます。GitHub 個人用トークンにアクセスする必要があります。... |
licenses | ENUM | 必要なライセンスを、 OfficeIRM 、OfficeATP 、 Office365 、 AadP1P2 、 Mcas 、 Aatp 、 Mdatp 、 Mtp のいずれかの値として定義します。 IoT 例: ライセンスの値は、Microsoft Sentinel に [License: Required Azure AD Premium P2]\(ライセンス: 必須 Azure AD Premium P2\) として表示されます |
resourceProvider | resourceProvider | Azure リソースの前提条件について説明します。 例: resourceProvider の値は、Microsoft Sentinel の [前提条件] セクションに次のように表示されます。 ワークスペース: 読み取りおよび書き込みアクセス許可が必要です。 キー: ワークスペースの共有キーに対する読み取りアクセス許可が必要です。 |
Tenant | ENUM 値の配列 例: "tenant": [ "GlobalADmin", "SecurityAdmin" ] |
必要なアクセス許可を、1 つ以上の値として定義します: "GlobalAdmin" 、 "SecurityAdmin" 、 "SecurityReader" 、 "InformationProtection" 例: Microsoft Sentinelでテナントの値を表示するには: テナントのアクセス許可: ワークスペースのテナントに対する Global Administrator またはSecurity Administrator が必要です。 |
リソースプロバイダー
sub 配列値 | タイプ | 説明 |
---|---|---|
供給者 | ENUM | 次のいずれかの値を使用して、リソース プロバイダーについて説明します。 - Microsoft.OperationalInsights/workspaces - Microsoft.OperationalInsights/solutions - Microsoft.OperationalInsights/workspaces/datasources - microsoft.aadiam/diagnosticSettings - Microsoft.OperationalInsights/workspaces/sharedKeys - Microsoft.Authorization/policyAssignments |
providerDisplayName | 糸 | コネクタ ページで requiredPermissions が検証されたときに赤い "x" または緑色のチェックマークが表示される [前提条件] の下のリスト アイテム。 例 "Workspace" |
権限表示テキスト | 糸 | requiredPermissions で構成された値に対応する読み取り、書き込み、または読み取りと書き込みのアクセス許可用のテキスト表示 |
requiredPermissions | { "action": ブーリアン, "delete": ブーリアン, "read": ブーリアン, "write": ブーリアン} |
コネクタに必要な最小限のアクセス許可について説明します。 |
スコープ | ENUM | データ コネクタのスコープを、 "Subscription" 、 "ResourceGroup" 、次のいずれかの値として記述します。 "Workspace" |
サンプルクエリ
配列値 | タイプ | 説明 |
---|---|---|
説明 | 糸 | サンプル クエリのわかりやすい説明。 例: Top 10 vulnerabilities detected |
クエリ | 糸 | データ型のデータを取得するために使用されるサンプルクエリ。 例: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10 |
その他のリンク オプションを構成する
markdown を使用してインライン リンクを定義するには、次の例を使用します。 手順の説明には、次のリンクが記載されています。
{
"title": "",
"description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)"
}
リンクを ARM テンプレートとして定義するには、ガイドとして次の例を使用します。
{
"title": "Azure Resource Manager (ARM) template",
"description": "1. Click the **Deploy to Azure** button below.\n\n\t[]({URL to custom ARM template})"
}
データ コネクタ ページのユーザー エクスペリエンスを検証する
コネクタのユーザー エクスペリエンスをレンダリングして検証するには、次の手順に従います。
- テスト ユーティリティには、この URL からアクセスできます。 https://aka.ms/sentineldataconnectorvalidateurl
- Microsoft Sentinel -> データ コネクタに移動する
- [インポート] ボタンをクリックし、データ コネクタの
connectorUiConfig
セクションのみを含む json ファイルを選択します。
この検証ツールの詳細については、GitHub ビルド ガイドのコネクタのビルド 手順を参照してください。
注
APIKey 命令パラメーターはコードレス コネクタに固有であるため、このセクションを一時的に削除して検証ツールを使用するか、失敗します。
コネクタのポーリング設定を構成する
このセクションでは、コードレス データ コネクタのデータ ソースからデータをポーリングする方法の構成について説明します。
次のコードは、CCP 構成ファイルの pollingConfig
セクションの構文を示しています。
"pollingConfig": {
"auth": {
},
"request": {
},
"response": {
},
"paging": {
}
}
pollingConfig
セクションには、次のプロパティが含まれています。
名前 | タイプ | 説明 |
---|---|---|
認証 | 糸 | データをポーリングするための認証プロパティについて説明します。 詳細については、 認証構成を参照してください。 |
auth.authType | 糸 | 必須。
auth オブジェクト内に入れ子になった認証の種類を、次のいずれかの値として定義します:Basic 、APIKey 、OAuth2 |
要求 | 入れ子の JSON | 必須。 API エンドポイントなど、データをポーリングするための要求ペイロードについて説明します。 詳細については、「要求の構成」をご覧ください。 |
response | 入れ子の JSON | 必須。 データのポーリング時に API から返される応答オブジェクトと入れ子になったメッセージについて説明します。 詳細については、「応答の構成」をご覧ください。 |
ページング | 入れ子の JSON | 省略可。 データをポーリングする際のページネーションペイロードについて説明します。 詳細については、「ページングの構成」をご覧ください。 |
詳細については、「 pollingConfig コードのサンプル」を参照してください。
認証の構成
pollingConfig 構成の auth
セクションには、authType 要素で定義されている型に応じて、次のパラメーターが含まれています。
基本的な authType パラメーター
名前 | タイプ | 説明 |
---|---|---|
ユーザー名 | 糸 | 必須。 ユーザー名を定義します。 |
パスワード | 糸 | 必須。 ユーザー パスワードを定義します。 |
APIKey authType パラメーター
名前 | タイプ | 説明 |
---|---|---|
APIKeyName | 糸 | 省略可。 API キーの名前を、次のいずれかの値として定義します。 - XAuthToken - Authorization |
IsAPIKeyInPostPayload | ボーリアン | API キーが定義されている場所を決定します。 True: API キーは POST 要求ペイロードで定義されています False: API キーがヘッダーで定義されている |
APIKeyIdentifier | 糸 | 省略可。 API キーの識別子の名前を定義します。 たとえば、承認が "Authorization": "token <secret>" として定義されている場合、このパラメーターは次のように定義されます。 {APIKeyIdentifier: “token”}) |
OAuth2 authType パラメーター
コードレス コネクタ プラットフォームでは、OAuth 2.0 承認コード付与がサポートされています。
認証コード付与の種類は、認証コードをアクセストークンと交換するために、機密クライアントおよびパブリッククライアントによって使用されます。
ユーザーがリダイレクト URL 経由でクライアントに戻った後、アプリケーションは URL から認証コードを取得し、それを使用してアクセス トークンを要求します。
名前 | タイプ | 説明 |
---|---|---|
FlowName | 糸 | 必須。 OAuth2 フローを定義します。 サポートされる値: AuthCode - 承認フローが必要です |
AccessToken | 糸 | 省略可。 アクセス トークンの有効期限が切れないときに関連する OAuth2 アクセス トークンを定義します。 |
AccessTokenPrepend | 糸 | 省略可。 OAuth2 アクセス トークンの先頭を定義します。 既定値は Bearer です。 |
RefreshToken | 糸 | OAuth2 認証の種類には必須です。 OAuth2リフレッシュトークンの定義。 |
TokenEndpoint | 糸 | OAuth2 認証の種類には必須です。 OAuth2 トークン サービス エンドポイントを定義します。 |
認証エンドポイント (AuthorizationEndpoint) | 糸 | 省略可。 OAuth2 承認サービス エンドポイントを定義します。 オンボード中または更新トークンの更新時にのみ使用されます。 |
リダイレクトエンドポイント | 糸 | 省略可。 オンボード中にリダイレクト エンドポイントを定義します。 |
AccessTokenExpirationDateTimeInUtc(アクセストークン有効期限の日付と時刻(UTC)) | 糸 | 省略可。 アクセス トークンの有効期限の日時を UTC 形式で定義します。 アクセス トークンの有効期限が切れないので、UTC の日時が大きい場合、またはアクセス トークンの有効期限が長い日時に関連します。 |
RefreshTokenExpirationDateTimeInUtc | 糸 | OAuth2 認証の種類には必須です。 更新トークンの有効期限の日時を UTC 形式で定義します。 |
TokenEndpointHeaders | Dictionary<string, object> | 省略可。 OAuth2 トークン サービス エンドポイントを呼び出すときのヘッダーを定義します。 シリアル化された dictionary<string, string> 形式で文字列を定義します。 {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
AuthorizationEndpointHeaders | Dictionary<string, object> | 省略可。 OAuth2 承認サービス エンドポイントを呼び出すときのヘッダーを定義します。 オンボード中または更新トークンの更新時にのみ使用されます。 シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
AuthorizationEndpointQueryParameters | ディクショナリ<ストリング, オブジェクト> | 省略可。 OAuth2 承認サービス エンドポイントを呼び出すときのクエリ パラメーターを定義します。 オンボード中または更新トークンの更新時にのみ使用されます。 シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
TokenEndpointQueryParameters | Dictionary<string, object>(辞書<文字列, オブジェクト>) | 省略可。 OAuth2 トークン サービス エンドポイントを呼び出すときのクエリ パラメーターを定義します。 シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
IsTokenEndpointPostPayloadJson | ボーリアン | 省略可能。既定値は false です。 クエリ パラメーターが JSON 形式であるかどうかを判断し、要求 POST ペイロードで設定します。 |
IsClientSecretInHeader (クライアントシークレットがヘッダーにあるか) | ボーリアン | 省略可能。既定値は false です。 POST ペイロードではなく、基本認証スキーマで行われるように、 client_id 値と client_secret 値がヘッダーで定義されているかどうかを判断します。 |
RefreshTokenLifetimeinSecAttributeName | 糸 | 省略可。 更新トークンの有効期間を秒単位で指定して、トークン エンドポイント応答の属性名を定義します。 |
IsJwtBearerFlow | ボーリアン | 省略可能。既定値は false です。 JWT を使用しているかどうかを判断します。 |
JwtHeaderInJson | Dictionary<string, object> | 省略可。 JSON 形式で JWT ヘッダーを定義します。 シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...} |
JSON形式のJWTクレーム | Dictionary<string(文字列), object(オブジェクト)> | 省略可。 JSON 形式で JWT 要求を定義します。 シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ...} |
JwtPem | 糸 | 省略可。 PEM Pkcs1 形式で秘密鍵を定義します。 '-----BEGIN RSA PRIVATE KEY-----\r\n{privatekey}\r\n-----END RSA PRIVATE KEY-----\r\n' '\r\n' コードは必ず所定の位置に置いておく必要があります。 |
RequestTimeoutInSeconds | 整数 | 省略可。 トークン サービス エンドポイントを呼び出すときのタイムアウトを秒単位で決定します。 既定値は 180 秒です |
OAuth2 構成の例を次に示します。
"pollingConfig": {
"auth": {
"authType": "OAuth2",
"authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent",
"redirectionEndpoint": "https://portal.azure.com/TokenAuthorize",
"tokenEndpoint": "https://oauth2.googleapis.com/token",
"authorizationEndpointQueryParameters": {},
"tokenEndpointHeaders": {
"Accept": "application/json"
},
"TokenEndpointQueryParameters": {},
"isClientSecretInHeader": false,
"scope": "https://www.googleapis.com/auth/admin.reports.audit.readonly",
"grantType": "authorization_code",
"contentType": "application/x-www-form-urlencoded",
"FlowName": "AuthCode"
},
セッション authType パラメーター
名前 | タイプ | 説明 |
---|---|---|
QueryParameters | Dictionary<string, object> | 省略可。 シリアル化された dictionary<string, string> 形式のクエリ パラメーターの一覧。 {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
IsPostPayloadJson | ボーリアン | 省略可。 クエリ パラメーターが JSON 形式であるかどうかを判断します。 |
ヘッダー | 辞書型<文字列, オブジェクト> | 省略可。 エンドポイントを呼び出してセッション ID を取得するときに、およびエンドポイント API を呼び出すときに使用されるヘッダーを定義します。 シリアル化された dictionary<string, string> 形式で文字列を定義します。 {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
SessionTimeoutInMinutes | 糸 | 省略可。 セッション タイムアウトを分単位で定義します。 |
SessionIdName | 糸 | 省略可。 セッションの ID 名を定義します。 |
SessionLoginRequestUri | 糸 | 省略可。 セッション ログイン要求 URI を定義します。 |
要求の構成
pollingConfig 構成の request
セクションには、次のパラメーターが含まれています。
名前 | タイプ | 説明 |
---|---|---|
apiEndpoint | 糸 | 必須。 データのプル元のエンドポイントを定義します。 |
httpMethod | 糸 | 必須。 API メソッドを定義します。 GET または POST |
queryTimeFormat | String、 UnixTimestamp 、 UnixTimestampInMills | 必須。 クエリ時刻の定義に使用する形式を定義します。 この値には文字列を指定するか、 UnixTimestamp または UnixTimestampInMills 形式を使用して、UnixTimestamp のクエリの開始時刻と終了時刻を示すことができます。 |
startTimeAttributeName | 糸 | 省略可。 クエリの開始時刻を定義する属性の名前を定義します。 |
endTimeAttributeName | 糸 | 省略可。 クエリの終了時刻を定義する属性の名前を定義します。 |
queryTimeIntervalAttributeName | 糸 | 省略可。 クエリの時間間隔を定義する属性の名前を定義します。 |
queryTimeIntervalDelimiter | 糸 | 省略可。 クエリの時間間隔区切り記号を定義します。 |
queryWindowInMin | 整数 | 省略可。 使用可能なクエリ ウィンドウを分単位で定義します。 最小値: 5 |
queryParameters | Dictionary<string, object> | 省略可。
eventsJsonPaths パスでクエリで渡されるパラメーターを定義します。 シリアル化された dictionary<string, string> 形式で文字列を定義します: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } 。 |
クエリパラメーターテンプレート | 糸 | 省略可。 高度なシナリオでクエリパラメータを渡す際に使用するクエリパラメータテンプレートを定義します。 例: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}" {_QueryWindowStartTime} および {_QueryWindowEndTime} は、 queryParameters および queryParametersTemplate 要求パラメーターでのみサポートされます。 {_APIKeyName} および {_APIKey} は、 queryParametersTemplate 要求パラメーターでのみサポートされます。 |
isPostPayloadJson | ボーリアン | 省略可。 ポスト ペイロードが JSON 形式であるかどうかを判断します。 |
rateLimitQPS | ダブル | 省略可。 1 秒あたりに許可される呼び出しまたはクエリの数を定義します。 |
timeoutInSeconds | 整数 | 省略可。 要求のタイムアウトを秒単位で定義します。 |
retryCount | 整数 | 省略可。 必要に応じて試行する要求の再試行回数を定義します。 |
ヘッダー | Dictionary<string, object> | 省略可。 シリアル化された dictionary<string, object> 形式で要求ヘッダー値を定義します。 {'<attr_name>': '<serialized val>', '<attr_name>': '<serialized val>'... } |
応答の構成
pollingConfig 構成の response
セクションには、次のパラメーターが含まれています。
次のコードは、最上位レベルのメッセージの eventsJsonPaths 値の例を示しています。
"eventsJsonPaths": [
"$"
]
ページングの構成
pollingConfig 構成の paging
セクションには、次のパラメーターが含まれています。
名前 | タイプ | 説明 |
---|---|---|
pagingType | 糸 | 必須。 結果で使用するページングの種類を、次の値のいずれかとして決定します: None 、LinkHeader 、NextPageToken 、NextPageUrl 、Offset |
linkHeaderTokenJsonPath | 糸 | 省略可。
LinkHeader が応答ヘッダーで定義されていない場合に、応答 JSON 内のヘッダーをリンクする JSON パスを定義します。 |
nextPageTokenJsonPath | 糸 | 省略可。 次のページ トークン JSON へのパスを定義します。 |
hasNextFlagJsonPath | 糸 | 省略可。
HasNextPage フラグ属性へのパスを定義します。 |
nextPageTokenResponseHeader (次のページトークン応答ヘッダー) | 糸 | 省略可。 応答の 次のページ トークン ヘッダー名を定義します。 |
nextPageParaName | 糸 | 省略可。 要求の 次のページ 名を決定します。 |
nextPageRequestHeader | 糸 | 省略可。 要求の 次のページ ヘッダー名を決定します。 |
nextPageUrl | 糸 | 省略可。 最初の要求 URL と異なる場合は、 次のページ URL を決定します。 |
次ページのURLクエリパラメータ | 糸 | 省略可。 最初の要求の URL と異なる場合に、 次のページ URL のクエリ パラメーターを決定します。 シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <val>, '<attr_name>': <val>... } |
offsetParaName | 糸 | 省略可。 オフセット パラメーターの名前を定義します。 |
pageSizeParaName | 糸 | 省略可。 ページ サイズ パラメーターの名前を定義します。 |
ページサイズ | 整数 | ページング サイズを定義します。 |
pollingConfig コードのサンプル
次のコードは、CCP 構成ファイルの pollingConfig
セクションの例を示しています。
"pollingConfig": {
"auth": {
"authType": "APIKey",
"APIKeyIdentifier": "token",
"APIKeyName": "Authorization"
},
"request": {
"apiEndpoint": "https://api.github.com/../{{placeHolder1}}/audit-log",
"rateLimitQPS": 50,
"queryWindowInMin": 15,
"httpMethod": "Get",
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
"retryCount": 2,
"timeoutInSeconds": 60,
"headers": {
"Accept": "application/json",
"User-Agent": "Scuba"
},
"queryParameters": {
"phrase": "created:{_QueryWindowStartTime}..{_QueryWindowEndTime}"
}
},
"paging": {
"pagingType": "LinkHeader",
"pageSizeParaName": "per_page"
},
"response": {
"eventsJsonPaths": [
"$"
]
}
}
Microsoft Sentinel にコネクタをデプロイし、データの取り込みを開始する
ユーザー インターフェイスとポーリング構成の両方を含む JSON 構成ファイルを作成したら、Microsoft Sentinel ワークスペースにコネクタをデプロイします。
データ コネクタをデプロイするには、次のいずれかのオプションを使用します。
ヒント
Azure Resource Manager (ARM) テンプレートを使用してデプロイする利点は、複数の値がテンプレートに組み込まれており、API 呼び出しで手動で定義する必要がない点です。
JSON 構成コレクションを ARM テンプレートでラップして、コネクタをデプロイします。 データ コネクタが正しいワークスペースに確実にデプロイされるようにするには、ARM テンプレートでワークスペースを定義するか、ARM テンプレートをデプロイするときにワークスペースを選択してください。
コネクタ用の ARM テンプレート JSON ファイル を準備します。 たとえば、次の ARM テンプレート JSON ファイルを参照してください。
- Slack ソリューションのデータ コネクタ
- GitHub ソリューションのデータ コネクタ
Azure portal で、[ カスタム テンプレートのデプロイ] を検索します。
[カスタム デプロイ] ページで、エディターで [独自のテンプレートの作成] を選択します>ファイルの読み込み。 ローカル ARM テンプレートを参照して選択し、変更を保存します。
サブスクリプションとリソース グループを選択し、カスタム コネクタをデプロイする Log Analytics ワークスペースを入力します。
[ 確認と作成 ] を選択して、カスタム コネクタを Microsoft Sentinel にデプロイします。
Microsoft Sentinel で、[ データ コネクタ ] ページに移動し、新しいコネクタを検索します。 データの取り込み開始を構成します。
詳細については、Azure Resource Manager ドキュメントの 「ローカル テンプレートをデプロイ する」を参照してください。
データ ソースを接続し、Microsoft Sentinel へのデータの取り込みを開始するようにデータ コネクタを構成します。 すぐに使用できるデータ コネクタの場合と同様に、ポータルまたは API を使用して、データ ソースに接続できます。
Azure portal を使用して接続すると、ユーザー データが自動的に送信されます。 API 経由で接続する場合は、API 呼び出しで関連する認証パラメーターを送信する必要があります。
Microsoft Sentinel データ コネクタ ページで、指定した手順に従ってデータ コネクタに接続します。
Microsoft Sentinel のデータ コネクタ ページは、CCP JSON 構成ファイルの
connectorUiConfig
要素の InstructionSteps 構成によって制御されます。 ユーザー インターフェイス接続に問題がある場合は、認証の種類に適した構成になっていることを確認してください。Microsoft Sentinel で、[ ログ ] ページに移動し、データ ソースからのログがワークスペースに流れ込まれているのを確認します。
Microsoft Sentinel にデータが流れ込まない場合は、データ ソースのドキュメントとトラブルシューティング リソースを確認し、構成の詳細を確認し、接続を確認します。 詳しくは、データ コネクタの正常性の監視に関するページをご覧ください。
コネクタを取り外す
コネクタのデータが不要になった場合は、コネクタを切断してデータ フローを停止します。
以下のいずれかの方法を使用します。
Azure portal: Microsoft Sentinel データ コネクタ ページで、[ 切断] を選択します。
API: DISCONNECT API を使用して、空の本文を含む PUT 呼び出しを次の URL に送信します。
https://management.azure.com /subscriptions/{{SUB}}/resourceGroups/{{RG}}/providers/Microsoft.OperationalInsights/workspaces/{{WS-NAME}}/providers/Microsoft.SecurityInsights/dataConnectors/{{Connector_Id}}/disconnect?api-version=2021-03-01-preview
次のステップ
まだ行っていない場合は、新しいコードレス データ コネクタを Microsoft Sentinel コミュニティと共有してください。 データ コネクタ用のソリューションを作成し、Microsoft Sentinel Marketplace で共有します。
詳細については、以下を参照してください。