0698-6.2.0-Navigator審計日誌查看對應用戶的操作
- 2019 年 10 月 4 日
- 筆記
文檔編寫目的
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為:
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/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格式。