蘇秋月,陳興蜀,羅永剛
(1. 四川大學(xué)計(jì)算機(jī)學(xué)院,四川 成都 610065;2. 四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,四川 成都 610065;3. 四川大學(xué)網(wǎng)絡(luò)空間安全研究院,四川 成都 610065)
大數(shù)據(jù)平臺不僅是分布式、高度可擴(kuò)展的平臺,還支持多源異構(gòu)數(shù)據(jù)源的集成。隨著大數(shù)據(jù)、云計(jì)算的不斷發(fā)展,越來越多的企業(yè)將其內(nèi)部數(shù)據(jù)存放在公共大數(shù)據(jù)平臺中,以降低公司的運(yùn)行成本。與此同時(shí),如何保障平臺中的數(shù)據(jù)不被其他租戶非法訪問,確保數(shù)據(jù)的安全性成為企業(yè)用戶關(guān)心的問題。因此,如何實(shí)現(xiàn)云存儲中多租戶的數(shù)據(jù)安全隔離一直是業(yè)界研究的重點(diǎn)。
訪問控制是實(shí)現(xiàn)數(shù)據(jù)受控訪問、保護(hù)數(shù)據(jù)安全的有效手段之一。在存儲海量多源異構(gòu)數(shù)據(jù)的大數(shù)據(jù)開放平臺上,為了實(shí)現(xiàn)租戶之間數(shù)據(jù)的隔離訪問,應(yīng)實(shí)施高效、細(xì)粒度且靈活的訪問控制。但在大數(shù)據(jù)平臺中對多源異構(gòu)數(shù)據(jù)的訪問控制面臨如下問題:首先大數(shù)據(jù)平臺上匯聚了來自不同租戶的異構(gòu)數(shù)據(jù),雖然基于Hadoop的大數(shù)據(jù)平臺提供了不同的組件來存儲這些多源異構(gòu)的數(shù)據(jù),但大多只能依賴訪問控制列表(ACL, access control list)[1]實(shí)現(xiàn)粗粒度的訪問控制,在使用過程中權(quán)限不易管控,存在用戶可以擅自提權(quán)的風(fēng)險(xiǎn);其次平臺中用戶、數(shù)據(jù)以及訪問上下文環(huán)境在時(shí)刻變化,訪問權(quán)限也需要隨之變化,否則容易出現(xiàn)授權(quán)不足或過度授權(quán)的問題。
近年來,國內(nèi)外企業(yè)和學(xué)者對 Hadoop平臺的訪問控制問題進(jìn)行了深入研究。Hortonworks公司和Cloudera公司相繼推出了Hadoop平臺上集中訪問控制的開源框架,分別是 Apache Ranger[2]和 Apache Sentry[3]。其中,Ranger采用基于策略的訪問控制模型,通過設(shè)置策略為用戶或用戶組授予對數(shù)據(jù)的訪問權(quán)限。Sentry采用基于角色的訪問控制(RBAC,role-based access control)模型[4]。RBAC模型通過分配給用戶的角色來授予用戶訪問的權(quán)限,并且可以通過構(gòu)建角色層次結(jié)構(gòu)來減少用戶-角色分配,實(shí)現(xiàn)了對訪問控制系統(tǒng)的簡單管理。但在多租戶環(huán)境下,用戶-角色關(guān)系和角色-權(quán)限關(guān)系經(jīng)常變化,安全管理員難以考慮所有的數(shù)據(jù)訪問權(quán)限,使權(quán)限分配難度增加。
Gupta 等[5-6]總結(jié) Ranger、Sentry 以及 Hadoop原生基于ACL這3種訪問控制機(jī)制的特點(diǎn),提出了Hadoop生態(tài)系統(tǒng)的多層授權(quán)框架和Hadoop生態(tài)系統(tǒng)授權(quán)模型。陳垚坤等[7]和Gupta等[8]將基于屬性的訪問控制(ABAC,attribute-based access control)[9]模型應(yīng)用到Hadoop平臺中,根據(jù)用戶、數(shù)據(jù)、環(huán)境以及操作的屬性制定訪問控制策略,其中,相應(yīng)屬性可以包含實(shí)體的任何描述符,如標(biāo)簽、安全級別等。與RBAC模型相比,ABAC模型利用基于屬性的訪問控制策略直接定義了用戶權(quán)限關(guān)系,實(shí)現(xiàn)了更加靈活的訪問控制,在一定程度上避免了RBAC中權(quán)限分配困難的問題。但正是由于ABAC模型靈活的授權(quán)管理,目前屬性的定義沒有一個(gè)較好的格式標(biāo)準(zhǔn),導(dǎo)致屬性管理難度較大。另外,訪問權(quán)限判定的時(shí)間消耗也取決于屬性選擇的復(fù)雜性。
文獻(xiàn)[10-12]將 RBAC模型與主客體標(biāo)簽結(jié)合,提出了一種面向多租戶云存儲平臺的訪問控制策略。該策略通過比較主客體標(biāo)簽是否相符,確保了租戶之間數(shù)據(jù)的強(qiáng)隔離性,但隨著用戶和數(shù)據(jù)不斷變化,這種強(qiáng)制訪問控制機(jī)制下的訪問權(quán)限難以靈活地隨之改變。Bhatt等[13]將角色作為屬性之一添加到ABAC模型中,提出在多租戶云環(huán)境下的一種屬性角色結(jié)合的訪問控制機(jī)制。王于丁等[14]進(jìn)一步提出了一種基于角色和屬性的云計(jì)算數(shù)據(jù)訪問控制模型。最近,Gupta等[15]在Hadoop生態(tài)系統(tǒng)中討論了角色與屬性結(jié)合的方法,將對象標(biāo)簽作為對象屬性添加到RBAC模型中,提出基于對象標(biāo)簽的角色訪問控制模型。上述研究將屬性與RBAC結(jié)合使用,實(shí)現(xiàn)了簡單的授權(quán)管理和動態(tài)的權(quán)限分配,但均未解決屬性管理復(fù)雜的問題。
針對上述問題,本文提出了大數(shù)據(jù)平臺下多源異構(gòu)數(shù)據(jù)的訪問控制模型(MT-MHAC,access control model for multi-source heterogeneous data in big data platform)。該模型通過構(gòu)建數(shù)據(jù)組層次結(jié)構(gòu)擴(kuò)展RBAC模型,避免了冗余的角色權(quán)限分配;采用基于屬性的策略定義角色權(quán)限關(guān)系,細(xì)粒度、靈活地分配角色的權(quán)限;另外,將相同數(shù)據(jù)屬性的數(shù)據(jù)分配到同一數(shù)據(jù)組,數(shù)據(jù)可以通過數(shù)據(jù)組的層次結(jié)構(gòu)繼承數(shù)據(jù)屬性,避免為數(shù)據(jù)設(shè)置重復(fù)屬性,簡化了數(shù)據(jù)屬性的管理。最后,本文將MT-MHAC模型實(shí)現(xiàn)在Hadoop平臺中。通過實(shí)驗(yàn)驗(yàn)證,該模型可以滿足多租戶環(huán)境下,對多源異構(gòu)數(shù)據(jù)細(xì)粒度、動態(tài)授權(quán)的訪問控制需求,保障租戶之間數(shù)據(jù)的安全隔離。
RBAC模型為每個(gè)用戶分配一個(gè)或多個(gè)角色,并通過定義角色層次結(jié)構(gòu)減少了用戶角色的分配工作。隨著大數(shù)據(jù)向更多應(yīng)用領(lǐng)域擴(kuò)展,越來越多的數(shù)據(jù)涌入大數(shù)據(jù)平臺中,RBAC模型下的角色-權(quán)限分配成為一項(xiàng)重大挑戰(zhàn)。本文旨在Hadoop平臺中多租戶場景下,對多源異構(gòu)數(shù)據(jù)實(shí)施靈活、細(xì)粒度的訪問控制。本文使用數(shù)據(jù)治理工具 Apache Atlas[2]對平臺中的多源異構(gòu)數(shù)據(jù)進(jìn)行集中管理,并在此前提下提出了MT-MHAC模型,如圖1所示。
圖1 MT-MHAC模型
在基于Hadoop的大數(shù)據(jù)平臺中,很多組件中數(shù)據(jù)具有天然的層次結(jié)構(gòu)。例如,分布式文件系統(tǒng)(HDFS)中的文件存在于目錄樹下;數(shù)據(jù)倉庫工具Hive中數(shù)據(jù)有數(shù)據(jù)庫、表、行或列這幾種類型,也存在層次結(jié)構(gòu)。MT-MHAC模型利用了平臺中這些數(shù)據(jù)的特點(diǎn),構(gòu)建了數(shù)據(jù)組的層次結(jié)構(gòu),與 RBAC模型的角色層次結(jié)構(gòu)相結(jié)合,簡化了角色-權(quán)限的分配,可以將平臺中具有相同屬性的數(shù)據(jù)分配到同一數(shù)據(jù)組中,為該組分配適當(dāng)?shù)膶傩院蛯傩灾担挥脼槊總€(gè)數(shù)據(jù)分配屬性。如果數(shù)據(jù)組之間還存在層次結(jié)構(gòu),可以間接通過其他數(shù)據(jù)組繼承數(shù)據(jù)屬性,通過這種數(shù)據(jù)組層次結(jié)構(gòu)簡化了數(shù)據(jù)屬性的管理。另外,采用基于屬性的權(quán)限策略,實(shí)現(xiàn)對多源異構(gòu)數(shù)據(jù)靈活簡單的訪問控制,確保了租戶間數(shù)據(jù)安全靈活的隔離。
為了保證MT-MHAC模型的正常運(yùn)行,假設(shè)訪問 Hadoop平臺的用戶均已通過身份認(rèn)證。本文所提出的模型中實(shí)體包括用戶(U)、角色(R)、會話(S)、數(shù)據(jù)(D)、數(shù)據(jù)組(G)、操作(OP)。屬性集合包括數(shù)據(jù)屬性(DATT)、環(huán)境屬性(EATT)和操作屬性(OPATT)。具體定義描述如表1所示。
除了實(shí)體之外,模型中還包含實(shí)體間的關(guān)系,通過關(guān)系集合將各個(gè)實(shí)體集聯(lián)系起來,實(shí)現(xiàn)實(shí)體中元素之間的操作。下面對這些關(guān)系進(jìn)行定義。
定義1角色層次結(jié)構(gòu)RH?R×R,表示在角色集合R上存在的偏序關(guān)系。角色的繼承從低到高,即父角色繼承其所有的子角色。若存在ri?rj,其中ri,rj?R,則ri是rj的父角色。這里ri不僅具有其自身角色,還繼承了rj的角色。
例如,用戶 Gary被分配角色為developer,用戶 Bard被分配角色為direct,其中,direct是developer的父角色。因此用戶 Bard所擁有的角色除了被直接分配的direct之外,還有通過繼承得到的developer。由此可知,角色層次結(jié)構(gòu)可以方便地為單個(gè)用戶分配和刪除多個(gè)角色,簡化了用戶-角色關(guān)聯(lián)關(guān)系的管理。
定義2數(shù)據(jù)-數(shù)據(jù)組分配DGA?D×G,等價(jià)于directG(d):D→ 2G,表示數(shù)據(jù)與數(shù)據(jù)組之間多對多的映射關(guān)系??梢詫?shù)據(jù)分配給多個(gè)數(shù)據(jù)組,通過函數(shù)directG獲取數(shù)據(jù)并返回該數(shù)據(jù)所屬的數(shù)據(jù)組集合。
定義3數(shù)據(jù)組層次結(jié)構(gòu)GH?G×G,表示在數(shù)據(jù)組集合G上的偏序關(guān)系。若gi?gj,其中g(shù)i,gj?G,意味著分配了數(shù)據(jù)組gi的角色將獲得該組和來自低級數(shù)據(jù)組gj這2個(gè)組中所有數(shù)據(jù)的訪問權(quán)限。
大數(shù)據(jù)環(huán)境下,租戶將數(shù)據(jù)源源不斷地從各種系統(tǒng)聚集到 Hadoop平臺中,同時(shí)用戶訪問數(shù)據(jù)的上下文在不斷變化,導(dǎo)致用戶的訪問權(quán)限需要及時(shí)更新。但在RBAC模型中,用戶權(quán)限的更新只能通過修改或增加為用戶所分配的角色,而角色的權(quán)限更新需要修改原有的角色權(quán)限關(guān)系,導(dǎo)致授權(quán)管理難度增加。為了解決上述問題,本文定義數(shù)據(jù)屬性、環(huán)境屬性和操作屬性,根據(jù)屬性策略進(jìn)行角色權(quán)限分配,動態(tài)地建立角色與權(quán)限之間的關(guān)系。
表1 實(shí)體和屬性定義
定義4屬性是對實(shí)體特征的具體描述,記為ATT::=(att_nameopatt_value)。其中,att_name是指屬性名稱;op指屬性運(yùn)算符,包括<、=、>、≤、≠、≥等;att_value指屬性的取值,可由有限的原子值或集合表示。例如, ?datt?DATT,datt::= (type= {file、database、table})表示數(shù)據(jù)屬性集中有一個(gè)屬性為type,其屬性值等于一個(gè)包含file、database和table的集合。
定義5數(shù)據(jù)組的有效屬性effectiveGdatt,包含直接分配給用戶組的數(shù)據(jù)屬性和來自子數(shù)據(jù)組所繼承的屬性。對于?datt∈DATT,?g∈G,有
定義6數(shù)據(jù)有效屬性effectiveDdatt,由自身具有的屬性、所屬數(shù)據(jù)組的所有屬性,以及數(shù)據(jù)組通過繼承其他組所得的屬性這3部分組成。當(dāng)為數(shù)據(jù)設(shè)置屬性時(shí),無須為每個(gè)數(shù)據(jù)都設(shè)置屬性,只需將相同屬性的數(shù)據(jù)添加到同一數(shù)據(jù)組,然后設(shè)置其最小權(quán)限范圍的屬性及屬性值。數(shù)據(jù)組中的數(shù)據(jù)通過數(shù)據(jù)組的層次關(guān)系間接獲得層次化的屬性和屬性值。本文通過這種數(shù)據(jù)組層次結(jié)構(gòu)為安全管理員提供了簡單靈活的數(shù)據(jù)屬性管理,簡化了角色-權(quán)限的分配。對于 ?datt∈DATT,?g∈G,有
定義7基于屬性的權(quán)限AP?DATT×EATT×OPATT,其中,?eatt∈EATT,?opatt∈OPATT,數(shù)據(jù)屬性滿足 ?datt∈DATT?effectiveDdatt(d)。通過定義數(shù)據(jù)屬性、環(huán)境屬性和操作屬性動態(tài)地確定數(shù)據(jù)的訪問權(quán)限,實(shí)現(xiàn)了靈活的授權(quán)管理。
定義8模型中的函數(shù)
1) 用戶-角色分配assignRole(u):U→ 2R,等價(jià)于UR?U×R,其中,?r∈{ri|ri?rj,ri,rj∈R},表示用戶到角色多對多的映射關(guān)系。
2) 角色-權(quán)限分配assignPerm(r) :R→ 2AP,表示角色到權(quán)限多對多的映射關(guān)系。
3) 用戶會話user_session(u) :U→ 2S,表示單個(gè)用戶到會話集合的映射函數(shù)。
4) 角色會話role_session(s) :S→ 2R,表示會話到角色集合的函數(shù),其中,會話所對應(yīng)的角色應(yīng)滿足R?UR。
5) 角色權(quán)限判定規(guī)則如下:當(dāng)用戶在會話中所獲得的角色r滿足數(shù)據(jù)d的屬性、環(huán)境屬性eatt和操作屬性opatt時(shí),允許角色訪問。
為了將MT-MHAC模型應(yīng)用到Hadoop平臺中,本文利用基于Apache Atlas的元數(shù)據(jù)管理工具來集中管理匯集到平臺中的多源異構(gòu)數(shù)據(jù)。另外,在基于Apache Ranger的權(quán)限管理框架上進(jìn)行了修改和擴(kuò)展,以實(shí)現(xiàn)本文所提出的MT-MHAC模型。Ranger主要由2部分組成:策略服務(wù)器和插件。策略服務(wù)器即權(quán)限管理模塊,負(fù)責(zé)管理策略和從Unix或LDAP同步的用戶/用戶組,以及為集成到組件中的插件提供策略信息和用戶信息。插件是內(nèi)嵌在組件中的權(quán)限判定引擎,通過從策略服務(wù)器定時(shí)輪詢獲取更新策略來評估訪問請求。本文在權(quán)限管理模塊中定義了訪問控制策略決策點(diǎn)(PDP, policy decision point)、訪問控制策略管理點(diǎn)(PAP, policy administration point)和訪問控制策略信息點(diǎn)(PIP, policy information point),并且修改了Ranger的權(quán)限判定引擎和策略的定義。在權(quán)限管理模塊中添加用戶-角色表、數(shù)據(jù)屬性表和環(huán)境屬性表,以便安全管理員定義用戶-角色關(guān)系、數(shù)據(jù)屬性和環(huán)境屬性。具體的實(shí)現(xiàn)細(xì)節(jié)如圖2所示。
在模型的運(yùn)行過程中,系統(tǒng)對用戶訪問數(shù)據(jù)的控制有2個(gè)重要階段。一是授權(quán)階段,當(dāng)用戶進(jìn)入 Hadoop平臺時(shí),安全管理員在權(quán)限管理模塊中將用戶-角色表定義為用戶所分配的角色;然后選擇合適數(shù)據(jù)屬性datt、環(huán)境屬性eatt(如時(shí)間、位置等)和操作屬性opatt,為角色設(shè)置基于屬性的權(quán)限策略,建立角色與權(quán)限之間的關(guān)聯(lián)關(guān)系,這樣使用戶擁有的角色在不同狀態(tài)下的權(quán)限也不同,從而可以動態(tài)地確定用戶的訪問權(quán)限。二是鑒權(quán)階段,權(quán)限管理模塊中的PIP先從組件(圖2中的Hive)中獲取當(dāng)前會話的用戶信息和環(huán)境信息,從而根據(jù)用戶-角色表得到其擁有的角色,然后通過查詢數(shù)據(jù)屬性表、環(huán)境屬性表和操作屬性表分別得到訪問請求中數(shù)據(jù)的有效屬性、環(huán)境屬性和操作屬性,將其與從 PAP獲取的訪問權(quán)限策略中對應(yīng)的策略項(xiàng)進(jìn)行一一匹配。若均匹配,則權(quán)限管理模塊中的 PDP將權(quán)限判定結(jié)果true返回給組件中的 Ranger插件,即訪問控制策略執(zhí)行點(diǎn)(PEP, policy enforcement point),否則返回false。組件中的PEP根據(jù)PDP返回的結(jié)果執(zhí)行具體的操作。
圖2 MT-MHAC模型在Hadoop中的實(shí)現(xiàn)框架
例如,用戶u提交訪問Hive中數(shù)據(jù)d的請求,權(quán)限管理模塊首先獲取用戶的訪問請求信息request(u,d,op),根據(jù)環(huán)境屬性表和操作屬性表得到訪問請求的環(huán)境屬性eatt和操作屬性opatt,再從元數(shù)據(jù)管理模塊中獲取d的屬性信息,然后獲取用戶-角色表和角色-權(quán)限策略。根據(jù)訪問權(quán)限判定算法(算法1)對訪問請求request進(jìn)行判定,并將訪問判定結(jié)果返回給Hive中內(nèi)嵌的Ranger插件,最終由Ranger插件執(zhí)行允許訪問或拒絕訪問。
算法1訪問權(quán)限判定算法
輸入u,d,op
輸出result ,result ∈ boolean
本節(jié)以下述應(yīng)用場景為例說明MT-MHAC模型的有效性和優(yōu)勢?,F(xiàn)有2個(gè)公司TOK和SUN租用同一大數(shù)據(jù)平臺存儲企業(yè)的數(shù)據(jù),這里,同一大數(shù)據(jù)平臺中角色定義和數(shù)據(jù)屬性、環(huán)境屬性等定義都相同。例如,定義了角色developer和direct,數(shù)據(jù)組analysis、collect和log,數(shù)據(jù)屬性type={general、develop、network},環(huán)境屬性location={china、sichuan、beijing }。其中,direct?developer,analysis?collect,analysis?log。另外,數(shù)據(jù)組analysis包含的屬性為type={develop},數(shù)據(jù)組collect包含的屬性為type={general},數(shù)據(jù)組log包含的屬性為type= {network}。根據(jù)各公司的訪問需求定義了部分權(quán)限策略如下。另外,對不同組件中數(shù)據(jù)的操作不同,如HDFS中文件操作為r/w/x,Hive中數(shù)據(jù)操作為create/delete/update等。為了簡化權(quán)限策略,這里沒有定義數(shù)據(jù)的具體操作,均為access。
Policy1:{developer,type= network,location=sichuan,op=access}。
Policy2:{developer,type= general,location=beijing,op=access }。
Policy3:{direct,type= develop,location=beijing,op=access}。
假設(shè)有TOK公司員工Ablett和SUN公司員工Carl,且2個(gè)公司分別在四川和北京。TOK公司和SUN公司的安全管理員分別為Ablett和Carl分配了角色developer和direct。通過測試結(jié)果表明,根據(jù)Policy1定義的權(quán)限策略,Ablett只能訪問本公司數(shù)據(jù)組為log中的數(shù)據(jù)。由于存在角色繼承和數(shù)據(jù)組繼承關(guān)系,根據(jù) Policy2和Policy3定義的策略可知,員工Carl除了能訪問數(shù)據(jù)組為analysis的數(shù)據(jù)之外,還具有數(shù)據(jù)組collect中數(shù)據(jù)的訪問權(quán)限。通過該角色層次結(jié)構(gòu)和數(shù)據(jù)組的層次結(jié)構(gòu),簡化了角色分配和數(shù)據(jù)屬性分配,從而為管理員提供了權(quán)限的簡單管理。另外,雖然SUN公司的員工Carl通過角色繼承擁有了developer角色,但根據(jù)策略中環(huán)境屬性的定義,其不能訪問TOK公司數(shù)據(jù)組為log中的數(shù)據(jù)。
上述實(shí)驗(yàn)表明,本文所提出的模型根據(jù)用戶的角色以及角色是否擁有當(dāng)前會話上下文環(huán)境下對數(shù)據(jù)的訪問權(quán)限,嚴(yán)格限制租戶之間數(shù)據(jù)的訪問,實(shí)現(xiàn)了對多租戶之間數(shù)據(jù)的安全隔離;并且通過層次化的角色和數(shù)據(jù)屬性,簡化了管理員的權(quán)限分配工作;基于屬性的權(quán)限策略也為租戶間及內(nèi)部提供了細(xì)粒度、靈活的訪問權(quán)限管理。另外,當(dāng)平臺中增加用戶和數(shù)據(jù)或用戶權(quán)限發(fā)生變動時(shí),不用添加角色,通過更新基于屬性的權(quán)限策略即可實(shí)現(xiàn)用戶權(quán)限的變更。
為了驗(yàn)證 MT-MHAC模型的性能,本文在Hadoop平臺中進(jìn)行了實(shí)驗(yàn)測試,其中Hadoop版本是2.7.3,Apache Ranger版本是0.7.0。本文通過測試時(shí)間開銷來分析模型的性能,將MT-MHAC模型與RBAC模型、ABAC模型的訪問控制決策時(shí)間進(jìn)行對比,分析MT-MHAC模型的性能優(yōu)勢。根據(jù)訪問控制策略判定用戶的訪問請求是訪問控制過程中關(guān)鍵步驟,也是影響訪問控制決策時(shí)間的主要因素。因此,本文為驗(yàn)證模型對 Hadoop平臺的性能損失,將統(tǒng)計(jì)不同數(shù)量的訪問控制策略下 MT-MHAC模型和 RBAC模型、ABAC模型的訪問控制決策時(shí)間對比,結(jié)果如圖3所示。
圖3 策略數(shù)量與訪問決策時(shí)間對比
隨著訪問控制策略的增加,三者的訪問控制時(shí)間均呈上升的趨勢。其中,MT-MHAC模型的整體訪問決策時(shí)間與 RBAC模型相比稍高,是由于使用數(shù)據(jù)屬性、環(huán)境屬性和操作來確定角色的權(quán)限,但同時(shí)相比RBAC模型增加了角色權(quán)限匹配的靈活性。另外,通過添加數(shù)據(jù)組層次結(jié)構(gòu)簡化了角色權(quán)限匹配,MT-MHAC模型的訪問決策時(shí)間低于ABAC模型。從圖3中可看出,策略數(shù)量1 000條以內(nèi)訪問控制決策所用的時(shí)間僅在4 ms以內(nèi)。即使策略數(shù)量達(dá)到上萬條甚至幾十萬條,訪問控制決策的時(shí)間開銷依然能保持在毫秒級別。由此可知,MT-MHAC模型的訪問控制時(shí)間開銷對整個(gè)訪問過程的性能影響較小。
本文針對大數(shù)據(jù)平臺下如何實(shí)現(xiàn)多源異構(gòu)數(shù)據(jù)的訪問控制,確保租戶數(shù)據(jù)的安全隔離問題,提出了MT-MHAC模型。該模型結(jié)合RBAC模型中角色層次結(jié)構(gòu),增加了數(shù)據(jù)組的層次結(jié)構(gòu),父數(shù)據(jù)組的權(quán)限可以直接從子數(shù)據(jù)組繼承,簡化了角色權(quán)限分配;使用基于屬性的策略定義角色與權(quán)限的分配關(guān)系,提供了細(xì)粒度、靈活地授權(quán);可通過數(shù)據(jù)組層次關(guān)系獲得其他數(shù)據(jù)組的繼承屬性,提供了數(shù)據(jù)屬性的簡單管理。另外,本文利用Hadoop平臺中的數(shù)據(jù)治理工具Apache Atlas集中管理這些異構(gòu)數(shù)據(jù),并在Apache Ranger的基礎(chǔ)上進(jìn)行修改,實(shí)現(xiàn)了本文所提出的模型;并且通過實(shí)驗(yàn)性能分析驗(yàn)證了MT-MHAC模型在對性能損失基本可以忽略的情況下,實(shí)現(xiàn)了大數(shù)據(jù)平臺中多源異構(gòu)數(shù)據(jù)靈活、細(xì)粒度的訪問控制,保證了多租戶數(shù)據(jù)之間的安全隔離。