大數(shù)據(jù)安全體系及Sentry安全授權(quán)管理介紹(轉(zhuǎn)載,筆記).md

[toc]

大數(shù)據(jù)安全體系及Sentry安全授權(quán)管理介紹(五星)

總結(jié)

  • 大數(shù)據(jù)平臺(tái)四層安全:外圍安全(防火墻宪萄、系統(tǒng)登錄認(rèn)證等)艺谆、數(shù)據(jù)安全(存儲(chǔ)安全、傳輸安全拜英、加解密静汤、脫敏)、訪問安全(授權(quán))居凶、訪問行為監(jiān)控(訪問行為審計(jì))
  • 大數(shù)據(jù)平臺(tái)安全歷史
    • Linux簡單用戶授權(quán):開始HDFS授權(quán)體系沿用的是Linux授權(quán)體系虫给,Linux只有所有者句惯、所在組和其他三種權(quán)限克婶,不能滿足細(xì)致的用戶授權(quán)要求董习。
    • HDFS ACL用戶細(xì)粒度授權(quán):后來Hadoop2.4.0中添加了對(duì)HDFS ACL(Access Control Lists)的支持扶认,滿足了用戶授權(quán)要求捧挺,但不能滿足細(xì)粒度的數(shù)據(jù)授權(quán)要求缕粹。
    • Hive表粒度授權(quán):Hiveserver2能夠使用grant/revoke語句來限制用戶對(duì)數(shù)據(jù)庫岛抄、表璃诀、視圖的訪問權(quán)限挨队,行列權(quán)限的控制是通過生成視圖來實(shí)現(xiàn)的谷暮。Hiveserver2的授權(quán)體系是為防止正常用戶誤操作而提供保障機(jī)制;不是為保護(hù)敏感數(shù)據(jù)的安全性而設(shè)計(jì)的盛垦。
    • Sentry列粒度授權(quán):Sentry將Hiveserver2中支持的數(shù)據(jù)對(duì)象從數(shù)據(jù)庫/表/視圖擴(kuò)展到了服務(wù)器湿弦,URI以及列粒度。
  • Sentry授權(quán)方式:權(quán)限-》角色-》用戶組-》用戶
    • 從權(quán)限到角色腾夯,再到用戶組都是通過grant/revoke的SQL語句來授予的颊埃。
    • 從“用戶組”到能夠影響“用戶”是通過Hadoop自身的用戶-組映射來實(shí)現(xiàn)的。Hadoop提供兩種映射:一種是本地服務(wù)器上的Linux/Unix用戶到所在組的映射蝶俱;另一種是通過LDAP實(shí)現(xiàn)的用戶到所屬組的映射
  • Sentry局限:目前Sentry1.4能夠支持的授權(quán)級(jí)別還局限于SELECT班利,INSERT,ALL這三個(gè)級(jí)別榨呆,但后續(xù)版本中已經(jīng)能夠支持到與Hiveserver2現(xiàn)有的水平罗标。Sentry來源于Hiveserver2中的授權(quán)管理模型,但卻不局限于只管理Hive,而希望能管理Impala, Solr等其他需要授權(quán)管理的查詢引擎闯割。

問題導(dǎo)讀

1.大數(shù)據(jù)安全分為哪四個(gè)體系彻消?
2.什么是外圍安全技術(shù)?
3.什么是外圍安全技術(shù)宙拉?
4.Sentry的體系結(jié)構(gòu)中有哪三個(gè)重要的組件宾尚?

大數(shù)據(jù)的安全體系

大數(shù)據(jù)平臺(tái)安全體系的四個(gè)層次說起:外圍安全、數(shù)據(jù)安全鼓黔、訪問安全以及訪問行為監(jiān)控央勒;如下圖所示;


  • 外圍安全:多指傳統(tǒng)意義上提到的網(wǎng)絡(luò)安全技術(shù)澳化,如防火墻崔步,登陸認(rèn)證等;

  • 數(shù)據(jù)安全:從狹義上說包括對(duì)用戶數(shù)據(jù)的加解密缎谷,又可細(xì)分為存儲(chǔ)加密和傳輸加密井濒;還包括用戶數(shù)據(jù)的脫敏,脫敏可以看做“輕量級(jí)”的數(shù)據(jù)加密列林。如某人的生日為“2014-12-12”瑞你,脫敏后的數(shù)據(jù)為“2014-x-x”。數(shù)據(jù)的輪廓依然存在希痴,但已無法精確定位數(shù)值者甲。脫敏的程度越高數(shù)據(jù)可辨認(rèn)度越低。上述的例子還可脫敏為“x-x-x”砌创,相當(dāng)于完全對(duì)外屏蔽該信息虏缸。

  • 訪問安全:主要是對(duì)用戶的授權(quán)進(jìn)行管理。Linux/Unix系統(tǒng)中用戶-組的讀嫩实、寫刽辙、執(zhí)行權(quán)限管理堪稱其中的經(jīng)典模型。HDFS對(duì)這一概念進(jìn)行了擴(kuò)充甲献,形成了更加完備的ACL體系宰缤;另外隨著大數(shù)據(jù)的應(yīng)用的普及和深入,文件內(nèi)部數(shù)據(jù)訪問權(quán)限差異化的需求也變得越來越重要晃洒;

  • 訪問行為監(jiān)控:多指記錄用戶對(duì)系統(tǒng)的訪問行為:如查看哪個(gè)文件慨灭;運(yùn)行了哪些SQL查詢;訪問行為監(jiān)控一方面為了進(jìn)行實(shí)時(shí)報(bào)警球及,迅速處置非法或者危險(xiǎn)的訪問行為缘挑;另一方面為了事后調(diào)查取證,從長期的數(shù)據(jù)訪問行為中分析定位特定的目的桶略。

在這四個(gè)安全的層次中,第三層同上層業(yè)務(wù)的關(guān)系最為直接:應(yīng)用程序的多租戶,分權(quán)限訪問控制都直接依賴這一層的技術(shù)實(shí)現(xiàn)际歼。

HDFS的授權(quán)體系

Hadoop生態(tài)圈長久以來一直沿用Linux/Unix系統(tǒng)的授權(quán)管理模型惶翻,將文件的訪問權(quán)限分為讀-寫兩種權(quán)限(HDFS上沒有可執(zhí)行文件的概念),將權(quán)限的所有者劃分為三個(gè)大類:擁有者(owner)鹅心,所在組(group)吕粗,以及其他人(other)。這種模型限制權(quán)限的所有者只能有三類旭愧。如果試圖增加一個(gè)新的“組”颅筋,并設(shè)定該組的用戶擁有不同于owner,group或other的權(quán)限输枯,現(xiàn)有的Linux/Unix授權(quán)模型是無法優(yōu)雅地解決這個(gè)問題的议泵。
舉例來說明上述狀況:假設(shè)有一個(gè)銷售部門,部門經(jīng)理manager具有修改銷售數(shù)據(jù)sales_data的權(quán)利桃熄;銷售部門的成員具有查看sales_data的權(quán)利先口,銷售部門以外的人無法看到銷售數(shù)據(jù)sales_data。那么對(duì)于銷售數(shù)據(jù)sales_data的授權(quán)如下所示:

-rw-r-----  3  manager sales      0  2015-01-25  18:51  sales_data

后來該銷售部門擴(kuò)充了人員瞳收,又來兩個(gè)銷售經(jīng)理碉京,一個(gè)叫manager1,另一個(gè)叫manager2螟深。這兩個(gè)銷售經(jīng)理也被允許修改銷售數(shù)據(jù)谐宙。這種情況下,manager1和manager2只能使用一個(gè)新賬號(hào)manager_account界弧,然后使該賬號(hào)能夠使用setuid對(duì)sales_data進(jìn)行修改凡蜻。這使得對(duì)同一份數(shù)據(jù)的權(quán)限管理變得復(fù)雜而不容易維護(hù)。

由于上述問題的存在夹纫,Hadoop2.4.0中添加了對(duì)HDFS ACL(Access Control Lists)的支持咽瓷。這一新特性很好地解決了上述的問題。然而隨著Hadoop在企業(yè)中廣泛地應(yīng)用舰讹,越來越多的業(yè)務(wù)場景要求大數(shù)據(jù)訪問控制的粒度也不再局限在文件級(jí)別茅姜,而是更加細(xì)致地約束文件內(nèi)部的數(shù)據(jù)哪些能被讀寫,哪些只能被讀月匣,哪些完全不允許被訪問钻洒。對(duì)于基于SQL的大數(shù)據(jù)引擎來說,數(shù)據(jù)訪問不止要到表粒度锄开,更要精確到行列級(jí)別素标。

Hiveserver2的授權(quán)

Hive是早期將高級(jí)查詢語言SQL引入Hadoop平臺(tái)的引擎之一,早期的Hive服務(wù)器進(jìn)程被稱作Hiveserver1萍悴;Hiveserver1既不支持處理并行的多個(gè)連接头遭,又不支持訪問授權(quán)控制寓免;后來這兩個(gè)問題在Hiveserver2上被解決,Hiveserver2能夠使用grant/revoke語句來限制用戶對(duì)數(shù)據(jù)庫计维、表袜香、視圖的訪問權(quán)限,行列權(quán)限的控制是通過生成視圖來實(shí)現(xiàn)的鲫惶;但Hiveserver2的授權(quán)管理體系被認(rèn)為存在問題蜈首,那就是任何通過認(rèn)證登陸的用戶都能夠?yàn)樽约涸黾訉?duì)任何資源的訪問權(quán)限。也就是說Hiveserver2提供的不是一種安全的授權(quán)體系欠母,Hiveserver2的授權(quán)體系是為防止正常用戶誤操作而提供保障機(jī)制欢策;不是為保護(hù)敏感數(shù)據(jù)的安全性而設(shè)計(jì)的。然而這些更多的是某些公司的說辭赏淌,事實(shí)上Hiveserver2自身的安全體系也在逐步完善踩寇,上述問題也在快速修復(fù)中。

但授權(quán)管理其實(shí)不止是Hive需要猜敢,其他的查詢引擎也迫切需要這些技術(shù)來完善和規(guī)范應(yīng)用程序?qū)?shù)據(jù)的訪問姑荷。對(duì)于細(xì)粒度授權(quán)管理的實(shí)現(xiàn),很大一部分功能在各引擎之間是可以公用的缩擂,因此獨(dú)立實(shí)現(xiàn)的授權(quán)管理工具是非常必要的鼠冕。

Sentry提供的安全授權(quán)管理

在這樣的背景下,Cloudera公司的一些開發(fā)者利用Hiveserver2中現(xiàn)有的授權(quán)管理模型胯盯,擴(kuò)展并細(xì)化了很多細(xì)節(jié)懈费,完成了一個(gè)相對(duì)具有使用價(jià)值的授權(quán)管理工具Sentry,下圖是Sentry與Hiveserver2中的授權(quán)管理模型的對(duì)比:


Sentry的很多基本模型和設(shè)計(jì)思路都來源于Hiveserver2博脑,但在其基礎(chǔ)之上加強(qiáng)了RBAC的概念憎乙。在Sentry中,所有的權(quán)限都只能授予角色叉趣,當(dāng)角色被掛載到用戶組的時(shí)候泞边,該組內(nèi)的用戶才具有相應(yīng)的權(quán)限。權(quán)限à角色à用戶組à用戶疗杉,這一條線的映射關(guān)系在Sentry中顯得尤為清晰阵谚,這條線的映射顯示了一條權(quán)限如何能最后被一個(gè)用戶所擁有;從權(quán)限到角色烟具,再到用戶組都是通過grant/revoke的SQL語句來授予的梢什。從“用戶組”到能夠影響“用戶”是通過Hadoop自身的用戶-組映射來實(shí)現(xiàn)的。Hadoop提供兩種映射:一種是本地服務(wù)器上的Linux/Unix用戶到所在組的映射朝聋;另一種是通過LDAP實(shí)現(xiàn)的用戶到所屬組的映射嗡午;后者對(duì)于大型系統(tǒng)而言更加適用,因?yàn)榫哂屑信渲眉胶郏子谛薷牡暮锰帯?/p>

Sentry將Hiveserver2中支持的數(shù)據(jù)對(duì)象從數(shù)據(jù)庫/表/視圖擴(kuò)展到了服務(wù)器荔睹,URI以及列粒度狸演。雖然列的權(quán)限控制可以用視圖來實(shí)現(xiàn),但是對(duì)于多用戶应媚,表數(shù)量巨大的情況严沥,視圖的方法會(huì)使得給視圖命名變得異常復(fù)雜;而且用戶原先寫的針對(duì)原表的查詢語句中姜,這時(shí)就無法直接使用,因?yàn)橐晥D的名字可能與原表完全不同跟伏。

目前Sentry1.4能夠支持的授權(quán)級(jí)別還局限于SELECT丢胚,INSERT,ALL這三個(gè)級(jí)別受扳,但后續(xù)版本中已經(jīng)能夠支持到與Hiveserver2現(xiàn)有的水平携龟。Sentry來源于Hiveserver2中的授權(quán)管理模型,但卻不局限于只管理Hive勘高,而希望能管理Impala, Solr等其他需要授權(quán)管理的查詢引擎峡蟋,Sentry的架構(gòu)圖如下所示:


Sentry的體系結(jié)構(gòu)中有三個(gè)重要的組件:一是Binding;二是Policy Engine华望;三是Policy Provider蕊蝗。
Binding實(shí)現(xiàn)了對(duì)不同的查詢引擎授權(quán),Sentry將自己的Hook函數(shù)插入到各SQL引擎的編譯赖舟、執(zhí)行的不同階段蓬戚。這些Hook函數(shù)起兩大作用:一是起過濾器的作用,只放行具有相應(yīng)數(shù)據(jù)對(duì)象訪問權(quán)限的SQL查詢宾抓;二是起授權(quán)接管的作用子漩,使用了Sentry之后,grant/revoke管理的權(quán)限完全被Sentry接管石洗,grant/revoke的執(zhí)行也完全在Sentry中實(shí)現(xiàn)幢泼;對(duì)于所有引擎的授權(quán)信息也存儲(chǔ)在由Sentry設(shè)定的統(tǒng)一的數(shù)據(jù)庫中。這樣所有引擎的權(quán)限就實(shí)現(xiàn)了集中管理讲衫。

Policy Engine判定輸入的權(quán)限要求與已保存的權(quán)限描述是否匹配缕棵,Policy Provider負(fù)責(zé)從文件或者數(shù)據(jù)庫中讀取出原先設(shè)定的訪問權(quán)限。Policy Engine以及Policy Provider其實(shí)對(duì)于任何授權(quán)體系來說都是必須的焦人,因此是公共模塊挥吵,后續(xù)還可服務(wù)于別的查詢引擎。

小結(jié)

大數(shù)據(jù)平臺(tái)上細(xì)粒度的訪問權(quán)限控制各家都在做花椭,當(dāng)然平臺(tái)廠商方面主導(dǎo)的還是Cloudera和Hortonworks兩家忽匈,Cloudera主推Sentry為核心的授權(quán)體系;Hortonwork一方面靠對(duì)開源社區(qū)走向得把控矿辽,另一方面靠收購的XA Secure丹允。無論今后兩家公司對(duì)大數(shù)據(jù)平臺(tái)市場的影響力如何變化郭厌,大數(shù)據(jù)平臺(tái)上的細(xì)粒度授權(quán)訪問都值得我們?nèi)W(xué)習(xí)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末雕蔽,一起剝皮案震驚了整個(gè)濱河市折柠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌批狐,老刑警劉巖扇售,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嚣艇,居然都是意外死亡承冰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門食零,熙熙樓的掌柜王于貴愁眉苦臉地迎上來困乒,“玉大人,你說我怎么就攤上這事贰谣∧嚷В” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵吱抚,是天一觀的道長百宇。 經(jīng)常有香客問我,道長频伤,這世上最難降的妖魔是什么恳谎? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮憋肖,結(jié)果婚禮上因痛,老公的妹妹穿的比我還像新娘。我一直安慰自己岸更,他們只是感情好鸵膏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怎炊,像睡著了一般谭企。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上评肆,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天债查,我揣著相機(jī)與錄音,去河邊找鬼瓜挽。 笑死盹廷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的久橙。 我是一名探鬼主播俄占,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼管怠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缸榄?” 一聲冷哼從身側(cè)響起渤弛,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎甚带,沒想到半個(gè)月后她肯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹰贵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年辕宏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砾莱。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖凄鼻,靈堂內(nèi)的尸體忽然破棺而出腊瑟,到底是詐尸還是另有隱情,我是刑警寧澤块蚌,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布闰非,位于F島的核電站,受9級(jí)特大地震影響峭范,放射性物質(zhì)發(fā)生泄漏财松。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一纱控、第九天 我趴在偏房一處隱蔽的房頂上張望辆毡。 院中可真熱鬧,春花似錦甜害、人聲如沸舶掖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽眨攘。三九已至,卻和暖如春嚣州,著一層夾襖步出監(jiān)牢的瞬間鲫售,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國打工该肴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留情竹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓沙庐,卻偏偏與公主長得像鲤妥,于是被迫代替她去往敵國和親佳吞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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