😸

【知らなくて良いけど知ってると嬉しい】Log Analytics ワークスペースのアクセス モード

2024/12/05に公開

モモスケです。Microsoft Azure Tech Advent Calendar 2024 の 4 日目の記事となります。

概要

この記事は以下の内容を含んでいます。

  • Log Analytics ワークスペースのアクセス モードについて
  • 知らず知らずのうちにアクセス モードを享受している瞬間
  • アクセス モードを知らないと困ること

まず問題です!

以下の画像を見て、どこかおかしい場所が無いか考えてみてください。

alt text

与えられた情報以外のこと(閉域化や権限)は考えず、どこかおかしい場所を見つけてください。

ヒント

この状態では、検知したいログが Log Analytics ワークスペースに送信されていても、アラートは発報しません。

どこがおかしいか分かりましたか?

正解はこちら

正解は「アラート ルールのスコープ」です。

Log Analytics ワークスペースのアクセス モードとは

https://learn.microsoft.com/ja-jp/azure/azure-monitor/logs/manage-access?tabs=portal#access-mode

アクセス モードはアラート ルールを含め Log Analytics ワークスペース内のログ データにアクセスする際の権限を制御する機能です。

ワークスペース コンテキスト

ユーザーがアクセス許可を持つワークスペース内のすべてのログを表示できます。このモードのクエリの範囲は、ワークスペース内でアクセス権を持つすべてのデータです。

リソース コンテキスト

特定のリソース、リソース グループ、またはサブスクリプションに関してワークスペースにアクセスする場合に使用されます。このモードのクエリの範囲は、そのリソースに関連するデータを含むすべてのワークスペースです。

「そのリソースに関連するデータ」とは?

どのようにして「そのリソースに関連するデータ」を定義するのかというと、_ResourceId フィールドを使用してリソース ID を取得し、そのリソース ID がリソース コンテキストに関連付けられているログ データのみが検索可能となります。

つまり、_ResourceId フィールドに指定したリソースのリソース ID が格納されているログ データすべてが検索対象となります。

alt text
例として、VM (test-vm) に関するログの _ResourceId フィールドには、VM のリソース ID が格納されています。

【復習】先ほどのクイズで何が起こったのか?

リソース コンテキストのアクセス モードが適用された

スコープに RG-A を選択したことで、リソース コンテキスト モードでのログ検索となりました。その結果、RG-A およびその内部のリソースに関連付けられたログ データのみが検索可能となり、RG-B に存在する VM のログは検索対象外となりました。

もし、RG-A に VM が存在していた場合は、ログが検知されます。

これって実はアクセス モードを感じています

ワークスペース コンテキストを感じている瞬間

  • Log Analytics ワークスペースのリソース ページからログを検索する時は、ワークスペース コンテキストでログを検索しています。

以下は、先ほどの VM (test-vm) に関するログを、保存先とは別の Log Analytics ワークスペースから検索している様子です。

alt text

この場合、ワークスペース コンテキスト モードでログを検索していますので、検索範囲はこのワークスペース内のすべてのデータとなります。よってログは検知されません。

リソース コンテキストを感じている瞬間

  • 監視対象のリソース ページからログを検索する時は、リソース コンテキストでログを検索しています。

以下は、VM (test-vm) に関するログを、VM 自身のリソース ページから検索している様子です。

alt text

この場合、リソース コンテキスト モードでログを検索していますので、検索範囲は Log Analytics ワークスペースに依らず、そのリソースに関連付けられたデータとなります。よってログは検知されます。

クイズの改善案

案 1:スコープを格納先の Log Analytics ワークスペースに変更する

ワークスペース コンテキスト モードでログを検索するため、ログが検知されるようになります。

alt text

案 2:スコープを監視対象の VM に変更する

リソース コンテキスト モードでログを検索するため、ログが検知されるようになります。

alt text

どちらがいいのか?

基本的にはワークスペース コンテキスト モード

理由として、特定の Log Analytics ワークスペースをスコープとして設定することで、ワークスペース内のすべてのログ データにアクセスできます。この状況はクエリの検索範囲がより直観的で分かりやすいです。

リソース コンテキスト モードの利用例

監視対象リソースのログが複数の Log Analytics ワークスペースに分散している場合、リソース コンテキスト モードを使用することで、全範囲からそのリソースに関連付けられたデータを検索することができます。

詳細は以下のリンクを参照してください。

https://learn.microsoft.com/ja-jp/azure/azure-monitor/logs/cross-workspace-query

まとめ

  • Log Analytics ワークスペースのアクセス モードには「ワークスペース コンテキスト」と「リソース コンテキスト」があります。
  • 普段使っている Azure Portal でのログ検索も、アクセス モードによって異なる検索範囲が適用されています。
  • アラート ルールのスコープを設定する際は、アクセス モードを意識して設定しましょう。

参考

GitHubで編集を提案
Microsoft (有志)

Discussion