為了節省瀏覽器前的你的寶貴時間,這篇文集適合以下的讀者:
- 熟悉大數據 Hadoop 生態,具備一定 Shell 腳本能力、Linux 系統知識的;
- 熟悉 Cloudera Manager 本身或有一定了解,希望對 Cloudera Manager 平臺進行安全加固;
- 想借鑒了解 Kerberos、OpenLDAP、TLS/SSL 配置使用的;
.... 的運維、開發、測試同學。
最近從阿里跳槽出來,去了一家互聯網創業公司,第一件事情就是折騰一個具備安全特性的大數據平臺。歷史原因,公司已經部署了免費版本的Cloudera私有云平臺,主要用于基于Impala的類SQL數據查詢,以及基于Kafka+Flume的數據準實時同步。經過調研,驚喜發現Cloudera的免費組件已經包含了以下幾大利器,完全可以滿足現在的需求,遂決定進行實現:
- 基于Kerberos的身份認證:對稱密鑰體系,服務端和客戶端雙向身份認證,可防止
非授信用戶獲得無權訪問的服務或數據
,主要用于防范:- 用戶偽裝,進行危害性操作;
- 服務偽裝,進行危害性操作;
- 數據竊聽,進行回放攻擊獲得服務器的訪問權并終止進程、服務等;
- 基于OpenLDAP的賬戶體系:后續和公司LDAP/AD進行打通,進行統一賬戶管理;
- 基于Hadoop ACLs的HDFS文件系統權限體系:嚴格控制用戶對底層文件的訪問;
- 基于Sentry的細粒度數倉權限體系:數據庫/表/字段粒度的訪問控制,進一步加強數倉數據的安全性;
- Sentry數倉權限和HDFS文件系統ACLs權限同步;
- 對數倉區域的HDFS文件進行強保護,只有超級管理員有權限訪問底層文件,其余用戶只能通過Sentry授權走上層接口訪問數據;
- 對數據庫/表的SELECT權限 映射到 ACLs的READ;
- 對數據庫/表的INSERT權限 映射到 ACLs的WRITE;
- 對數據庫/表的ALL權限 映射到 ACLs的READ_WRITE_EXCUTE;
- 基于TLS/SSL的傳輸層加密;
當然,還有HDFS層面的透明靜態數據加密,這塊因為擔心調研不夠充分,沒有著急上。之前的經驗告訴我,如果沒有做好備份,最壞的情況可能會因為斷電導致的多臺物理機壞盤,造成核心加解密代碼無法讀取,最終丟失數據。
最近,所有的部署都完成了,業務也開始遷移到新的安全平臺,看到國內外沒有任何一篇文章可以完整描述基于Cloudera的企業級安全大數據平臺的整個部署和調試過程
,所以記錄下來,予人玫瑰,手有余香。
本文集主要包括9篇文章,讀者可以按需查閱,因為部分參數配置是前后相關的,所以建議從頭開始連續閱讀:
- 1. 基礎部署,主要介紹如何使用Parcels進行基礎的Cloudera平臺部署;
- 2. Kerberos的整合,主要介紹如何在Cloudera中對Kerberos進行部署;
- 3. 如何訪問Kerberos Enabled服務,主要介紹如何通過CLI、Java Client訪問Kerberos Enabled HDFS;
- 4. OpenLDAP的整合,主要包括LDAP的部署、LDAP集成Kerberos、Impala集成LDAP、HUE集成LDAP;
- 5. Sentry的整合,主要包括Hive集成Sentry、Impala集成Sentry、HUE集成Sentry,HDFS集成Sentry(這塊暫時沒有調通);
- 6. OpenLDAP的整合-通過搜索綁定實現用戶和組的映射,描述了直接綁定和搜索綁定的區別,如何使用搜索綁定實現用戶和組的映射,繼而映射到 Sentry 的角色,達到細粒度的權限控制;
- 7. 傳輸層加密配置 - Clouder Manager 組件傳輸層加密
- 8. 傳輸層加密配置 - Hadoop 組件傳輸層加密
- 9. 如何使用Java Client訪問Kerberos + TLS Enabled Impala服務;
本人是安全小白,歡迎各位安全大牛指導和拍磚。