Apache Ranger項目剖析

背景

數(shù)據(jù)權(quán)限的治理也是一個挺有意思的話題, 你可以把權(quán)限管理放到應(yīng)用層, 當用戶提交查詢到 hive/presto/spark 的時候, 首先進行SQL的檢查, 得知該用戶是否有相關(guān)的權(quán)限. 沒有的話就直接攔截, 不往 database(db) 層傳了. 還有另外一種權(quán)限管理的方法, 就是把權(quán)限管理下放到 db 層. 這樣做的好處很多:

  1. 應(yīng)用層可以隨時換, 不擔心權(quán)限管理問題, 不重復造輪子.
    比如使用 Hue, 報表系統(tǒng), 及其他 BI 工具, 完全不擔心權(quán)限的接入問題, 因為 db 層已經(jīng)嚴格監(jiān)管了每一個查詢.

  2. 支持系統(tǒng)賬號的數(shù)據(jù)計算需求.
    用戶賬號通過應(yīng)用層如 Hue 等與 db 交互完全沒問題, 當公司的一個部門平臺(系統(tǒng)賬號)想要不定期的提取數(shù)據(jù)進行計算, 提供一個應(yīng)用層的接口就會有很多問題. 如應(yīng)用層需要登錄(手機掃碼或短信驗證碼), 就會碰到機器怎么繞過登錄的問題, 以及應(yīng)用層的 nginx 超時的限制, 應(yīng)用層是否提供 thrift 接口等, 都會對系統(tǒng)賬號的數(shù)據(jù)消費/計算造成很多障礙. 而如果系統(tǒng)賬號可以直接訪問 database 層, 以上的問題就都不存在了.

調(diào)研下來, Apache Ranger 和 Apache Sentry 解決的就是 database 層的權(quán)限管理問題.

這兩個項目對比后, 個人更加傾向于使用 Apache Ranger, 后續(xù)可以再詳細介紹一下這兩者的對比.

Ranger 項目結(jié)構(gòu)

以下的項目分析都是基于 Ranger 1.2.0 版本.

Apache Ranger 這個項目在15, 16年還是比較活躍的, 現(xiàn)在看來, 應(yīng)該不會有后續(xù)的版本迭代了, 連現(xiàn)在比較流行的spark和presto的插件都沒有實現(xiàn). Anyway~
Apache Ranger 使用Java開發(fā), 提供了主流大數(shù)據(jù)組件的權(quán)限管理, 如hive, hbase, hdfs, kafka 等. 整體的項目結(jié)構(gòu)劃分很清晰, 每個插件是一個模塊, 公共的功能如 audit(審計) 和 policyengine(權(quán)限決策引擎) 都單獨抽出來作為一個模塊. Ranger 提供了一個admin web服務(wù), 該服務(wù)用來配置和管理各個插件, 存儲 policy(策略) 的一個web server. 各個插件會每隔 30 秒從 Ranger admin web 拉取用戶權(quán)限的信息, 插件本地也有緩存, 所以即使web server掛了, 仍然不影響插件的權(quán)限管控.

Ranger admin web server

找到 [security-admin-web] 模塊, 該模塊包含了web后臺 RESTful API的代碼, dao, biz, view 層; 以及前端的 js 代碼.
通過 maven 打包后, 可在 target/ 目錄下找到 ranger-1.2.0-admin.tar.gz, 解壓后根據(jù)官網(wǎng) https://cwiki.apache.org/confluence/display/RANGER/Ranger+Installation+Guide#RangerInstallationGuide-Steps
的步驟進行安裝即可. 安裝過程中如果 solr 不想配置, 可以不填 audit 部分的配置信息(填了反而出現(xiàn)很多 db grant 方面的權(quán)限問題...). 安裝后 ranger 注冊成為系統(tǒng)服務(wù), 實際是通過把 [embeddedwebserver] 模塊中的 scripts/ranger-admin-initd copy 一份到 /etc/init.d/ 中. 才得以通過 service ranger-admin start 啟動.

Ranger hive plugin

ranger 的 plugin 開發(fā)都差不多, 就以 hive 為例簡單介紹一下. hive 插件的工作原理是以 jar 包的形式, 放到 hive 的 /etc/hive/lib 目錄下, 當 hiveserver 啟動后, 這個 jar 包會出現(xiàn)在 classpath 中, 從而開始產(chǎn)生影響.
值得一提的是, hive 插件只能管控 hiveserver, 不能對metastore 起到管理作用, hive的 cli 也是不在管控范圍內(nèi).
hive plugin通過實現(xiàn) ranger 和 hive 的一些接口, 完成了權(quán)限的管理, 決策引擎最終也會被打入 hive plugin 的 jar 包中. 上面提到過, policyengine 是在 [ranger-plugins-common] 模塊中.

以上是 Apache Ranger 的項目剖析, 以后再慢慢深入, 如怎么開發(fā)一個插件, 脫離ranger, 怎么自己寫權(quán)限插件?

謝謝閱讀, 如有問題, 可以私信~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岭辣,一起剝皮案震驚了整個濱河市匈庭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姑廉,老刑警劉巖政模,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篡腌,死亡現(xiàn)場離奇詭異术吝,居然都是意外死亡,警方通過查閱死者的電腦和手機罩引,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門各吨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人袁铐,你說我怎么就攤上這事绅你。” “怎么了昭躺?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵忌锯,是天一觀的道長。 經(jīng)常有香客問我领炫,道長偶垮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任帝洪,我火速辦了婚禮似舵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘葱峡。我一直安慰自己砚哗,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布砰奕。 她就那樣靜靜地躺著蛛芥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪军援。 梳的紋絲不亂的頭發(fā)上仅淑,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音胸哥,去河邊找鬼涯竟。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的庐船。 我是一名探鬼主播银酬,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼筐钟!你這毒婦竟也來了捡硅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤盗棵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后北发,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纹因,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年琳拨,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞭恰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡狱庇,死狀恐怖惊畏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情密任,我是刑警寧澤颜启,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站浪讳,受9級特大地震影響缰盏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜淹遵,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一口猜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧透揣,春花似錦济炎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侍咱,卻和暖如春恨闪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背放坏。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工咙咽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人淤年。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓钧敞,卻偏偏與公主長得像蜡豹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子溉苛,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容