Azureのログアラートの設定にIdentityの設定項目がいつの間にか増えていました。
この設定項目に関してMicrosoftのドキュメントを確認したところ、以下の記載がありました。
[ID] セクションで、ログ検索アラート ルールがログ クエリの送信時の認証に使う ID を選びます。
(中略)
マネージド ID を使わない場合、アラート ルールのアクセス許可は、ルールが最後に編集されたときに、ルールを編集した最後のユーザーのアクセス許可に基づきます。
引用元:https://learn.microsoft.com/ja-jp/azure/azure-monitor/alerts/alerts-create-log-alert-rule#managed-id
疑問
- マネージドIDを使わない場合(=既定値を選んだ場合)、アラートを設定したユーザーの権限を剥奪するとアラートは正常に動作するのか
- アラートを設定したユーザー自体を削除するとアラートは正常に動作するのか
検証
- 検証用ユーザーを作成
- テスト用Log Analyticsを作成し、作成した検証用ユーザーに共同作成者ロールを割り当て
- サブスクリプションのアクティビティログをテスト用Log Analyticsへ出力するように設定
- 検証用ユーザーでサインインし、テスト用ログアラートを作成。アクティビティログに何か出たらアラートがあがるように指定。IDの設定は「既定」を選択する。その他は既定値とする
- ログアラート設定後、リソースグループを作ったり消したりしてアクティビティログを発生させ、ログアラートが発報されることを確認する
- 検証用ユーザに割り当てていた共同作成者ロールを削除
- 再びアクティビティログを発生させ、ログアラートが発報されるか確認する
- 検証用ユーザーを削除する
- 再びアクティビティログを発生させ、ログアラートが発報されるか確認する
結果
権限を剥奪した場合も、設定したユーザー自体を削除した場合もアラートは発報されました。
どうやらログアラートを設定したタイミングでLog Analyticsに対する適切な権限があれば、そのあと権限が奪われても問題ないようです。
Azure Data Explorer または Resource Graphにクエリを送信する場合は、マネージドIDが必須のようなので、それらを使ってアラートを設定する場合に活用する設定なのではないかと推測します。