Topics

审计日志(其一):Web服务中审计日志的思路 ― 需求整理基础篇

  • column

投标时常见的“监查日志”,到底需要记录什么?

您好,我是Liberogic的CTO大冢。

参与网站或Web服务的投标时,需求中经常会写明“需要能够获取监查日志”“需要在一定期间内保存日志”。

我们会根据这些需求选择服务、变更套餐,或者添加日志保存选项。但“监查日志”究竟指的是什么呢?

本文将对这一点稍作梳理。

日志的种类多种多样

统称为日志,实际上也有好几种类型。

日志的类型

主要记录内容

主要用途

访问日志

URL、时间、状态、连接来源等

用于分析使用情况和排查故障

应用日志

处理的开始与结束、业务事件

运行确认与缺陷排查

错误日志

异常、非正常终止、错误内容

确定故障原因

审计日志

谁在何时执行了什么操作

内部控制与证据保全

安全日志

身份验证、访问拒绝、攻击检测

事件调查

这些都属于日志,但记录的内容和使用目的各不相同。
例如,记录管理员变更用户权限、工作人员发布内容等操作的日志,通常被称为审计日志。

故障调查与证据保全应分开考虑

日志的用途大致可分为两类。

一类是在发生故障或问题时,用于查明原因的日志。

在调查“昨天提交的表单没有收到”“某个时段曾出现错误”等咨询时使用。

另一个是操作日志,用于事后确认实际发生过的操作。

这类记录包括“是谁更改了设置”“内容是何时发布的”“在管理界面中执行了哪些操作”等信息。

比较项目

故障排查与改进用

审计与证据留存用

主要使用者

开发人员、运维人员

审计人员、安全负责人

常用查询期间

最近几天至几周

数月至数年

重视的要点

检索便捷性、信息量

不缺失、长期留存

访问频率

日常确认

需要时调取

这两者的保存期限和使用方式各不相同。

如果要将所有日志长期保存在可检索的状态下,费用也会随之增加。反之,如果只保留最近的日志,审计或事件调查所需的证据就可能丢失。

从一开始就将两者分开考虑,设计会更加合理、可持续。

将“需要审计日志”落实为需求

仅凭“审计日志”这一说法,无法确定具体的架构。

我们首先确认目的,然后将其落实为所需的记录内容与保存方式。

“能够获取日志”还远远不够

如果云服务的管理界面上显示了日志,人们很容易认为“日志已经能够获取”。

但是,不同服务保存的内容和期限各不相同。

  • 错误会被保留,但管理员的操作不会被保留
  • 可以在管理界面中查看,但会在一定期限后被删除
  • 若要转发至外部,需要更高级别的套餐
  • 应用程序自身的操作,需要由我们自行记录

“谁更改了商品信息”“处理了哪些申请数据”之类的业务记录,仅靠云服务未必能够完整掌握。

如果招标需求中写明了“审计日志”,至少有以下几点需要提前确认。

需求梳理检查清单

✅️ 需要记录哪些操作
✅️ 是用户的操作还是管理员的操作
✅️ 目的是故障排查还是审计
✅️ 需要保存多长时间
✅️ 是否需要经常检索
✅️ 哪些人可以查看日志
✅️ 是否可能包含个人信息

如果在这些问题尚不明确的情况下就决定服务或方案,可能会导致架构规模超出实际需要,或者反过来,该保留的日志却没有留下。

现代Web服务中,日志也会分散存储

在传统的Web服务器上,只需将日志文件保存在服务器内,思路相对直观易懂。

如今,越来越多的Web服务会组合使用CDN、托管、数据库、Headless CMS、邮件发送等多种云服务来构建。

Liberogic 也会根据项目需要,除 AWS 之外,还使用 Cloudflare、Vercel、Supabase、microCMS、Kuroco 等服务。

由于日志也分别保存在各项服务中,因此需要从整个系统的角度来审视“最终究竟留下了哪些记录”。

首先确认目的

一听到“需要审计日志”,很多人会觉得必须引入某种特殊服务。

当然,根据需求不同,可能需要外部日志管理服务或长期保存机制。但也并不是从一开始就要准备庞大的架构。

首先需要明确:记录什么、为什么记录,以及要保留多长时间。

在理清这些之后,将可由标准功能满足的部分与需要额外搭建机制的部分区分开来,才是较为务实的做法。

下一篇,我们将简要比较 AWS、Cloudflare、Vercel、Supabase 以及 Headless CMS 等我们经常使用的服务会留下哪些日志。

那就先到这里。

撰写本文的人

Liberogic技术部门的中坚力量。每当听到“要是有这样的东西就好了,要是能有就方便了”这样的想法,便凭借与生俱来的智慧加以延伸,转眼间就将其实现。沟通能力出众,深受客户喜爱,是本公司的宝贝,同时也是十足的爱猫人士。

大塚 翔

董事 CTO / 首席工程师 / 合同会社猫穴 代表 / 外表不必要地显年轻

查看此员工的文章

以稳健的团队体制和迅速的应对能力为傲

Liberogic 的资深团队积极推动项目,因此深受客户好评。
我们致力于合理配置项目经理与总监,确保整个项目顺利推进。 我们采用按需投入的方式,避免不必要的全员投入导致成本增加,合理分配资源、人尽其才。同时,我们在掌握业务内容、制作与提交报价方面的速度也广受好评。

※ 当社不积极开展 SES 类驻场业务,敬请谅解。

您可以使用 Slack、Teams、Redmine、Backlog、Asana、Jira、Notion、Google Workspace、Zoom、Webex 等几乎所有主流的项目管理工具和聊天工具。

Web 方面的烦恼,欢迎随时咨询。

案例分析