LoginSignup
2
1

More than 1 year has passed since last update.

複数の Sentinel / Log Analytics ワークスペースにまたがるクエリーで検索する(クロスワークスペースクエリー)

Last updated at Posted at 2023-01-28

1.はじめに

Azure Log Analytics / Sentinel を利用していると、複数のワークスペースで分割して環境を構築することがあります。
ステージング(開発/本番/検証)でワークスペースを分けたり、GDPR のような保管要件で地域毎にワークスペースを分けるようなケース、Azure Active Directory のテナントが分かれているため、各々でワークスペースを作成するようなケースが考えられます。

このような環境では、Microsoft Sentinel では、クロスワークスペースクエリー(クロスリソースクエリー)と呼ばれる強力な機能が提供されており、このようなワークスペースを横断した検索が出来るようになっています。
本記事では、このクロスワークスペースクエリー Cross workspace queries の検索方法について触れたいと思います!

2. クエリー方法

クロスワークスペースクエリーはとても簡単です!
同一の Azure テナント内で Log Analytics ワークスペース名がユニークであれば、テーブル名の前にワークスペース名を指定するだけで検索が出来ます。

workspace("contosoretail-it").Update
| count

完全名で指定する場合は、サブスクリプション名/リソースグループ名/リソース名で指定します。

workspace('contoso/contosoretail/contosoretail-it').Update
| count

ワークスペースの GUID が分かっている場合は、GUID で指定します。

workspace("b459b4u5-912x-46d5-9cb1-p43069212nb4").Update
| count

Azure Lighthouse 機能を用いて、異なる Log Analytics ワークスペースに検索をかけることも出来ます。
この場合はリソース ID で指定します。

workspace("/subscriptions/e427519-5645-8x4e-1v67a3b84b59a1985/resourcegroups/ContosoAzureHQ/providers/Microsoft.OperationalInsights/workspaces/contosoretail-it").Update
| count

2. クエリーのイメージ

クロスリソースクエリーの例です。

2.1 テーブルを横断して結合して検索する

環境が分かれているようなケースで、全体環境を調査するために横断してクエリー検索を行うようなケースになります。
本番/開発/検証といったステージング環境で分かれてしまったリソースの集計や、海外のワークスペースもまとめて集計するようなケースが考えられます。
image.png

テーブルをまとめて検索する場合は union 演算子を用います。

以下は 2 つのワークスペースを横断して Azure Monitor Agent の集計をワークスペースを横断して検索した例です。

union
    Heartbeat,
    workspace("log-hubhnakada-monitor-JapanEast").Heartbeat,
| where Category == 'Azure Monitor Agent'
| summarize arg_max(TimeGenerated, *) by SourceComputerId
| sort by Computer
| project Computer, Category, OSType, OSName, ComputerPrivateIPs

image.png

2.2 異なる Azure Active Directory テナント間の Log Analytics テーブルを横断して結合して検索する

クロスワークスペースクエリーは、異なる Azure AD テナントであっても利用することが出来ます。
この場合は、事前に Azure Lighthouse 機能を用いて設定を行うことで、異なる AAD テナントの Log Analytics ワークスペースも操作することが出来るようになります。
Azure Lighthouse については、多くの有志の方々が記事にされていますので、以下参考として下さい。

イメージで記載すると以下になります。
image.png

試しに Azure Lighthouse を設定した異なる AAD テナントのワークスペースにまたがって検索した例です。

union Heartbeat, workspace("/subscriptions/9da7c7a8-20fa-4153-85aa-XXXXXXXXXXXX/resourcegroups/rg-japaneast-management/providers/microsoft.operationalinsights/workspaces/la-sentinel-je-sub1-visualstudio").Heartbeat
| where Category == 'Azure Monitor Agent'
| summarize arg_max(TimeGenerated, *) by SourceComputerId
| sort by Computer
| project TenantId,SubscriptionId, Computer, Category, OSType, OSName, ComputerPrivateIPs

image.png

2.3 別 Log Analytics ワークスペースにある情報を用いて結合する

ログ情報が異なる Log Analytics ワークスペースで運用しており、現ワークスペースから結合して検索したいようなケースが考えられます。
JOIN 結合を用いて、他ワークスペースのテーブルをマッチングさせて検索するような使い方などのアイデアが考えられます。

3. 制限事項など

2023.1 現在、Log Analytics のクロスリソースクエリーには以下の制限があります。
詳しくは公式 Docs をご参照下さい。

  • クエリーに含めることが可能なワークスペースは最大 100 個まで

Microsoft Sentinel を用いて分析ルールを横断ワークスペースで実施する場合は以下制約があるのでご注意ください。

  • Microsoft Sentinel で分析ルールを作成する場合は、クエリーに含めることが出来るワークスペースは最大 20 個まで
  • 全ての Log Analytics ワークスペースに Microsoft Sentinel をオンボーディングする必要がある
  • インシデントの作成は、クロスリソースクエリーの分析ルールを作成した Sentinel で行われる
    • 全てのワークスペースでインシデントが作成されるわけではない

4. 参考リンク

5. まとめ

実用環境で Microsoft Sentinel / Log Analytics ワークスペースを構築していると、検証・開発環境や、異なるテナントに対する情報を収集するニーズは多いと思いますが、クロスワークスペースクエリーを知っておけば、権限があれば横断した検索や分析に生かすことが出来るのではないかと思います。どなたかの参考になれば幸いです。

*本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1