0698-6.2.0-Navigator审计日志查看对应用户的操作

2019-09-16 15:56:16 浏览数 (1)

文档编写目的

CDH集群中有数据管理的组件Cloudera Navigator,本文档主要介绍这个组件的其中一个功能:审计,Cloudera Navigator审计可以从选定的集群服务收集一些事件,用户可以在控制台查看这些审计的日志,可以使用可配置的过滤器进行搜索,快速得到相关的信息,并且可以将这些信息导出为CSV或JSON文件。下面会对审计功能的使用进行一些测试。

测试环境

集群的环境为CDH6.2.0

集群服务器的OS版本为RedHat7.2

1.集群已启用Kerberos

2.集群已安装Sentry

3.Hive的用户模拟已关闭

4.HDFS ACL已开启

创建用户进行操作

1.在OS和Kerberos中创建几个用户用于测试

2.使用不同的用户访问服务,用于测试审计日志中用户的区分

使用test_hdfs_audit用户操作HDFS

  • 登陆Kerberos
  • 上传文件到HDFS
  • 查看文件
  • 删除文件

使用test_hive_audit操作Hive

  • 登陆Kerberos
  • beeline登陆Hive
  • 建表
  • 插入数据
  • 查看数据
  • 删除表

使用test_impala_audit操作Impala

  • 登陆Kerberos
  • 登陆Impala
  • 建表
  • 插入数据
  • 查看数据
  • 删除表

使用test_spark_audit操作spark

  • 登陆Kerberos
  • 登陆Spark
  • 使用Spark

使用test_hue_audit用户登陆Hue进行操作

  • 在Hue中使用Hive

建表

插入数据

查询

  • 在Hue中使用Impala

更新元数据

查询

在Navigator中查看操作的审计日志

查看test_hdfs_audit用户的操作

查看test_hive_audit用户的操作

查看test_impala_audit用户的操作

查看test_spark_audit用户的操作

查看test_hue_audit用户的操作

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

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

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

  • 在beeline命令行执行语句select * from web_returns limit 100;
  • 在Navigator中查看审计日志,只能看到执行的语句,并没有返回结果的信息
  • 在beeline命令行执行语句select count(*) from web_returns;
  • 查看审计日志,同样的也只能查看到执行的语句,而无法查看到返回的数据信息

在Hue中使用Hive查询

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

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

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

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

  • 准备一个测试用的文件,大小为1.1G,上传到HDFS上
  • 在Navigator中查看审计日志,无法查看到操作涉及到的文件的详细信息

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

5.3 对于越权访问是否记录

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

  • 使用用户test_hdfs_audit用户查看Hive的数据目录,没有权限,查看失败
  • 在Navigator中查看对应的审计日志,可以看到这一步操作被记录了下来

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

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

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

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

授予test_hdfs_audit组查询权限

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

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

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

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

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

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

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

授予test_hdfs_audit用户组查询权限

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

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

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

5.5 日志的导出

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

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

CSV文件如下:

JSON文件如下:

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

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

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

查询结果如下:

查询的API为:

代码语言:javascript复制
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相关介绍如下:

代码语言:javascript复制
http://fqdn-n.example.com:port/api/vn/operation
http://fqdn-n.example.com:port/api-console/index.html
http://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格式。

0 人点赞