kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Azure DevOpsの監査ログをAzureへ出力する

Azure DevOpsアドベントカレンダー7日目の記事です。

qiita.com

Entraに接続しているAzure DevOpsでは監査ログのストリーム出力できます。Splunk, Azure Monitor, Event Gridのいずれかです。今回はAzure Monitorに出力してみましょう。

learn.microsoft.com

まず、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、デプロイなどが監査イベントとしてみたいところでしょうかね。

活用してみてください。