基于Navigator的审计日志验证一些问题

5.1 HIVE/HUE查询的数据量信息的记录

例如返回行数(1000行),返回数据量(100M)等类似信息

  • 在beeline命令行执行语句select * from web_returns limit 100;



hive 任务日志查询 hive运行日志_用户操作日志设计


  • 在Navigator中查看审计日志,只能看到执行的语句,并没有返回结果的信息


hive 任务日志查询 hive运行日志_hive 查看 job 日志_02


  • 在beeline命令行执行语句select count(*) from web_returns;


hive 任务日志查询 hive运行日志_用户操作日志设计_03


  • 查看审计日志,同样的也只能查看到执行的语句,而无法查看到返回的数据信息


hive 任务日志查询 hive运行日志_用户操作日志设计_04


在Hue中使用Hive查询


hive 任务日志查询 hive运行日志_Hive_05


查看操作对应的审计日志,与在beeline命令行操作的审计日志一致


hive 任务日志查询 hive运行日志_用户操作日志设计_06


由上面的测试可以得知,在Navigator的审计日志中无法获取Hive中查询返回的数据的详细信息,只能看到查询执行的语句以及涉及的HDFS上的目录

5.2 是否有HDFS文件操作(如上传文件),涉及到的文件的大小的记录

是否能够在日志中查看操作文件的大小

  • 准备一个测试用的文件,大小为1.1G,上传到HDFS上


hive 任务日志查询 hive运行日志_Hive_07


  • 在Navigator中查看审计日志,无法查看到操作涉及到的文件的详细信息


hive 任务日志查询 hive运行日志_linux audit 日志 查看用户_08


审计日志中只记录了对文件的操作,涉及到的目录,并没有记录文件的大小等详细信息

5.3 对于越权访问是否记录

比如A用户不能访问HDFS中的security.txt,从而导致操作失败

  • 使用用户test_hdfs_audit用户查看Hive的数据目录,没有权限,查看失败


hive 任务日志查询 hive运行日志_linux audit 日志 查看用户_09


  • 在Navigator中查看对应的审计日志,可以看到这一步操作被记录了下来


hive 任务日志查询 hive运行日志_hive 查看 job 日志_10


在审计日志中用户越权访问没有权限访问的文件,这个失败的操作会被记录下来,但是无法看到该用户越权访问的目录或文件的详细信息,只能看到要访问的文件或目录名。

5.4 对于HIVE/HUE,用户越权操作是否记录

比如仅有查询权限的用户尝试创建表、低权限用户查询没有访问权限数据、查询权限的用户尝试插入数据等,是否有对应的日志

  • 测试只有查询权限的用户建表

授予test_hdfs_audit组查询权限


hive 任务日志查询 hive运行日志_linux audit 日志 查看用户_11


使用test_hdfs_audit用户登陆Hive,然后建表,建表失败


hive 任务日志查询 hive运行日志_linux audit 日志 查看用户_12


查看审计日志,能够看到操作失败的日志


hive 任务日志查询 hive运行日志_Hive_13


  • 测试低权限用户查询没有访问权限的数据

授予test_hdfs_audit用户组对test库的所有权限


hive 任务日志查询 hive运行日志_用户操作日志设计_14


使用test_hdfs_audit用户登陆Hive,然后查询default库下的表web_returns,查询失败,没有权限


hive 任务日志查询 hive运行日志_hive 任务日志查询_15


查看审计日志,能够看到操作失败的日志


hive 任务日志查询 hive运行日志_hive 任务日志查询_16


  • 测试查询权限的用户插入数据

授予test_hdfs_audit用户组查询权限


hive 任务日志查询 hive运行日志_Hive_17


对test表插入数据,插入失败,没有权限


hive 任务日志查询 hive运行日志_用户操作日志设计_18


查看审计日志,能够查看到失败的操作的日志信息


hive 任务日志查询 hive运行日志_hive 任务日志查询_19


由上面的三个测试可以看出,Navigator的审计日志里能够看到越权操作的信息,但是和之前的日志信息一样,无法看出详细的信息,只能看到当前的用户执行的语句失败了,但是并不能看到失败的原因,以及任何关于权限的信息。

5.5 日志的导出

在Navigator的Audits页面可以直接将审计日志导出


hive 任务日志查询 hive运行日志_linux audit 日志 查看用户_20


可以选择JSON和CSV两种格式,对于导出哪些属性也可以选择


hive 任务日志查询 hive运行日志_Hive_21


CSV文件如下:


hive 任务日志查询 hive运行日志_hive 查看 job 日志_22


JSON文件如下:


hive 任务日志查询 hive运行日志_linux audit 日志 查看用户_23


5.6 通过API接口查询审计日志

进入API界面http://cdh1.hadoop.com:7187/api-console/index.html


hive 任务日志查询 hive运行日志_hive 查看 job 日志_24


填入三个必须的参数,参数query用于过滤条件,该参数支持过滤多个条件,使用分号连接,例如service=hive;table=test这样的形式,两个时间参数都是时间的毫秒数


hive 任务日志查询 hive运行日志_用户操作日志设计_25


查询结果如下:


hive 任务日志查询 hive运行日志_用户操作日志设计_26


查询的API为:

http://cdh1.hadoop.com:7187/api/v14/audits?query=service==hive&startTime=1567058400000&endTime=1567072581000&limit=100&offset=0&format=JSON&attachment=false

官网的Navigator API相关介绍如下:

http://fqdn-n.example.com:port/api/vn/operationhttp://fqdn-n.example.com:port/api-console/index.htmlhttp://fqdn-n.example.com:port/api-console/tutorial.html

将路径中的主机名换成安装Navigator服务的主机名即可

总结

1.在Navigator的审计功能中,能够记录CDH集群所有服务的信息,包括一些因为各种原因失败的操作,以及非人工即服务自身进行的操作也会被记录。

2.在文档的整个测试过程看来,除了在Spark中的操作,审计日志看不到详细的操作过程,只能看到对HDFS上的文件进行了操作,但是在其他服务中,整个操作的过程都可以完整的在审计日志中查看到。例如在HDFS上的操作,在审计日志中可以看到查看文件信息、将文件移动到回收站;在Hive上的操作,可以看到审计日志中显示的操作名称,建表、查询、删除表等;在Impala上的操作与Hive中类似,对表的操作都能够在审计日志中看到;在Hue中操作时,可以在审计日志中看到Hue中使用了哪些服务,分别做了什么操作。同时日志也支持API导出为JSON或者CSV格式。