LogicAppsでAzureモニターコネクタをマネージドID認証に変更する方法

概要

LogicAppsのAzureMonitorコネクタでマネージドID認証が使えるようになりました。

背景

LogicAppsでLogAnalyticsワークスペースにクエリをかけて処理させたいという要望があると思います。
このようなことがしたい時、AzureMonitorコネクタを利用するのですが、少し前まではマネージドIDに対応しておらず、泣く泣くサービスプリンシパルを使ったりHTTPコネクタでガチャガチャやったりしていました。
今回、AzureMonitorコネクタがマネージドID認証に対応したので検証しました。

やりかた

今回は検証だけなので、HTTPリクエストをトリガーとした簡単な構成にします。
最終的な構成は次のようになります。

LogicAppsのマネージドIDの有効化

適当にLogicAppsを作成し、左ツリーの[ID]でシステム割り当て済みIDの状態を[オン]にします。

LogAnalyticsへの閲覧権限の付与

LogicAppsからLogAnalyticsワークスペースへクエリを投げるための権限を付与します。

対象のLogAnalyticsワークスペースを開き、[アクセス制御(IAM)]の[追加]をクリックします。

[職務ロール]で[Log Analytics 閲覧者]を選択します。

[アクセスの割り当て先]で[マネージドID]を選択します。
[メンバーを選択する]から、作成したLogicAppsのマネージドIDを選択し、ロールを割り当てます。

マネージドID認証のAzureMonitorコネクタの作り方

作成したLogicAppsに戻り、[ロジック アプリ デザイナー]を開きます。

HTTPトリガーと変数の初期化の部分は適当に作ります。

[アクションの追加]または[新しいステップ]で、検索窓に “monitor” と入力し、[Azure Monitor ログ]を選択します。

[クエリを実行して結果を一覧表示する]を選択します。

[接続名]に適当な名前を入力し、[認証の種類]で[Logic Apps のマネージドID]を選択します。

クエリを実行するLogAnalyticsワークスペースを指定します。
[サブスクリプション]、[リソースグループ]、[リソース名]には対象のLogAnalyticsワークスペースの情報を入力します。
[リソースの種類]には[Log Analytics Workspace]を選択します。
[クエリ]と[時間範囲]にはクエリ文と対象とする時間の範囲を入力します。この項目はLogAnalyticsワークスペースでログを検索する際に使うクエリをそのまま使います。今回はAVDのコネクション情報ログを使うので “WVDConnections” というクエリにしました。

プルダウンでリソースが表示されない場合は[カスタム値の入力]をクリックし名前を直接入力してください。

AzureMonitorコネクタから取れる値を扱ってみます。
用意しておいた配列変数に、クエリにひっかかったログの生成日時を追加していきます。

[配列変数に追加]アクションの[値]に、AzureMonitorコネクタからの値を選択すると自動でFor each文に展開してくれます。

動作確認

LogicAppsが完成したら、[トリガーの実行]-[実行]をクリックします。
処理が終わると、各アクションの結果が展開できるようになるので、[配列変数に追加]の結果としてLogAnalyticsワークスペースへのクエリ結果をとってこれていることを確認します。

おまけ

参考

Azure Monitor Logs – Connectors | Microsoft Learn

コメント