Microsoft Defender ポータルでのデータ レイクの探索には、データ レイクを分析するための統合インターフェイスが用意されています。 これにより、KQL (Kusto 照会言語) クエリを実行し、ジョブを作成して管理できます。
[データ レイク探索] の [KQL クエリ] ページでは、データ レイク リソースとフェデレーション テーブルに対して KQL クエリを編集して実行できます。 データ レイクから分析層にデータを昇格させるジョブを作成するか、データ レイク層に集計テーブルを作成します。 ジョブをオンデマンドで実行するか、スケジュールします。 [ ジョブ] ページでは、ジョブを管理できます。を有効、無効、編集、または削除します。 詳細については、「Microsoft Sentinel データ レイクでジョブを作成する」を参照してください。
前提条件
Microsoft Sentinel データ レイクで KQL クエリを実行するには、次の前提条件が必要です。
データ レイクへのオンボード
オンボード プロセスを完了した後、Microsoft Defender ポータルで KQL クエリを実行できます。 オンボードの詳細については、「Microsoft Sentinel data lake へのオンボード」を参照してください。
アクセス許可
Microsoft Entra IDロールを使用すると、Data Lake 内のすべてのワークスペースにアクセスできます。 または、AZURE RBAC ロールを使用して、個々のワークスペースへのアクセス権を付与することもできます。 Microsoft Sentinel ワークスペースに対Azure RBAC アクセス許可を持つユーザーは、データ レイク層のワークスペースに対して KQL クエリを実行できます。 ロールとアクセス許可の詳細については、「data lake ロールとアクセス許可のMicrosoft Sentinel」を参照してください。
必要に応じて、Microsoft Sentinelスコープまたは行レベルの RBAC を構成して、ワークスペース内のデータ アクセスをさらに制限できます。 有効にすると、行レベルのスコープによって、ユーザーの割り当てられたスコープに基づいてクエリによって返されるデータが制限されます。 行レベルのスコープが構成されていない場合、既存のワークスペース レベルのアクセス許可モデルは変更されません。 Microsoft Sentinelスコープ (行レベル RBAC) (プレビュー) を構成します。
KQL クエリを記述する
データ レイクのクエリの記述は、高度なハンティング エクスペリエンスでのクエリの記述に似ています。 同じ KQL 構文と関数を使用できます。 KQL では、高度な分析機能と機械学習機能がサポートされています。 クエリ エディターには、IntelliSense やオートコンプリートなどの機能を使用して KQL クエリを実行するためのインターフェイスが用意されており、効率的に記述できます。 KQL 構文と関数の詳細な概要については、「Kusto 照会言語 (KQL) の概要」を参照してください。
Defender ポータルでの KQL クエリ
[ 新しいクエリ] を選択して、新しいクエリ タブを作成します。ポータルは、各タブに最後のクエリを保存します。複数のクエリで同時に動作するようにタブを切り替えます。
[ クエリ履歴 ] タブには、以前に実行したクエリ、クエリ処理時間、完了状態の一覧が表示されます。 前のクエリを新しいタブで開くには、一覧からクエリを選択します。 ポータルでは、クエリ履歴が 30 日間保存されます。 クエリを選択して編集するか、もう一度実行します。
ワークスペースの選択
クエリは、1 つのワークスペースまたは複数のワークスペースに対して実行できます。 [選択したワークスペース] ドロップダウンを使用して、クエリ エディターの右上隅にある ワークスペースを選択 します。 選択したワークスペースによって、クエリに使用できるテーブルが決まります。 選択したワークスペースは、クエリ エディターのすべてのクエリ タブに適用されます。 複数のワークスペースを使用する場合、 union() 演算子は、異なるワークスペースの名前とスキーマが同じテーブルに既定で適用されます。
workspace("MyWorkspace").AuditLogsなど、特定のワークスペースからテーブルを照会するには、workspace() 演算子を使用します。
フェデレーション テーブルのクエリを実行するには、ワークスペースを選択するときに [ システム テーブル ] を選択します。 フェデレーション テーブルの詳細については、「Microsoft Sentinel データ レイクでのフェデレーション テーブルの使用」を参照してください。
オンボードの処理中に単一の空のワークスペースまたはワークスペースを選択した場合、スキーマ ブラウザーにテーブルは表示されません。
時間範囲の選択
クエリ エディターの上にあるタイム ピッカーを使用して、クエリの時間範囲を選択します。 [カスタム時間範囲] オプションを使用すると、特定の開始時刻と終了時刻を設定できます。 期間は最大 12 年間です。
重要
時間範囲セレクターは、 TimeGenerated 列がないフェデレーション テーブルや、 TimeGenerated 列が正しい形式ではない場合には機能しません。 これらのテーブルに対してクエリを実行する場合は、時間フィルター処理に適した列を使用して、KQL クエリの時間範囲を指定します。
KQL クエリ構文では、次のように時間範囲を指定することもできます。
where TimeGenerated between (datetime(2020-01-01) .. datetime(2020-12-31))where TimeGenerated between(ago(180d)..ago(90d))
注:
クエリは、500,000 行または 64 MB のデータに制限され、8 分後にタイムアウトします。 広範な時間範囲を選択すると、クエリがこれらの制限を超える可能性があります。 実行時間の長いクエリに非同期クエリを使用することを検討してください。 詳細については、「 非同期クエリ」を参照してください。
スキーマ情報を表示する
スキーマ ブラウザーには、選択したワークスペースの使用可能なテーブルとその列の一覧がカテゴリ別にグループ化されています。 [ 資産] カテゴリにシステム テーブルが表示されます。
_CL、_KQL_CL、_SPARK、_SPARK_CLを含むカスタム テーブルは、[カスタム ログ] カテゴリにグループ化されます。 スキーマ ブラウザーを使用して、Data Lake で使用できるデータを調べて、テーブルと列を検出します。 検索ボックスを使用して、特定のテーブルをすばやく見つけます。
結果ウィンドウ
結果ウィンドウにクエリの結果が表示されます。 結果はテーブル形式で表示でき、結果ウィンドウの左上隅にある [ エクスポート ] ボタンを使用して CSV ファイルにエクスポートできます。 [空の列の表示] ボタンを使用して 、空の列 の表示を切り替えます。 [ 列のカスタマイズ ] ボタンを使用すると、結果ウィンドウに表示する列を選択できます。
結果ウィンドウの右上隅にある検索ボックスを使用して、結果を検索できます。
すぐに使用するクエリ
[ クエリ ] タブには、すぐに使用する KQL クエリのコレクションが表示されます。 これらのクエリでは、セキュリティ インシデントの調査や脅威ハンティングなど、一般的なシナリオとユース ケースについて説明します。 これらのクエリをそのまま使用することも、特定のニーズに合わせて変更することもできます。
... アイコンを使用して、一覧からクエリを選択します。 新しいクエリ タブで開いて編集したり、すぐに実行したりできます。
サンプル クエリの詳細については、「Microsoft Sentinel データ レイクのサンプル KQL クエリ」を参照してください。
非同期クエリ
実行時間の長いクエリは非同期的に実行できるため、クエリがサーバー上で実行されている間も作業を続けることができます。 クエリを非同期的に実行するには、[ クエリの実行 ] ボタンの下向き矢印を選択し、[ 非同期クエリの実行] を選択します。 非同期クエリを識別するクエリ名を入力します。 クエリを送信した後、[ 非同期クエリ ] タブでその状態を監視できます。クエリが完了したら、一覧からクエリ名を選択して結果を表示できます。
同期クエリの実行に 2 分以上かかる場合は、クエリを非同期的に実行するかどうかを確認するプロンプトが表示されます。 [ 非同期の実行 ] を選択して、非同期的に実行するようにクエリを変更します。
非同期クエリの結果をフェッチする
非同期クエリの結果を表示するには、[非同期 クエリ] タブ から完了した非同期クエリを選択し、[ 結果のフェッチ] を選択します。 クエリはクエリ エディターのコメントに表示され、[ 結果] タブに結果が表示されます。
結果は 24 時間保存され、複数回アクセスできます。 結果を CSV ファイルにエクスポートするには、結果ウィンドウの左上隅にある [エクスポート ] ボタンを使用します。
KQL 非同期クエリのサービス パラメーターと制限
次の表に、Microsoft Sentinel データ レイクでの KQL 非同期クエリのサービス パラメーターと制限を示します。
| カテゴリ | パラメーター/制限 |
|---|---|
| テナントごとの同時実行 (ジョブの実行を含む) | 3 |
| 非同期クエリ実行タイムアウト | 1 時間 |
| キャッシュ期間 | 24 時間 |
| ユーザーがキャッシュされた結果をフェッチできる回数 | 無制限 |
| クエリ スコープ | 複数のワークスペース |
| クエリ時間範囲 | 最大 12 年 |
ジョブ
ジョブは、データ レイク層のデータに対して KQL クエリを実行し、結果を分析層に昇格させるために使用されます。 1 回限りのジョブまたはスケジュールされたジョブを作成でき、[ ジョブ ] ページからジョブを有効、無効、編集、または削除できます。 現在のクエリに基づいてジョブを作成するには、[ ジョブの作成 ] ボタンを選択します。 ジョブの作成と管理の詳細については、「Microsoft Sentinel データ レイクでのジョブの作成」を参照してください。
Azure Data Explorer
Azure Data Explorer (ADX) を使用して、Microsoft Sentinel データ レイクに対して KQL クエリを実行できます。 ADX は、強力なクエリ エンジンと高度な分析機能を提供します。 ADX を使用してデータ レイクに接続するには、次の URI を使用して新しい接続を作成します。 https://api.securityplatform.microsoft.com/lake/kql
ADX を使用してデータ レイク内のテーブルに対してクエリを実行する場合は、 external_table() 関数を使用してデータにアクセスする必要があります。 例:
external_table("AADRiskyUsers")
| take 100
クエリに関する考慮事項と制限事項
AzureDiagnostics などのレガシ テーブルのクエリはサポートされていません。
空のテーブルはスキーマ ビューに表示されず、テーブルにデータが含まれるまでクエリはサポートされません。
選択したワークスペースに対してクエリが実行されます。 クエリを実行する前に、正しいワークスペースを選択してください。
Microsoft Sentinel データ レイクで KQL クエリを実行すると、クエリ課金メーターに基づいて料金が発生します。 詳細については、「コストを計画し、価格と課金Microsoft Sentinel理解する」を参照してください。
データ インジェストとテーブル保持ポリシーを確認します。 クエリ時間範囲を設定する前に、データ レイク テーブルのデータ保有期間と、選択した時間範囲でデータを使用できるかどうかを認識してください。 詳細については、「Microsoft Defender ポータルでのデータ層と保持の管理」を参照してください。
データ レイクに対する KQL クエリのパフォーマンスは、分析レベルのクエリよりも低くなります。 データ レイクに対する KQL クエリは、履歴データを探索するとき、またはテーブルがデータ レイク専用モードで格納されている場合にのみ使用します。
現在、次の KQL コントロール コマンドがサポートされています。
.show version.show databases.show databases entities.show database
stored_query_resultsコマンドを使用する場合は、KQL クエリで時間範囲を指定します。 クエリ エディターの上のタイム セレクターは、このコマンドでは機能しません。データ レイクに対する KQL クエリでは、すぐに使用する関数またはカスタム関数を使用することはできません。
データ レイクに対する KQL クエリを使用した外部データの呼び出しはサポートされていません。
以下を除き、すべての KQL 演算子と関数がサポートされます。
adx()arg()externaldata()ingestion_time()
データがデータ レイクまたはフェデレーション テーブルに取り込まれるときと、クエリに使用できるようになるまでの待機時間は 15 分です。 つまり、新しく取り込まれたデータはすぐにクエリが実行できない可能性があります。
レイク層の KQL クエリのサービス パラメーターと制限
data lake でクエリを記述する場合は、次のサービス パラメーターの制限Microsoft Sentinel適用されます。
| カテゴリ | パラメーター/制限 |
|---|---|
| 同時実行対話型クエリ | 1 分あたり 45 |
| クエリ結果データ | 64 MB |
| クエリ結果の行 | 500,000 行 |
| クエリ スコープ | 複数のワークスペース |
| クエリのタイムアウト | 4 分 |
| クエリ可能な時間範囲 | データの保持に応じて、最大 12 年。 |
KQL クエリのトラブルシューティングについては、「Microsoft Sentinel データ レイクでの KQL クエリのトラブルシューティング」を参照してください。