本文概述了过去一年 SLS 日志审计的技术发展。

SLS 日志审计介绍

什么是日志审计

日志审计服务是阿里云日志服务 SLS 平台下的一款应用,它在继承了日志服务 SLS 的全部功能以外,还有强大的多账号管理及跨地域采集功能,支持通过资源目录 (Resource Directory) 的方式有组织性地统一管理和记录多账号下云产品实例的日志信息,可以便于用户进行统一分析,问题排查,回溯复盘等操作。

云产品覆盖范围

日志审计 APP 可以自动化、中心化地采集云产品日志并进行审计,其服务覆盖基础(操作审计、k8s)、存储(OSS、NAS)、网络(SLB、ALB、VPC、API网关)、数据库(RDS、PolarDB-X1.0,PolarDB)、安全(WAF、DDOS、SAS、CloudFW)等产品,还支持审计所需的存储、查询及信息汇总等功能。日志审计具体支持的云产品和日志类型,可以参考日志审计服务概述。

为什么要进行日志审计

日志审计是法律刚性需求,是客户安全合规依赖的基础,是安全防护的重要一环。《网络安全法》第二十一条第三小节中明确规定,“采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月”。日志审计支持自定义数据保存 180 天,甚至数据可以永久保存,并且日志数据可以被溯源,无法进行篡改。企业用户可以使用日志审计服务提供的审计功能,构建并输出合规的审计信息。对于日志审计和网络安全以及法律法规之间的关系,之前已经有多篇文章进行了较为完整的介绍,这里不做赘述。如想了解进一步细节,可以参阅文档(附1)。

架构大图

日志审计整体架构主要具备以下基本功能:

  • 日志的自动化管理,脱离手工维护;
  • 丰富的云产品日志类型生态(具体的云产品资源及地域覆盖可以参阅附2)。

此外,日志审计还具备以下功能特性和优势:

  • 实例的自动发现和日志的自动采集,打开云产品日志采集开关后,后续如果新增云产品实例,只要满足采集条件(如用户自定义采集策略限制)日志审计将会自动地将云产品实例对应的日志采集进来,无需用户手动操作。
  • 跨区域中心化能力,日志审计可选日志 Region 化存储,支持通过自动创建数据加工将日志存储到同一中心区域,在该中心 project 下进行统一查询分析,报表展示、告警配置等。
  • 日志审计支持跨账号采集云产品日志,对于多账号用户来说,可以将不同账号下的日志采集到同一中心账号下,其他账号作为该中心账号的成员账号,实现跨账号的日志汇总和管理。
  • 日志审计还支持丰富的内置报表、内置告警规则、威胁情报等功能。
  • 日志审计支持通过 Terraform 的方式进行采集编排和管理,具体参见文档(附3)。

功能技术演进概述

在过去的一年,我们主要从以下几个方面进行日志审计的功能演进:

账号鉴权管理升级

日志审计是日志服务 SLS 平台下为数不多支持跨账号采集云产品日志的应用。过去一年,根据头部客户的需求,我们在日志审计账号鉴权和多账号管理方面做出了具体改进增强,进一步提高了用户的易用性和便捷性。

日志 SQL Server Database Transaction Log File 日志审计_其他

云产品渠道扩充

过去一年,日志审计进一步集成了 4 种云产品共 6 种日志类型,其日志类型包括数据库类、网络类、安全类,极大丰富了日志审计的采集生态。

日志 SQL Server Database Transaction Log File 日志审计_错误日志_02

存储优化

针对日志数据的存储优化,日志审计主要做了两方面工作,一方面支持智能冷热分层存储,另一方面提供用户更多中心存储区域的选择。日志审计集成了冷热分层存储功能,智能冷热分层存储主要针对存储周期长且查询频率低的场景,用户可以在日志审计控制台下根据等保或其他存储要求自定义地设置存储天数以及冷热存储配比,可以帮助用户进一步降低长期存储成本。

日志 SQL Server Database Transaction Log File 日志审计_错误日志_03

此外,日志审计新拓展了四个中心化区域,以适应不同用户对于数据本地中心化存储及统一查询的需求。

过去一年功能技术演进详情

下面,我将针对每个功能演进模块做出具体的介绍和解析。

中心账号-鉴权方式升级

原日志审计中心账号鉴权主要通过 AK 辅助鉴权或用户自定义授权方式,鉴权通过后,日志审计会为用户创建自定义角色 sls-audit-service-monitor,并对该角色授予以下权限:

  • ReadOnlyAccess
  • AliyunLogAuditServiceMonitorAccess

原中心账号鉴权方式操作比较复杂,需要经过多个操作步骤,对于用户来说存在一定的使用门槛。日志审计中心账号鉴权升级后,用户在日志审计界面点击“立即开启”后,用户将被自动创建服务管理角色 AliyunServiceRoleForSLSAudit,通过该角色,中心账号可以自动采集日志审计所有支持的云产品类型,并进行审计 project 以及审计 App 的配置管理。

日志 SQL Server Database Transaction Log File 日志审计_错误日志_04

升级后的鉴权方式相较之前有以下几点提升:

  • 更安全:无需用户手动输入 ak,无需手动授权操作。
  • 更简单:AliyunServiceRoleForSLSAudit 及其对应的角色权限侧 AliyunServiceRolePolicyForSLSAudit 均为系统创建,在日志审计下用户仅需点击立即开启。
  • 更通用:对于新开通日志服务的账号,AliyunServiceRoleForSLSAudit 将自动创建,该角色还是各种 SLS CloudLens 类云产品的开通前提,用户仅需操作一次,无需重复操作。

其他账号-新增资源目录集成

日志审计的多账号管理之前已经支持了自定义鉴权管理模式,现在这种多账号的管理模式日志审计依然支持。

随着越来越多的客户使用阿里云资源目录管理多账号,日志审计在原有的自定义鉴权模式基础上,过去一年又集成了新的多账号管理方式:资源目录管理。资源目录可以帮助用户在云上构建企业业务组织关系,用户可以通过管理员账号或者委派管理员账号将企业内其他阿里云账号添加为成员,从而实现跨阿里云账号采集云产品日志。

日志 SQL Server Database Transaction Log File 日志审计_阿里云_05

  • 多账号-新增资源目录集成模式

基于资源管理对企业组织账号的组织管理信赖,用户在日志审计多账号配置中可以选择资源目录鉴权方式,可以配置“全员”和“自定义”两种方式进行日志审计跨账号采集。

日志 SQL Server Database Transaction Log File 日志审计_阿里云_06

用户在使用资源目录的场景下,在日志审计多账号配置中采用资源目录管理模式,可以进一步提高跨账号管理的安全性和易用性,就操作复杂度而言,使用日志审计资源目录模式进行跨账号采集云产品日志也更加方便。

日志 SQL Server Database Transaction Log File 日志审计_错误日志_07

覆盖更多云产品日志类型的接入

在过去一年中,日志审计与更多云产品集成,持续覆盖了更多审计类日志的跨账号、中心化接入与审计支持。其中主要集成了 4 类云产品共 6 种日志类型,下面将展开具体介绍。

  • 网络类

日志审计的网络类日志类型接入主要新增了两种非常重要的审计类日志:VPC 流日志和 ALB 七层访问日志。

VPC 流日志可以记录 VPC 网络中弹性网卡 ENI 传入和传出的流量信息,帮助用户检查访问控制规则、监控网络流量和排查网络故障。日志审计开启 VPC 流日志开关后,会对满足采集策略的 VPC 实例创建流日志,能够捕获对应 VPC 实例中所有弹性网卡的流量,包括在开启流日志功能后新建的弹性网卡。流日志功能捕获的流量信息会以流日志记录的方式写入日志审计 Project 中。

ALB 是阿里云推出的专门面向 HTTP、HTTPS 和 QUIC 等应用层负载场景的负载均衡服务,具备处理复杂业务路由的能力,是阿里云官方提供的云原生 Ingress 网关。ALB 访问日志可以记录应用层访问请求的具体客户端请求信息、proxy 收到报文信息、记录的端口信息等访问详情。在日志审计中,ALB 同样支持实例粒度的采集策略,用户可以进行自定义的采集设置。

由于网络类日志流量较大,既支持区域化存储,也支持同步到中心,其中心化同步能力如下,更多日志审计下网络类实践可以参阅(附4)。

日志 SQL Server Database Transaction Log File 日志审计_自定义_08

  • 安全类

日志审计安全类日志类型接入在过去一年主要新增了 DDoS 高防国际版和 DDoS 原生防护日志的接入支持。

DDoS 原生防护通过在阿里云机房出口处建设 DDoS 攻击检测及清洗系统,直接将防御能力加载到云产品上,以被动清洗为主、主动压制为辅的方式,实现 DDoS 攻击防护。

DDoS 高防通过 DNS 解析和 IP 直接指向引流到阿里云高防网络机房,在高防清洗中心清洗过滤,抵御流量型和资源耗费型攻击。通过高防清洗中心部署在国内和国际可以将 DDoS 高防日志分为新 BGP 版和国际版。

下图是日志审计中内置的高防运营中心报表的示意

  • 数据库类

日志审计支持 RDS/PolarDB 审计日志、慢日志和性能日志的采集,其支持地域和版本信息可查看审计云产品覆盖。现在日志审计又支持了 RDS Mysql 和 PolarDB Mysql错误日志的采集,进一步丰富了日志审计数据库类云产品日志类型的接入覆盖。

错误日志主要用于记录服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况。日志审计对 RDS 和 PolarDB 的错误日志采集同样支持实例粒度的采集策略,支持用户通过配置采集策略的方式,只采集满足条件的错误日志,比如用户只想采集中心账号 C 的错误日志,不需要采集其他成员账号 A、B 的错误日志,或者用户只需要采集 tag.env 为生产环境的 RDS 实例,不需要采集 tag.env 为测试环境的 RDS 实例错误日志,都可以通过采集策略进行配置。下图为 PolarDB 某一具体实例错误日志的日志示例:

日志 SQL Server Database Transaction Log File 日志审计_阿里云_09

存储优化-冷热智能存储

SLS 提供智能冷热分层存储功能,热数据至少需要保存 30 天。相对热存储而言,冷存储成本更低,其数据的查询与分析性能有所降低,其余功能例如告警、可视化、加工、投递等不受影响。

日志审计更好地集成了冷热分层存储功能,使得用户可以在一个界面中统一管理所有审计下云产品日志的冷存开关及天数(30,TTL),该功能主要针对存储周期长且查询频率低的用户使用场景,开启冷存开关可以极大帮助用户优化存储成本,进一步减轻用户使用日志审计的价格顾虑。

日志 SQL Server Database Transaction Log File 日志审计_自定义_10

存储优化-更多中心地域选择

自动的中心化存储是日志审计一个非常重要的功能特点。中心化存储主要通过 SLS 数据加工实现,对于云产品日志来说,中心化存储主要出于以下目的:提供统一的查询分析入口,将不同账号不同地域下日志采集信息汇总起来,进行数据汇总和集中分析,从而完成进一步的分析、可视化、告警、二次开发等。

举个最典型的 OSS 访问日志的例子,用户在 cn-shanghai 和 ap-southeast-1 地域下 oss 访问日志将会分别采集到slsaudit-region-日志 SQL Server Database Transaction Log File 日志审计_其他_11{uid}-ap-southeast-1 的project 下的 oss_log 中,通过打开日志审计的“同步到中心”开关,用户可以在一个 center project 下进行日志汇总查询,并且日志内容还会根据 region 字段区分日志来源,方便用户溯源。

在原有日志审计众多中心化区域选择的基础上,过去一年,日志审计新增了国内(青岛+香港)两个中心区域,国外(印尼+德国)两个中心区域选择,支持更多国内本地化和海外客户的使用场景。

日志 SQL Server Database Transaction Log File 日志审计_日志审计_12

总结与思考

在接下来的发展中,日志审计主要将从两个方向进行持续演进:

  • 同 SLS 的统一接入平台进行深度融合,持续提供数据链路传输与服务的稳定性。
  • 根据客户需要,持续加强更多数据类型的覆盖,并集成 SLS 中台能力,进一步降低审计场景的使用门槛。