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

背景

在很多的数据开发场景下,我们需要记录每个子账户都做了什么,在哪个项目执行了具体的操作,出问题了需要审计是谁干的,什么时间,怎么操作的。例如,有人恶意删除数据、有人将数据下载下来、谁上传的资源、有人给没有权限的人添加了权限、 等等。这些动作需要管理、跟踪。本文通过如何在ActionTrail控制台进行搜索来跟踪我们在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;
--统计一天每个用户使用的cu
select owner_name,SUM(cost_cpu) from information_Schema.TASKS_HISTORY where   ds = 20200814 group by owner_id,owner_name;

如何使用ActionTrail进行搜索

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

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

如上图 事件类型:所有类型,时间:选择对应的时间 产品类型:MaxCompute
事件名称:对应的文档名称https://help.aliyun.com/document_detail/164657.html?spm=a2c4g.11186623.6.972.232411db3BAG7v
使用日志审计查看MaxCompute执行过哪些操作
查看子账号做过什么
用户名:子账号的名字
查看当前任务是被谁杀掉的
事件名称:jobChange 资源名称:instanceId(具体的任务id)
查看表做过什么操作
资源名称:表名字
查看表被谁读取过
事件名称:ReadTableData 资源名称:表名字
查看表被谁删除:
事件名称:DropTable 资源名称:表名字
查看表被谁下载过
事件名称:DownloadTable(直接使用tunnel download 表名下载) InstanceTunnel(通过instanceuid 下载)资源名称:表名字
查看表什么时间上传的数据
事件名称:UploadTable(包括数据集成)资源名称:表名字
查看函数创建
事件名称:CreateFunction 资源名称:函数名字
查看资源创建事件
事件名称:CreateResource 资源名称:资源名字
查看创建角色
事件名称:CreateRole 资源名称:角色名称
查看授权事件
事件名称:GrantRole 资源名称:角色名称
对应查询结果的字段说明参考:
https://help.aliyun.com/document_detail/164657.html?spm=a2c4g.11186623.6.972.232411db3BAG7v
其中source_ip字段:通过客户端或者sdk执行的是本机IP。通过DataWorks执行的不是本机IP
correlation_id字段:对应的instanceid,我们可以到对应的项目执行 wait instanceid查看任务的执行具体情况

大家如果对MaxCompute有更多咨询或者建议,欢迎扫码加入 MaxCompute开发者社区钉钉群,或点击链接 申请加入。
使用日志审计查看MaxCompute执行过哪些操作

上一篇:Oracle存储过程迁移ODPS-00(专有云):Oracle - ODPS数据类型转换


下一篇:使用Azkaban调度MaxCompute