2、审计日志基础概念:什么是审计日志、与资源日志的区别、常见审计日志类型

老规矩,先搞清楚概念。审计日志这玩意儿,说白了就是 Azure 平台给你的一份“谁在什么时候、通过什么方式、对什么资源做了什么操作”的详细账单。不是钱的那种账单,是行为记录。

我记得第一次接触 Azure 审计日志时,第一反应是:这不就是操作记录吗?没错,但它比普通操作记录严格多了。审计日志的核心价值在于——不可否认性。你想想看,如果有人删了你的生产数据库,你总不能凭感觉去跟老板汇报吧?审计日志就是那个铁证。

什么是审计日志

审计日志是 Azure 平台自动生成的、不可修改的事件记录。它主要回答三个问题:

  • 谁?——哪个用户、服务主体或安全组发起的操作
  • 做了什么?——对哪个资源执行了什么操作(比如创建、更新、删除)
  • 结果如何?——操作是成功还是失败,返回了什么状态码

我个人习惯把审计日志理解为“Azure 的监控摄像头”。它不关心你的虚拟机 CPU 使用率有多高,也不关心你的数据库查询有多慢。它只关心一件事:谁碰了你的云资源。

核心要点:审计日志记录的是控制平面操作(Control Plane Operations),也就是通过 Azure Resource Manager (ARM) 发起的操作。凡是你在 Azure 门户、CLI、PowerShell 或 SDK 里做的配置变更,都会落审计日志。

审计日志与资源日志的区别

很多刚接触 Azure 监控的同事会混淆这两个概念。我曾经也被数据库管理员问过:“你给我的审计日志怎么没有 SQL 查询记录?”——嗯,这就是典型的搞混了。

我把它们的核心区别整理成了表格:

对比维度 审计日志 资源日志
谁产生的 Azure 平台(ARM) 具体的 Azure 资源(如 VM、SQL DB)
记录什么 对资源的操作行为(创建/删除/修改) 资源内部的运行状况(性能/错误/访问)
典型场景 谁删了存储账户、谁改了网络安全规则 CPU 爆了、磁盘满了、SQL 查询超时
存储位置 默认保留 90 天(可通过诊断设置导出) 需要手动配置到 Log Analytics / 存储账户
数据格式 统一的 JSON 结构(AuditLog) 因资源类型而异(比如 VM 的 Syslog、IIS 日志)

一个小技巧:如果想知道某人是不是在半夜偷偷扩容了 VM 规模集,查审计日志。如果想知道扩容后 VM 的性能有没有崩,查资源日志。两者配合使用效果最佳。

举个例子。有一次我被安全团队问:“我们想知道上周三有没有人尝试用错误密码登录虚拟机。”我当时就笑了——审计日志里可没有这个。审计日志只会告诉你“谁启动了虚拟机”或者“谁修改了 NSG 规则”。至于虚拟机内部的登录失败记录,那是资源日志的活儿(Windows 事件日志的 4625 事件)。

常见审计日志类型

Azure 审计日志本质上只有一种——Azure Activity Log(活动日志)。但根据记录的对象范围,我们可以把它分为三层:

  1. 租户级别(Tenant Level):由 Azure Active Directory 审计日志提供。记录的是租户级别的操作,比如创建用户、重置密码、修改目录设置。
  2. 订阅级别(Subscription Level):这就是最常见的 Azure Activity Log。记录当前订阅下所有资源的管理操作,比如创建 VM、删除存储账户、分配角色。
  3. 资源级别(Resource Level):某些 Azure 服务会有自己专属的操作日志,比如 Azure Key Vault 会记录“谁访问了哪个密钥”。这部分严格来说属于资源日志范畴,但因为它记录的是“谁操作了什么”,很多人也会当审计日志用。

我个人的经验是:先盯住订阅级别的 Activity Log,解决了 90% 的审计需求。等你需要细粒度审计时再考虑租户级别和资源级别。

避坑指南:我曾经遇到过一个团队把审计日志设成了 90 天保留期后就不管了。结果半年后出了合规审计,发现日志早就被自动删了。记住,默认保留 90 天,超过这个时间的日志必须通过诊断设置导出到 Log Analytics 或存储账户长期保存。

下面这张图可以帮助你快速理解审计日志在整个 Azure Monitor 体系中的位置,以及与资源日志的关系:

Azure Monitor 日志体系核心概念 审计日志 (Activity Log) 谁操作了 Azure 资源? 控制平面操作 (ARM) 租户级别 订阅级别 资源级别(特殊) 资源日志 (Resource Logs) 资源内部发生了什么? 数据平面操作 (资源内部) VM 性能 SQL 查询 应用错误 核心区别:关注点不同 审计日志 = “谁动了我的云资源” (控制平面) 资源日志 = “我的资源内部运行得怎么样” (数据平面) 两者是互补关系,缺一不可

你看,审计日志和资源日志就像大门的监控录像和屋内的传感器——一个记录谁进出,一个记录室内温度是否异常。你无法用监控录像去替代温度传感器,反过来也一样。

说到这里,你应该对审计日志有了一个清晰的认知了。它不是什么高深莫测的东西,就是 Azure 平台给你的一份“谁在什么时候对什么资源做了什么”的流水账。只不过这份流水账是防篡改、强制记录、且带有时间戳的——这正是审计合规的核心依赖。

嗯,基本概念清楚了,后面几章我们就可以聊点实用的东西了。比如怎么把这些日志捞出来、存起来、以及怎么在出事的时候快速定位问题。