Microsoft DefenderでSentinelデータレイクにKQL実行|影響範囲と管理者の確認ポイント

Microsoft DefenderポータルからMicrosoft Sentinel data lakeに対してKQLクエリを実行できるようになると、長期保管されたセキュリティログを調査・集計・分析に使いやすくなります。結論として、管理者が最初に確認すべきなのは、オンボーディング状況、ワークスペースの範囲、権限、保持期間、課金、クエリ制限です。Microsoft Learnの該当ドキュメントは2026年5月14日に更新されており、Data lake explorationのKQL queriesで、データレイクリソースやフェデレーションテーブルに対するクエリ作成・編集・実行、ジョブ作成、非同期クエリ、Azure Data Explorerからの接続などが整理されています。(Microsoft Learn)

目次

Microsoft Defenderのセキュリティ更新で何ができるようになるのか

今回確認すべきポイントは、Microsoft DefenderポータルのData lake explorationで、Microsoft Sentinel data lakeに対してKQLを実行できる点です。これにより、SOC担当者やセキュリティ管理者は、分析層だけでなくデータレイク層に保存されたログも、KQLで探索できるようになります。

公式情報では、KQL queriesページで次の操作が可能とされています。

機能できること実務での使いどころ
KQLクエリエディターKQLの作成、編集、実行インシデント調査、脅威ハンティング、ログ確認
複数ワークスペース選択単一または複数のワークスペースを対象にクエリ実行部門別・環境別ワークスペースを横断調査
フェデレーションテーブルSystem tablesを選択してクエリMicrosoft Entra ID、Microsoft 365、Azure Resource Graphなどの資産情報確認
非同期クエリ長時間かかるクエリをサーバー側で実行広い期間の調査、重い集計、履歴分析
KQLジョブ1回限りまたはスケジュール実行調査結果の分析層への昇格、集計テーブル作成
Azure Data Explorer連携ADXからデータレイクに接続既存のADX運用や高度な分析基盤との連携

重要なのは、これは単なる検索画面の追加ではないという点です。長期保管されたセキュリティデータを、調査・集計・再分析・分析層への昇格に使うための運用機能として捉えるべきです。

影響を受ける管理者・開発者・運用チーム

影響範囲は、Microsoft Defenderを操作するSOC担当者だけに限られません。Microsoft Sentinelのワークスペース、保持期間、課金、アクセス権限に関わる担当者も確認が必要です。

対象者主な影響確認すべきこと
セキュリティ管理者長期ログをDefenderポータル上で調査しやすくなるデータレイクのオンボーディング、対象ワークスペース、権限
SOCアナリスト過去ログや複数ワークスペースを横断した調査が可能になるクエリ範囲、時間条件、結果件数、非同期クエリの使い分け
Microsoft Sentinel管理者ワークスペース接続、保持期間、データ階層の設計が重要になるAnalytics tierとData lake tierの使い分け
ID・権限管理担当Microsoft Entra IDロールとAzure RBACの設計が必要になる最小権限、行レベルRBAC、Unified RBAC
開発者・データエンジニアADXやKQLジョブを使った自動化・集計が可能になるexternal_table()、スキーマ整合性、未対応関数
コスト管理担当クエリ実行、保持期間、分析層への昇格で費用が変わる課金メーター、保存期間、昇格対象データ

特に注意したいのは、Microsoft Sentinel data lakeへのオンボーディング後、同じリージョンでDefenderに接続されているワークスペースが自動的にデータレイクへ関連付けられる点です。ワークスペース単位で自由にオンボード対象を選べる運用ではないため、事前に接続済みワークスペースとリージョンを棚卸ししておく必要があります。(Microsoft Learn)

まず確認すべき前提条件

KQLクエリを実行するには、Microsoft Sentinel data lakeへのオンボーディングが完了している必要があります。公式ドキュメントでは、Microsoft DefenderポータルでKQLを実行する前提として、データレイクへのオンボーディングと適切な権限が挙げられています。(Microsoft Learn)

オンボーディング前に確認する項目

確認項目判断基準注意点
Microsoft DefenderとMicrosoft Sentinelの構成DefenderポータルとSentinelが利用可能かMicrosoft SentinelをDefenderポータルに接続しておく
プライマリワークスペースSentinelのプライマリワークスペースがDefenderに接続されているかデータレイクはプライマリワークスペースと同じリージョンに作成される
Azureサブスクリプション課金用のサブスクリプションとリソースグループがあるか管理グループ単位の所有者では不十分な場合がある
リージョン対象ワークスペースが同じリージョンにあるか同一リージョンのDefender接続済みワークスペースが対象になる
暗号化ポリシーCustomer-Managed Keysを使っていないかdata lakeに保存されるデータではCMKがサポートされない
データ所在地Microsoft 365データとdata lakeのリージョンが一致するか異なる場合、data lakeのリージョンへ取り込むことへの同意が必要
Azure Policy必要なリソース展開がブロックされないか必要に応じて対象リソースタイプのポリシー例外を検討

CMKを前提にした厳格な暗号化ポリシーを採用している組織では、特に慎重に判断する必要があります。公式情報では、CMKはMicrosoft Sentinel data lakeに保存されるデータではサポートされず、CMKを適用しているSentinelワークスペースはdata lakeのエクスペリエンスからアクセスできないと説明されています。(Microsoft Learn)

権限設計で注意すべきポイント

Microsoft Sentinel data lakeでは、全体アクセスにはMicrosoft Entra IDロール、個別ワークスペースへのアクセスにはAzure RBACを使う構成になります。ここを曖昧にすると、想定以上のワークスペースやテーブルにアクセスできる状態になりやすいため、最小権限で設計することが重要です。

公式情報では、data lake全体の読み取りにはGlobal reader、Security reader、Security operator、Security administrator、Global administratorなどのMicrosoft Entra IDロールが示されています。一方、特定ワークスペースに対する読み取りでは、Log Analytics Reader、Microsoft Sentinel Reader、ReaderなどのAzure RBACロールが使われます。(Microsoft Learn)

権限設計の実務判断

やりたいこと推奨される考え方避けたい設定
SOCアナリストに調査を任せる必要なワークスペースだけに読み取り権限を付与Global Administratorを日常運用に使う
全社横断で脅威ハンティングするSecurity readerなどの広域ロールを検討部門データの閲覧範囲を未定義にする
KQLジョブを作成・管理するSecurity operator以上など、必要な書き込み権限を確認読み取り権限だけでジョブ運用を始める
テーブル単位で制限したいresource-context RBAC、Table-level RBAC、Defender XDR Unified RBACを検討ワークスペース全体を安易に開放する
機密データを含むログを扱う行レベルRBACやMicrosoft Sentinel scopingを確認クエリ結果の閲覧範囲をユーザー任せにする

Microsoftは、権限は累積されるため、複数ロールを持つユーザーが意図以上の権限を持つ可能性があると説明しています。既存のAzure RBAC、Log Analytics権限、Microsoft Sentinelロール、Entra IDロールをまとめて棚卸ししてください。(Microsoft Learn)

KQLクエリ実行時の基本操作と実務上のコツ

Data lake explorationのKQL queriesでは、新しいクエリタブを作成し、対象ワークスペースを選択してKQLを実行します。クエリ履歴は30日間保存され、過去に実行したクエリを開いて再実行できます。(Microsoft Learn)

実務では、いきなり広範囲のログに対して重いクエリを実行するのではなく、次の順序で確認すると失敗しにくくなります。

手順操作確認ポイント
1対象ワークスペースを選択本番・検証・部門別ワークスペースを取り違えない
2スキーマブラウザーでテーブルを確認空テーブルは表示されない場合がある
3時間範囲を狭く設定まずは直近1日や数時間で試す
4takeやprojectで結果を絞る取得行数と列数を抑える
5条件を追加してから範囲を広げる広範囲クエリは非同期クエリを検討
6必要に応じてCSV出力監査証跡や分析資料に利用

複数ワークスペースを選択した場合、同じ名前とスキーマを持つテーブルには既定でunion()演算子が適用されます。特定ワークスペースだけを対象にしたい場合は、workspace()演算子を使って明示するのが安全です。(Microsoft Learn)

workspace("MyWorkspace").AuditLogs
| where TimeGenerated between (datetime(2026-04-01) .. datetime(2026-04-30))
| take 100

フェデレーションテーブルを扱う場合は、時間範囲の指定にも注意が必要です。TimeGenerated列がない、または形式が適切でないフェデレーションテーブルでは、画面上部のタイムピッカーが期待どおりに機能しません。その場合は、KQL内で対象列を使って時間条件を明示してください。(Microsoft Learn)

非同期クエリとKQLジョブの使い分け

通常の対話クエリは、調査中に素早く結果を確認する用途に向いています。一方、長期間のログを対象にした集計や、複数テーブルのjoin、履歴データのスキャンは、非同期クエリやKQLジョブを使った方が安定します。

使い分け向いている用途注意点
通常のKQLクエリ短時間の調査、少量データの確認、条件作成結果サイズやタイムアウト制限に注意
非同期クエリ広範囲の履歴調査、時間がかかる集計結果は24時間保存される
KQLジョブ定期集計、分析層への昇格、調査結果テーブル作成出力先テーブルのスキーマ整合性が必要
ADX接続既存ADX運用からの分析、外部分析基盤との連携data lakeテーブル参照にはexternal_table()を使う

非同期クエリは、長時間かかるクエリをサーバー側で実行し、完了後に結果を取得する仕組みです。公式情報では、非同期クエリの同時実行はテナントあたり3、実行タイムアウトは1時間、結果キャッシュは24時間とされています。(Microsoft Learn)

KQLジョブは、1回限りまたはスケジュール実行できるKQL処理です。インシデント対応での長時間クエリ、低頻度ログを使ったエンリッチメント、過去の脅威インテリジェンス照合、異常検知などに適しています。また、data lake tierの結果をanalytics tierへ昇格させることで、Advanced hunting側でさらに分析する運用も可能です。(Microsoft Learn)

ただし、analytics tierはdata lake tierより高い課金になる場合があります。昇格するデータは、whereで対象を絞り、projectで必要な列だけに限定するのが基本です。

DeviceEvents
| where TimeGenerated between (ago(180d) .. ago(90d))
| where ActionType has "Process"
| summarize EventCount = count() by bin(TimeGenerated, 1d), DeviceName

上記のような履歴集計は、まず短い期間で検証し、結果件数・列・実行時間を確認してから、非同期クエリやジョブ化を検討してください。

Analytics tierとData lake tierの違いを理解する

Microsoft Sentinel data lakeを使ううえで、最も重要なのはAnalytics tierとData lake tierを混同しないことです。

Analytics tierは、アラート、リアルタイム分析、ハンティング、ワークブックなどの高性能な運用に向いています。一方、Data lake tierは、長期保管、履歴分析、フォレンジック、監査向けの低コスト保管に向いています。公式情報では、data lake tierはリアルタイム分析や脅威ハンティング向けではなく、KQLジョブ、Sparkジョブ、ノートブックなどで必要時にアクセスする層として説明されています。(aka.ms)

比較項目Analytics tierData lake tier
主な用途リアルタイム検知、アラート、ハンティング、ワークブック長期保管、履歴分析、監査、フォレンジック
クエリ性能高性能Analytics tierより遅い
コスト設計高性能な分析向け大容量・長期保存向け
リアルタイム機能利用可能一部機能に制限あり
保持期間Microsoft Sentinelは既定90日、Microsoft Defender XDRは既定30日などanalytics retentionと同じ期間が既定。最大12年まで拡張可能
昇格不要KQLジョブやNotebookジョブでanalytics tierへ昇格可能

運用上の失敗で多いのは、コスト削減だけを目的に重要なテーブルをdata lake tierへ移してしまい、リアルタイム検知やハンティングが動かなくなるケースです。公式情報でも、テーブルの階層をanalyticsからdata lakeへ変更すると、リアルタイム分析やハンティングクエリが停止すると説明されています。(aka.ms)

クエリ制限・未対応機能・遅延に注意する

Microsoft Sentinel data lakeへのKQL実行には、通常のLog AnalyticsやAdvanced huntingと同じ感覚では扱えない制限があります。特に、長期データを扱う場合は、クエリ範囲を広げすぎないことが重要です。

項目公式情報で示されている制限・注意点実務上の対策
結果サイズ最大64MB必要な列だけprojectする
結果行数最大500,000行summarizeやtakeで絞る
対話クエリ数1分あたり45件自動連打や検証スクリプトを避ける
クエリ可能期間保持期間に応じて最大12年保持ポリシーを事前確認
データ反映取り込み後、クエリ可能になるまで約15分の遅延直近ログ調査ではanalytics tierやAdvanced huntingも併用
レガシーテーブルAzureDiagnosticsなど一部レガシーテーブルは非対応対象テーブルを事前に確認
空テーブルスキーマビューに表示されず、データが入るまでクエリ不可初回取り込み後に再確認
カスタム関数out-of-the-box関数やカスタム関数は非対応クエリ内にロジックを展開
外部データ呼び出しKQLから外部データ呼び出しは非対応事前に取り込み・別ジョブで加工
未対応演算子・関数adx()、arg()、externaldata()、ingestion_time()は非対応代替ロジックを設計

公式ドキュメントでは、data lakeへのKQLクエリはanalytics tierよりパフォーマンスが低いため、履歴データの探索やdata lake-only modeのテーブルを扱う場合に使うべきとされています。(Microsoft Learn)

コスト管理で確認すべきポイント

KQL queries against the Microsoft Sentinel data lakeは便利ですが、実行そのものや保持期間、analytics tierへの昇格にはコストが関係します。公式情報では、data lakeに対するKQLクエリ実行はクエリ課金メーターに基づいて課金されると説明されています。(Microsoft Learn)

コストを抑えるには、次の考え方が有効です。

コストが増えやすい操作原因対策
長期間を対象にした広範囲クエリ読み取るデータ量が増えるまず短期間で検証し、条件を絞る
多数列の取得結果サイズが増えるprojectで必要列だけ取得
analytics tierへの大量昇格高性能分析層の保存・処理対象が増える必要な結果だけ昇格する
スケジュールジョブの乱立定期的に処理コストが発生実行頻度と対象期間を明確化
data lake長期保持の拡大保存期間が長くなる法務・監査要件に合わせて保持期間を決める

Microsoft Defender XDRデータは、既定でAdvanced huntingに30日間利用できる前提があります。保持期間を延ばす場合やdata lake tierへ直接取り込む場合は、取り込み・保存・処理のコストを事前に見積もる必要があります。(aka.ms)

管理者が展開前に確認すべきチェックリスト

本番展開前には、次の項目を順番に確認してください。

ワークスペースとデータ範囲

  • Defenderポータルに接続済みのMicrosoft Sentinelワークスペースを一覧化する
  • プライマリワークスペースのリージョンを確認する
  • 同一リージョンで自動的にdata lakeへ関連付けられるワークスペースを確認する
  • Microsoft 365データのリージョンとdata lakeのリージョン差異を確認する
  • data lakeへ取り込むテーブルとanalytics tierに残すテーブルを分ける

権限と監査

  • Global Administratorを日常運用に使わない
  • SOCアナリストには必要なワークスペースの読み取り権限を付与する
  • KQLジョブ作成者には必要な書き込み・ジョブ管理権限を付与する
  • 行レベルRBACやMicrosoft Sentinel scopingの必要性を確認する
  • data lakeのクエリ実行、ジョブ作成・削除などの監査ログを確認できる体制を作る

Microsoft Sentinel data lakeでは、KQLクエリによるデータアクセス、ノートブック実行、ジョブの作成・編集・実行・削除などが監査対象として示されています。監査は既定で有効とされています。(Microsoft Learn)

クエリとジョブ設計

  • 初回は短い時間範囲でKQLを検証する
  • where TimeGeneratedを明示して、不要なスキャンを避ける
  • 複数ワークスペース選択時のunion()挙動を理解する
  • 特定ワークスペースはworkspace()で明示する
  • 長時間クエリは非同期クエリまたはKQLジョブへ切り替える
  • ジョブ出力先のテーブルスキーマを確認する
  • analytics tierへ昇格するデータは必要最小限にする

移行・運用変更

  • Azure portal中心のMicrosoft Sentinel運用からDefenderポータル中心の運用へ移行計画を作る
  • Advanced huntingで見ていたテーブルがdata lake側へ移る可能性を確認する
  • 補助ログテーブルの扱いを確認する
  • 既存KQLで未対応関数・外部データ参照・カスタム関数を使っていないか確認する
  • ADXから接続する場合はexternal_table()前提でクエリを見直す

Microsoft Sentinelは、2027年3月31日以降Azure portalでサポートされなくなり、Defenderポータルのみで利用される予定と公式に案内されています。現在Azure portal中心で運用している組織は、data lake対応とあわせてDefenderポータルへの移行計画を進めるべきです。(Microsoft Learn)

よくある失敗と回避策

対象ワークスペースを間違えてクエリしてしまう

Data lake explorationでは、選択したワークスペースがクエリタブ全体に適用されます。複数タブで作業している場合でも、ワークスペース選択が想定どおりか確認してください。

回避策は、重要な調査クエリではworkspace("ワークスペース名")を使って対象を明示することです。

時間範囲を広げすぎて失敗する

最大12年のデータを扱えるからといって、最初から広範囲を検索するのは危険です。結果サイズ、行数、タイムアウト、コストの問題が発生しやすくなります。

まず1日、次に7日、最後に必要な期間という順番で広げると、無駄なスキャンを避けられます。

data lake tierをリアルタイム検知に使おうとする

Data lake tierは長期保管や履歴分析に向いた層であり、リアルタイム検知や高頻度ハンティングには向きません。アラートや即時調査が必要なテーブルは、analytics tierに置くか、必要な結果だけをKQLジョブで昇格する設計にしてください。

権限を広く付けすぎる

Microsoft Entra IDロールでdata lake全体への読み取り権限を付与すると、複数ワークスペースのデータに広くアクセスできる可能性があります。部門別データ、個人情報、内部不正調査ログなどを扱う場合は、ワークスペース単位・テーブル単位・行レベルの制御を検討してください。

既存KQLをそのまま流用して動かない

data lakeのKQLでは、すべての既存クエリがそのまま動くとは限りません。特に、外部データ呼び出し、カスタム関数、未対応演算子を使っているクエリは修正が必要です。移行時は、よく使うKQLを一覧化し、data lakeで実行できるか検証してください。

開発者が確認すべきADX連携のポイント

Azure Data ExplorerからMicrosoft Sentinel data lakeに対してKQLを実行する場合、接続先URIとしてhttps://api.securityplatform.microsoft.com/lake/kqlが示されています。また、ADXからdata lake内のテーブルをクエリする場合は、external_table()関数を使う必要があります。(Microsoft Learn)

external_table("AADRiskyUsers")
| take 100

既存のADXクエリ資産を流用する場合は、次の点を確認してください。

  • 参照するテーブルがdata lake上で利用可能か
  • external_table()形式に書き換えられるか
  • 未対応関数を使っていないか
  • 時間範囲をKQL側で明示しているか
  • 結果サイズが64MBや500,000行の上限に近づいていないか
  • 自動実行する場合、課金と実行頻度が妥当か

開発者視点では、data lakeを「大きなログ保管庫」と見るだけでなく、KQLジョブやADX連携によって、調査結果を再利用可能な分析データに変換する基盤として設計するのが効果的です。

次に取るべき対応

Microsoft DefenderポータルからMicrosoft Sentinel data lakeへKQLを実行できる機能は、長期ログの調査や履歴分析を強化します。一方で、ワークスペース範囲、権限、保持期間、課金、クエリ制限を確認しないまま展開すると、意図しないデータ閲覧やコスト増、リアルタイム検知の停止につながる可能性があります。

まずは、次の3点から着手してください。

  1. 対象ワークスペースと保持期間を棚卸しする
  2. SOC担当者・管理者・開発者ごとの権限を見直す
  3. 代表的なKQLを短い期間で検証し、非同期クエリやKQLジョブに分ける

本番運用では、data lake tierを長期保管と履歴分析、analytics tierをリアルタイム検知と高性能調査に使い分けることが重要です。Microsoft DefenderとMicrosoft Sentinelを統合運用している組織では、2027年のDefenderポータル中心運用への移行も見据え、KQL、権限、保持期間、コスト管理をセットで整備しておきましょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次