如何使用日志审计查看MaxCompute执行过哪些操作
这篇文章主要为大家展示了“如何使用日志审计查看MaxCompute执行过哪些操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用日志审计查看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;--统计一天每个用户使用的cuselect owner_name,SUM(cost_cpu) from information_Schema.TASKS_HISTORY where ds = 20200814 group by owner_id,owner_name;
如何使用ActionTrail进行搜索
我们列举几个简单的场景进行搜索
首先登录到ActionTrail控制台的历史事件查询页面选择要查看的地域。
如上图 事件类型:所有类型,时间:选择对应的时间 产品类型:MaxCompute
查看子账号做过什么
用户名:子账号的名字
查看当前任务是被谁杀掉的
事件名称:jobChange 资源名称:instanceId(具体的任务id)
查看表做过什么操作
资源名称:表名字
查看表被谁读取过
事件名称:ReadTableData 资源名称:表名字
查看表被谁删除:
事件名称:DropTable 资源名称:表名字
查看表被谁下载过
事件名称:DownloadTable(直接使用tunnel download 表名下载) InstanceTunnel(通过instanceuid 下载)资源名称:表名字
查看表什么时间上传的数据
事件名称:UploadTable(包括数据集成)资源名称:表名字
查看函数创建
事件名称:CreateFunction 资源名称:函数名字
查看资源创建事件
事件名称:CreateResource 资源名称:资源名字
查看创建角色
事件名称:CreateRole 资源名称:角色名称
查看授权事件
事件名称:GrantRole 资源名称:角色名称
其中source_ip字段:通过客户端或者sdk执行的是本机IP。通过DataWorks执行的不是本机IP
correlation_id字段:对应的instanceid,我们可以到对应的项目执行 wait instanceid查看任务的执行具体情况
以上是“如何使用日志审计查看MaxCompute执行过哪些操作”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!