|使用日志审计查看MaxCompute执行过哪些操作

|使用日志审计查看MaxCompute执行过哪些操作

文章图片


简介:MaxCompute完整地记录用户的各项操作行为 , 会自动将操作日志实时投递到ActionTrail中 , ActionTrail针对作业(Instance)、表(Table)、函数(Function)、资源(Resource)、用户(User)、角色(Role)和授权(Privilege)等事件的多种操作行为进行记录 。
背景
在很多的数据开发场景下 , 我们需要记录每个子账户都做了什么 , 在哪个项目执行了具体的操作 , 出问题了需要审计是谁干的 , 什么时间 , 怎么操作的 。 例如 , 有人恶意删除数据、有人将数据下载下来、谁上传的资源、有人给没有权限的人添加了权限、 等等 。 这些动作需要管理、跟踪 。 本文通过如何在ActionTrail控制台进行搜索来跟踪我们在MaxCompute中执行的动作 。
【|使用日志审计查看MaxCompute执行过哪些操作】日志审计和Informattion_Schema(元数据)对比
1.日志审计记录的是用户的各项操作行为

2.日志审计记录的是当前账号下的所有项目 , Informattion_Schema记录的是当前project

3.如果我们要查看用户的行为信息可以去日志审计查看 , 如果查询一些静态信息可以去元数据查看比如:表的拥有者 , 资源的拥有者
4.Informattion_Schema中的TASKS_HISTORY表可以记录已完成的作业历史 , 但是没有对应的事件名称不方便查找 。 比如查找删除表 , 我们可以直接去ActionTrail直接搜索DropTable 就可以查到5.MaxCompute记录用户的各项操作行为是实时投递到ActionTrail中的 , 操作记录会在10分钟内被操作审计追踪并记录 。 操作记录保存的是180天的记录 , 目前ActionTrail支持搜索 , 如果需要对日志进行更精确的分析和保存更长的时间 , 可以投递到oss上或这个sls上同步到MaxCompute进行分析6.如果我们要统计一天当中耗费最高的作业可以去Informattion_Schema中的task_histoy表中查看
--统计一天耗费cu最大的前十个任务信息select * from information_Schema.TASKS_HISTORY where   ds = 20200812 order by cost_cpu limit 10;--统计一天每个用户使用的cuselect owner_nameSUM(cost_cpu) from information_Schema.TASKS_HISTORY where   ds = 20200814 group by owner_idowner_name;

如何使用ActionTrail进行搜索
我们列举几个简单的场景进行搜索首先登录到ActionTrail控制台的历史事件查询页面选择要查看的地域 。


如上图 事件类型:所有类型 , 时间:选择对应的时间 产品类型:MaxCompute事件名称:对应的文档名称


查看子账号做过什么用户名:子账号的名字
查看当前任务是被谁杀掉的事件名称:jobChange

资源名称:instanceId(具体的任务id)查看表做过什么
操作资源名称:表名字查看表被谁读取过
事件名称:ReadTableData

资源名称:表名字查看表被谁删除:
事件名称:DropTable
资源名称:表名字查看表被谁下载过
事件名称:DownloadTable(直接使用tunnel download 表名下载)
InstanceTunnel(通过instanceuid 下载)
资源名称:表名字查看表什么时间上传的数据
事件名称:UploadTable(包括数据集成)
资源名称:表名字查看函数创建
事件名称:CreateFunction

资源名称:函数名字查看资源创建事件
事件名称:CreateResource

资源名称:资源名字查看创建角色事件名称:CreateRole
资源名称:角色名称查看授权事件事件名称:GrantRole

资源名称:角色名称对应查询结果的字段说明参考其中source_ip
字段:通过客户端或者sdk执行的是本机IP 。
通过DataWorks执行的不是本机IPcorrelation_id字段:对应的instanceid我们可以到对应的项目执行 wait instanceid查看任务的执行具体情况
作者:龙青云
本文为阿里云原创内容 , 未经允许不得转载 。


    推荐阅读