为解决企业用户操作日志的保存与分析问题,联合ActionTrail+OSS+DLA+Quick BI,阿里云推出审计日志数据分析方案。将ActionTrail的审计日志定时同步到OSS进行长周期(超过90天)保存,利用Data Lake Analytics将日志数据标准化,利用Quick BI进行审计日志的主题式分析,从而完成海量、低成本的审计日志分析。

方案介绍

随着网络信息化的成熟发展、国家网络安全法规的深入落实要求,企业组织也越来越重视操作日志的保存与分析,其中云计算中的资源的操作记录是一类非常重要的日志。

阿里云从用户角度出发,研发了一整套小而精的审计日志数据分析方案。利用阿里云操作审计(ActionTrail)来构建长周期的云上操作审计方案,利用阿里云对象存储服务(Object Storage Service,OSS)来持久存储由ActionTrail实时投递的审计日志,利用阿里云云原生数据湖分析(Data Lake Analytics,DLA)来标准化存储在OSS的审计日志,利用阿里云智能分析套件Quick BI主题式分析审计日志。方案架构图如下所示。架构图

方案优势

  • 操作审计(ActionTrail)帮助您收集用户使用阿里云服务的操作日志,将操作日志同步至阿里云对象存储(OSS)等存储产品中,以Array形式保存。这些存储产品具有极高的可用性,可以通过加密和权限控制,保证审计数据安全。可用于安全分析、资源变更追踪以及合规性审计等场景。
  • OSS低廉的存储成本,能够让您的日志文件存储任意长的时间。同时提供访问日志的存储和查询功能,可满足您对企业数据的监控审计需求。
  • DLA可以将存储的多条日志记录拆分为多条数据,并以JSON格式保存每条操作事件转换为结构化的数据表,使得面向OSS存储空间的数据解析被大大简化,直接实现可视化的标准SQL分析。

操作流程

  1. ActionTrail审计日志:审计日志统一采集

    阿里云构建了操作审计(ActionTrail)产品,为云上客户提供审计日志服务。操作审计 (ActionTrail)会记录您的云账户资源操作,提供操作记录查询。操作审计支持记录的云账户资源请参见支持操作审计的云服务及事件

  2. 审计日志持久化:基于ActionTrail将审计日志投递到OSS Bucket中
    基于ActionTrail的创建跟踪功能,您可以保存更长时间的审计事件。操作审计会将事件保存到您指定的OSS Bucket中。审计日志投递操作请参见创建单账户跟踪
    说明 操作审计默认记录最近90天的操作事件,为了满足等保2.0(网络安全等级保护2.0制度)将操作事件保存180天及以上的要求,您可以创建跟踪持续采集操作事件并投递至对象存储OSS。默认情况下,投递到OSS Bucket的操作事件会永久保存。
  3. 日志标准化:基于DLA实现ActionTrail审计日志标准化

    将ActionTrail的审计日志投递到OSS Bucket后,您会发现日志格式并非HADOOP标准JSON格式且存在大量小文件,非常不便于解析和查看审计日志。 阿里云联合DLA专项定制了ActionTrail日志清洗服务,基于ActionTrail日志清洗功能,可以快速实现ActionTrail日志数据的格式化,而且可以基于DLA实现亿级别数据的快速查询与分析。使用DLA分析存储在Bucket的操作日志请参见使用DLA分析OSS中的事件

  4. 审计日志分析:基于Quick BI实现审计日志自助分析

    在DLA进行日志标准化基础上,利用Quick BI进行审计日志自助分析。 在实际过程中,可以根据日志的来源系统进行业务拆分,形成不同业务分析主题满足各业务审计日志查询要求。连接DLA数据源的操作请参见云数据源Data Lake Analytics

详细请参见阿里云审计日志持久化联合解决方案

相关参考:审计日志格式说明

  • 日志字段说明

    • 示例如下:
      {
        "eventId": "3f411cde-****-477a-aa3b-23d2a3a7c454",
        "eventVersion": 1,
        "sourceIpAddress": "192.0.2.125",
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36,252,SELECT AYP_T_1_.`area` AS T_A0_2_, AYP_T_1_.`city` AS T_A1_3_, AYP_T_1_.`product_type` AS T_A2_4_, SUM(AYP_T_1_.`order_amt`) AS T_A3_5_, SUM(AYP_T_1_.`back_point`) AS T_A4_6_ FROM `quickbi_test`.`company_sales_record_copy` AS AYP_T_1_  GROUP BY AYP_T_1_.`area`, AYP_T_1_.`city`, AYP_T_1_.`product_type`  LIMIT 0, 10000,",
        "eventType": "ApiCall",
        "userIdentity": {
          "sessionContext": {
            "issuer": {
              "accountId": "NA",
              "principalId": "NA"
            }
          },
          "accountId": "190321****719576",
          "principalId": "29271****049850522",
          "type": "ram-user",
          "userName": "zhangsan.zs"
        },
        "serviceName": "quickbi",
        "additionalEventData": {
          "GrantedType": "NA",
          "TargetType": "DASHBOARD",
          "WorkspaceName": "**的测试工作空间",
          "CallerBid": "26842",
          "OperationType": "EXPORT",
          "SourceFlag": "COMMON",
          "TargetName": "交叉表"
        },
        "requestId": "3f411cde-****-477a-aa3b-23d2a3a7c454",
        "eventTime": "2021-07-19T07:23:57Z",
        "isGlobal": true,
        "acsRegion": "cn-hangzhou",
        "eventName": "QuickbiViewLog"
      }
    • 格式说明:
      下表中仅列出涉及的业务字段,其他未列出均为非业务字段。
      字段 名称 说明
      eventId 事件ID 无。
      eventVersion 时间版本
      sourceIpAddress 操作者的IP
      userAgent 操作者的浏览器信息、涉及数据量、涉及数据的查询SQL、导出去向等
      eventType 事件类型
      userIdentity 旧字段,已废弃
      accountId 组织Owner的UID
      principalId 操作者的UID
      type 操作者的账号类型,分为RAM账号和主账号
      userName 操作者的账号名
      serviceName 固定为Quick BI
      GrantedType 授权类型
      TargetType 操作目标类型
      WorkspaceName 工作空间名称
      OperationType 操作类型
      SourceFlag 操作来源 分为登录态或者免登态。
      TargetName 操作对象的名称 无。
      eventTime 操作时间 时间为UTC时间。
      eventName 事件名 无。
  • 复杂字段含义说明

    • 事件名(eventName)
      事件名表示Quick BI中发生的三类行为:功能操作行为、权限管理行为、使用行为。
      • QuickbiFunctionLog功能操作行为日志:包括数据源、数据集、仪表板、电子表格、数据门户等所有的增加、删除、修改等操作。
      • QuickbiPermissionLog表示权限管理行为日志:包括用户组、用户及用户标签、工作空间及空间成员相关的增加、删除、修改等操作;包括仪表板、电子表格、数据门户菜单、数据集行级权限等授权日志。
      • QuickbiViewLog表示数据查看行为日志:每个仪表板、电子表格、数据门户菜单的访问日志和数据导出日志,不包括每个仪表板内条件筛选、查内容输入等日志。
    • 操作类型(operationType)
      事件类型 操作类型(英文) 操作类型(中文)
      QuickbiFunctionLog ADD 增加
      ADD_MEMBER 新增组织成员
      ADD_WORK 添加类目下的作品
      BATCH_ADD 批量添加
      DELETE 删除
      DELETE_FILE 删除数据源文件
      DELETE_WORK 删除类目作品
      COLLECT 收藏
      CANCLE_COLLECT 取消收藏
      MODIFY 修改
      MODIFY_PROPERTIES 修改属性
      MOVE 移除
      MOVE_WORK 移动类目下的作品
      RENAME 重命名
      REMOVE_MEMBER 移除组织成员
      APPLY_ACCESS 申请访问
      APPLY_IMBEDDING_REPORT 申请嵌入报表
      CANCLE_IMBEDDING_REPORT 取消嵌入报表
      STICK 置顶
      UN_STICK 取消置顶
      UPLOAD_FILE 数据源中的上传文件
      UPLOAD_APPEND_FILE 数据源中的上传追加文件
      PREVIEW_SQL 自定义SQL的预览
      CROSS_SPACE_COPY 数据及跨空间复制
      COPY 复制主题模板
      SET_CACHE 数据集设置缓存
      REMOVE_CACHE 数据集清除缓存
      SVAE 保存
      MANUALLY_SEND 手动发送邮件
      PAUSE_SCHEDULE 邮件暂停调度
      RESUME_SCHEDULE 邮件恢复调度
      NOTIFICATION 邮件中的通知
      RENEW_ACCESS_KEY 更新Access Key
      SET_DEFAULT 设为默认
      APPLY_ACCESS 申请加入
      DEBUG 调试
      QuickbiPermissionlog PUBLISH 发布公开
      AGREE_ACCESS 同意访问
      SHARE 分享
      MODIFY_SHARE 修改分享
      CHANGE_ROLE 变更角色
      CANCEL_PUBLIC 取消发布公开
      STOP_SHARE 取消分享
      OPEN_ROW_LEVEL 打开行级权限
      ROW_LEVEL_PERMISSION 行级授权
      CLOSE_ROW_LEVEL 关闭行级权限
      DELIVER 数据填报发布
      REFUSE_ACCESS 拒绝访问
      TRANSFER_OWNER 转让所有者
      MENU_SHOW 菜单展示
      PUBLISH_ONLINE 报表发布上线
      PUBLISH_OFFLINE 报表下线
      DEMO_INSTALL 案例安装
      QuickbiViewLog VIEW 查看
      EXPORT 导出
      DOWNLOAD 自助取数(包括表格上创建的取数任务)
    • 操作目标类型(targetType)
      操作目标类型 操作目标对应的中文名称
      DIRECTORY 文件夹
      DATASOURCE 数据源
      CUBE 数据集
      PAGE 仪表板
      WORKSHEET 工作表
      DASHBOARDOFFLINEQUERY 自助取数
      DATAPRODUCT 数据门户
      MENU 数据门户菜单
      WORKSPACE 工作空间
      USERGROUP 用户组
      USER 用户
      ORGANIZATION 用户组织
      TAG 标签
      USERTAG 用户标签
      DATASERVICE 数据服务API
      INTERGRATECHANNEL 嵌入渠道
      MONITORMETRIC 监控指标
      IDENTIFY_CODE 识别码
      CATEGORY 类目
      MAIL 邮件订阅
      THEME 主题模板
      RESOURCE_PACKAGE 资源包
      CUSTOM_COMPONENT 自定义组件