📊

Azure Resource Graph から変更履歴を検索する

2024/03/21に公開

はじめに

Azure Resource Graph では変更履歴を取得することができます。最近こちらでアクター (操作者) も取得できるようになったということで、いくつか試してみようと思います。
https://azure.microsoft.com/ja-jp/updates/public-preview-change-actor/
https://learn.microsoft.com/ja-jp/azure/governance/resource-graph/how-to/get-resource-changes?tabs=azure-cli

概要

該当のテーブルは以下の 2 つです。14 日間分が保存されます。

テーブル名 説明
resourcechanges resource テーブルにあるリソースへの変更
resourcecontainerchanges resourcecontainer テーブル (サブスクリプション、管理グループなど) への変更

※ ドキュメントには healthresources も対象に含まれるとありますが、どのようなケースかよく分からず。

Azure Resource Graph エクスプローラーで検索

resourcechanges の変更は以下のように確認できます。変更内容だけでなく、操作者の情報まで取得できています。

properties
{
    "targetResourceType": "microsoft.sql/servers",
    "changeAttributes": {
        "previousResourceSnapshotId": "xxxxxxxxxxxx",
        "newResourceSnapshotId": "xxxxxxxxxxxxxx",
        "correlationId": "xxxxxxxxxxxxxx",
        "changedByType": "User",
        "changesCount": 1,
        "clientType": "Azure Portal",
        "operation": "Microsoft.Sql/servers/write",
        "changedBy": "user@contoso.com",
        "timestamp": "2024-03-15T03:00:55.9+00:00"
    },
    "targetResourceId": "/subscriptions/xxxxxxxxxxxx/resourceGroups/rg-database/providers/Microsoft.Sql/servers/sqlsv-test-jpe-001",
    "changeType": "Update",
    "changes": {
        "properties.publicNetworkAccess": {
            "propertyChangeType": "Update",
            "changeCategory": "User",
            "previousValue": "Enabled",
            "newValue": "Disabled"
        }
    }
}

resourcecontainerchanges には管理グループの変更が記録されていました。このログは Azure ポータルからの新規作成ですが、操作者は Unspecified になってしまいました。

まとめ

監査ログである Azure アクティビティログでは操作前後のパラメータ変更を確認することが難しかったですが、今回のAzure Resource Graph から変更履歴を活用することでこれらの課題を解消できそうです。また、何かあった場合の追跡だけではなく、Azure ブックを利用した可視化や Azure Monitor と組み合わせたアラート通知などの活用を検討できるかと思います。

Microsoft (有志)

Discussion