Azure DevOpsアドベントカレンダー7日目の記事です。
Entraに接続しているAzure DevOpsでは監査ログのストリーム出力できます。Splunk, Azure Monitor, Event Gridのいずれかです。今回はAzure Monitorに出力してみましょう。
まず、Log Analytics workspaceを作って、AgentのWorkspace IDと、PrimaryもしくはSecondaryキーのいずれかをメモります。
Entraに接続しているAzure DevOpsであればAuditメニューが追加されています。Streams
タブを選択して、New Stream
をクリック。
Azure Monitor Logs
を選びます。これを使うのはSentinelとの連携も考えているからですが、それはまた後程…。
Workspace IDとキーを指定すると、接続され、監査ログがストリーム出力されはじめます。
例えばこれで「何かを削除した」というイベントを監査したいとすると、こんなクエリを書いてみます。
AzureDevOpsAuditing | where OperationName contains("Deleted")
ちなみにこれを書くと「Containsはコストが高いから使わないことをお勧めします」という警告が出る親切設計です。デモなのでこうしていますが、実運用するときは注意。
実行するとこんな風にGitレポジトリが削除されたという結果が出力されます。あとはAzure Monitorの範囲ですね。New alert rule
から監査したいイベント発生時に通知するとかしておけばいいでしょう。レポジトリもしくはプロジェクトの作成、削除、fork、デプロイなどが監査イベントとしてみたいところでしょうかね。
活用してみてください。