次の方法で共有


Microsoft Sentinel データ レイクで KQL クエリを実行する

Microsoft Defender ポータルのデータ レイク探索には、データ レイクを分析するための統合インターフェイスが用意されています。 これにより、KQL (Kusto クエリ言語) クエリの実行、ジョブの作成、管理が行えます。

[データ レイク探索][KQL クエリ] ページでは、データ レイク リソースに対する KQL クエリを編集して実行できます。 データ レイクから分析層にデータを昇格させるジョブを作成するか、Data Lake 層に集計テーブルを作成します。 ジョブをオンデマンドで実行するか、スケジュールします。 [ ジョブ] ページでは、ジョブを管理できます。を有効、無効、編集、または削除します。 詳細については、「 Microsoft Sentinel Data Lake でのジョブの作成」を参照してください。

[前提条件]

Microsoft Sentinel データ レイクで KQL クエリを実行するには、次の前提条件が必要です。

データ レイクにオンボードする

オンボーディング プロセスを完了すると、Microsoft Defender ポータルで KQL クエリを実行できるようになります。 オンボードの詳細については、「 Microsoft Sentinel Data Lake へのオンボード」を参照してください。

権限

Microsoft Entra ID ロールを使用すると、データ レイク内のすべてのワークスペースにアクセスできます。 また、Azure RBAC ロールを使用して個々のワークスペースへの権利を与えることもできます。 Microsoft Sentinel ワークスペースに対する Azure RBAC アクセス許可を持つユーザーは、データ レイク層のワークスペースに対して KQL クエリを実行できます。 ロールとアクセス許可の詳細については、「 Microsoft Sentinel Data Lake のロールとアクセス許可」を参照してください。

KQL クエリの記述

データ レイクのクエリの記述は、高度なハンティング エクスペリエンスでのクエリの記述に似ています。 同じ KQL 構文と関数を使用できます。 KQL では、高度分析機能と機械学習機能がサポートされています。 クエリ エディターには、効率的な記述に役立つ IntelliSense やオートコンプリートなどの機能を使用して KQL クエリを実行するためのインターフェイスが用意されています。 KQL 構文と関数の詳細な概要については、 Kusto クエリ言語 (KQL) の概要に関するページを参照してください。

Defender ポータルでの KQL クエリ

[ 新しいクエリ] を選択して新しいクエリ タブを作成します。ポータルでは、各タブに最後のクエリが保存されます。複数のクエリで同時に動作するようにタブを切り替えます。

[ クエリ履歴 ] タブには、以前に実行したクエリ、クエリ処理時間、完了状態の一覧が表示されます。 前のクエリを新しいタブで開くには、一覧からクエリを選択します。 ポータルでは、クエリ履歴が 30 日間保存されます。 クエリを選択して編集するか、もう一度実行します。

Defender ポータルの [KQL クエリ] ページのスクリーンショット。

ワークスペースの選択

1 つのワークスペースまたは複数のワークスペースに対してクエリを実行できます。 [選択したワークスペース] ドロップダウンを使用して、クエリ エディターの右上隅にある ワークスペースを選択 します。 選択したワークスペースによって、クエリに使用できるテーブルが決まります。 選択したワークスペースは、クエリ エディターのすべてのクエリ タブに適用されます。 複数のワークスペースを使用する場合、 union() 演算子は既定で、異なるワークスペースの同じ名前とスキーマを持つテーブルに適用されます。 workspace()演算子を使用して、workspace("MyWorkspace").AuditLogsなど、特定のワークスペースのテーブルに対してクエリを実行します。

オンボーディングの途中のワークスペースまたは空のワークスペースを1つ選択した場合、スキーマブラウザーにはテーブルが表示されません。

ワークスペースの選択パネルを示すスクリーンショット。

時間の範囲の選択

クエリ エディターの上にあるタイム ピッカーを使用して、クエリの時間範囲を選択します。 カスタム時間範囲オプションを使用すると、特定の開始時刻と終了時刻を設定できます。 期間は最大 12 年間です。

時間範囲セレクターを示すスクリーンショット。

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を含むカスタム テーブルは、[カスタム ログ] カテゴリにグループ化されます。 スキーマ ブラウザーを使用して、データ レイクで使用可能なデータを探索し、テーブルと列を検出します。 検索ボックスを使用して、特定のテーブルをすばやく検索します。

KQL エディターのスキーマ ブラウザー パネルを示すスクリーンショット。

結果ウィンドウ

結果ウィンドウにクエリの結果が表示されます。 結果はテーブル形式で表示でき、結果ウィンドウの左上隅にある [エクスポート] ボタンを使用して CSV ファイルに結果を エクスポート できます。 [空の列を表示] ボタンを使用して 、空の列 の表示を切り替えます。 [ 列のカスタマイズ ] ボタンを使用すると、結果ウィンドウに表示する列を選択できます。

結果ウィンドウの右上隅にある検索ボックスを使用して、結果を検索できます。

KQL クエリ エディターの結果ウィンドウを示すスクリーンショット。

すぐに利用可能なクエリ

[ クエリ ] タブには、すぐに使用する KQL クエリのコレクションが表示されます。 これらのクエリは、セキュリティ インシデント調査や脅威ハンティングなどの一般的なシナリオとユース ケースを対象とします。 これらのクエリは、as-is 使用することも、特定のニーズに合わせて変更することもできます。

... アイコンを使用して、一覧からクエリを選択します。 編集用の新しいクエリ タブで開くか、すぐに実行できます。

サンプル クエリの詳細については、「 Microsoft Sentinel Data Lake のサンプル KQL クエリ」を参照してください。

KQL クエリ エディターの [サンプル クエリ] タブのスクリーンショット。

非同期クエリ

実行時間の長いクエリを非同期的に実行できるため、サーバーでクエリを実行している間も作業を続けることができます。 クエリを非同期的に実行するには、[ クエリの実行 ] ボタンの下矢印を選択し、[ 非同期クエリの実行] を選択します。 非同期クエリを識別するクエリ名を入力します。 クエリを送信したら、[ 非同期クエリ ] タブでその状態を監視できます。クエリが完了したら、一覧からクエリ名を選択して結果を表示できます。

KQL クエリ エディターの [非同期クエリ] タブを示すスクリーンショット。

同期クエリの実行に 2 分以上かかる場合は、クエリを非同期的に実行するかどうかを確認するプロンプトが表示されます。 [ 非同期の実行 ] を選択して、非同期的に実行するようにクエリを変更します。

実行時間の長いクエリを非同期クエリに変更するプロンプトを示すスクリーンショット。

非同期クエリの結果を取得する

非同期クエリの結果を表示するには、[非同期クエリ] タブから完了したクエリを選択し、[結果を取得] を選択します。 クエリはクエリ エディターのコメントに表示され、結果は [ 結果] タブに表示されます。

結果は 24 時間保存され、複数回アクセスできます。 結果ウィンドウの左上隅にある [エクスポート] ボタンを使用して、結果を CSV ファイルに エクスポート できます。

KQL クエリ エディターでの非同期クエリの結果を示すスクリーンショット。

仕事

ジョブは、データ レイク層のデータに対して KQL クエリを実行し、結果を分析層に昇格させるために使用されます。 1 回限りのジョブまたはスケジュールされたジョブを作成できます。また、[ジョブ ] ページからジョブを有効、無効、編集、または削除できます。 現在のクエリに基づいてジョブを作成するには、[ ジョブの作成 ] ボタンを選択します。 ジョブの作成と管理の詳細については、「 Microsoft Sentinel Data Lake でのジョブの作成」を参照してください。

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

クエリに関する考慮事項と制限事項

  • 選択したワークスペースに対してクエリが実行されます。 クエリを実行する前に、正しいワークスペースを選択してください。

  • Microsoft Sentinel データ レイクで KQL クエリを実行すると、クエリの課金メーターに基づいて料金が発生します。 詳細については、「コストを計画し、Microsoft Sentinel の価格と課金を理解する」を参照してください。

  • データ インジェストとテーブルの保持ポリシーを確認します。 クエリの時間範囲を設定する前に、データ レイク テーブルのデータ保有期間と、選択した時間範囲でデータを使用できるかどうかを確認してください。 詳細については、 Microsoft Defender ポータルでのデータ層と保持の管理に関するページを参照してください。

  • データ レイクに対する KQL クエリのパフォーマンスは、分析レベルのクエリよりも低くなります。 データ レイクに対して KQL クエリを使用するのは、履歴データを探索するとき、またはテーブルがデータ レイク専用モードで格納されている場合のみです。

  • 現在、次の KQL コントロール コマンドがサポートされています。

    • .show version
    • .show databases
    • .show databases entities
    • .show database
  • stored_query_results コマンドを使用する場合は、KQL クエリで時間範囲を指定します。 クエリ エディターの上にある時間セレクターは、このコマンドでは機能しません。

  • Data Lake に対する KQL クエリでは、すぐに使用できない関数またはカスタム関数の使用はサポートされていません。

  • データ レイクに対する KQL クエリを使用した外部データの呼び出しはサポートされていません。

  • 以下を除き、すべての KQL 演算子と関数がサポートされています。

    • adx()
    • arg()
    • externaldata()
    • ingestion_time()

レイク層の KQL クエリのサービス パラメーターと制限

Microsoft Sentinel データ レイクでクエリを記述する場合は、次のサービス パラメーターの制限が適用されます。

カテゴリ パラメーター/制限
同時対話型クエリ 1 分あたり 45
クエリ結果データ 64 MB
クエリ結果の行 500,000 行
クエリ スコープ 複数のワークスペース
[クエリ タイムアウト] 8 分
クエリ可能な時間範囲 データ保有期間に応じて最大 12 年。

KQL クエリのトラブルシューティングについては、「 Microsoft Sentinel Data Lake での KQL クエリのトラブルシューティング」を参照してください。