王又立++王晶
摘要:重點關(guān)注云存儲在訪問安全性和隱私安全性上的兩個問題,設(shè)計面向多租戶的安全數(shù)據(jù)存儲機制和用戶訪問控制機制,并結(jié)合企業(yè)實際需求,向租戶提供安全、按需、實時和可擴展的存儲服務(wù)。基于Kerberos的多租戶訪問控制策略將提升云存儲平臺的安全性,簡化HDFS權(quán)限管理的復(fù)雜度,提高云存儲平臺權(quán)限管理的交互性能。
關(guān)鍵詞:HDFS;數(shù)據(jù)存儲平臺;訪問控制策略
中圖分類號:TP391.41
文獻標(biāo)識碼:A
DOI: 10.3969/j.issn.1003-6970.2016.01.016
0 引言
Eole平臺是自主研發(fā)的,基于Hadoop構(gòu)建,具有數(shù)據(jù)存儲、數(shù)據(jù)處理、訪問控制、權(quán)限管理、資源隔離和資源調(diào)度等多種功能的云端大數(shù)據(jù)存儲與處理平臺,可以為中小型企業(yè)或者企業(yè)內(nèi)部提供云端的數(shù)據(jù)存儲與數(shù)據(jù)計算,并保證不同租戶數(shù)據(jù)的安全性。在保證安全性時,有兩點問題尤其值得關(guān)注:第一,企業(yè)及個人存儲在平臺上的數(shù)據(jù)是不允許公司內(nèi)部其它部門或其它地域的用戶訪問的,更加不能被同平臺的租戶竊取和篡改;第二,租戶的敏感信息如果在平臺上明文存儲,則平臺管理員完全有可能監(jiān)守自盜,造成租戶敏感信息的泄。
EOLE云存儲平臺作為一種多租戶的數(shù)據(jù)存儲平臺,在給企業(yè)帶來收益的同時,也需要對其數(shù)據(jù)的安全性提供保障。中小型企業(yè)利用EOLE云存儲平臺來存放企業(yè)內(nèi)部數(shù)據(jù),則要求這些數(shù)據(jù)不能夠被公司內(nèi)部其它部門或其它地域的用戶訪問,更加不能被同平臺的租戶竊取和篡改。因而,實現(xiàn)多租戶訪問控制是構(gòu)建云存儲平臺亟待解決的重要問題之一。
基于此,本文基于Kerberos和HDFS (HadoopDistribute File System)的特點,結(jié)合了基于角色的訪問控制策略的基本思想和其它一些用戶屬性,提出了一種面向多租戶的訪問控制策略。首先介紹一下存儲平臺的整體設(shè)計,包括訪問控制策略與各個子模塊之間的關(guān)系;然后重點介紹多租戶訪問控制策略,最后對加上訪問控制之后的存儲平臺進行了相關(guān)測試。
1 相關(guān)工作
目前,針對云存儲環(huán)境中多租戶數(shù)據(jù)安全問題,人們多數(shù)采用的是傳統(tǒng)的訪問控制策略。例如:Amazon S3僅提供訪問控制列表(Access ControlList,以下稱ACL)和bucket來進行訪問控制,Amazon彈性云僅僅是在用戶客戶端通過SOAP overHTTPS加密協(xié)議來保證客戶端與遠端連接的安全性, PCS2.5 (ParaScale Cloud Storage)也僅提供可擴展的數(shù)據(jù)加密功能來加密處理拷貝和遷移過程中的數(shù)據(jù)。這些策略都十分簡單,基本上沒有進行訪問控制。
其實,傳統(tǒng)的訪問控制模型已經(jīng)不能滿足新型的云計算架構(gòu)要求,以傳統(tǒng)的RBAC為例,云中的主體和客體的定義發(fā)生了很多變化,云計算中出現(xiàn)了以多租戶為核心、大數(shù)據(jù)為基礎(chǔ)的服務(wù)模式,所以在云計算的訪問控制要對主體和客體的有關(guān)概念重新界定,這就導(dǎo)致了傳統(tǒng)的訪問控制模型要進行優(yōu)化和更新,使其更適用于云計算環(huán)境。我國研究人員沈晴霓于2011年在著作中提出了一種面向多租戶的訪問控制策略,其定義了主客體的安全標(biāo)簽,并由此生成角色樹,再根據(jù)權(quán)限公式來進行訪問控制。這個方法安全性雖然很高,普適性較好,但是沒有利用HDFS本身所具有的一些特性,實現(xiàn)起來對以HDFS為基礎(chǔ)的存儲平臺性能影響很大。
本文則基于HDFS自身提供的Kerberos的身份驗證機制,以及在資源訪問控制方面的ACL,設(shè)計一個以RBAC為基礎(chǔ)的靈活的,可以按需定制的訪問控制策略,主要創(chuàng)新點在于利用安全標(biāo)簽來建設(shè)層級目錄,充分利用HDFS已有的數(shù)據(jù),不需要額外記錄數(shù)據(jù)的權(quán)限。同時,權(quán)限劃分可根據(jù)企業(yè)需求定制,分享數(shù)據(jù)有時效性保證,足以保證不同租戶之間資源的強隔離性,租戶內(nèi)部各個部門之間的適度隔離性。
2 平臺總體設(shè)計
2.1 總體架構(gòu)
數(shù)據(jù)平臺總體架構(gòu)如圖1所示。該存儲平臺基于HDFS構(gòu)建,充分利用了HDFS低成本高效率的優(yōu)點。目前,HDFS存在兩個問題:第一,在管理用戶及其權(quán)限時操作仍然復(fù)雜,交互性差,不夠便捷;第二,在訪問控制方面,用戶權(quán)限管理粒度較低,權(quán)限劃分比較簡單。針對這兩個問題,在用戶和數(shù)據(jù)層之間加入了一層數(shù)據(jù)存儲平臺。該平臺向上可提供統(tǒng)一的安全的數(shù)據(jù)訪問服務(wù),向下可將數(shù)據(jù)進行統(tǒng)一的管理。在該平臺的結(jié)構(gòu)中,所有數(shù)據(jù)訪問操作都要經(jīng)過安全保證模塊保證安全,而該模塊的核心則是訪問控制模塊。權(quán)限管理和用戶管理中對用戶和角色的權(quán)限定義決定了訪問控制中對用戶進行的訪問控制策略,基于這些策略,用戶可以在平臺上存儲數(shù)據(jù),操作數(shù)據(jù),分享數(shù)據(jù)。
3 訪問控制策略
3.1 策略設(shè)計原則
靈活性:由于各個企業(yè)對存儲平臺提出的不同程度的安全需求,本文提出的訪問控制策略應(yīng)當(dāng)安全而靈活,企業(yè)可以根據(jù)自身的需求定制靈活的安全策略,保證其自身的數(shù)據(jù)存儲安全。
層次性:本文提出的安全策略雖然既適用于個人用戶,也適用于企業(yè)用戶,但主要面向企業(yè)用戶進行設(shè)計?;谄髽I(yè)組織結(jié)構(gòu)的層次性,角色的定義和用戶的權(quán)限分配上都將體現(xiàn)這種層次性的特性。
高效性:本文提出的安全策略是在HDFS提供的安全策略的基礎(chǔ)上,面向多租戶的場景提出的一種補充性策略,因此對HDFS提供的數(shù)據(jù)存儲服務(wù)的性能影響不宜過大,力求做到無影響。
3.2 策略描述
存儲平臺作為多租戶共享的一個平臺,需要靈活的區(qū)分和支持不同企業(yè)在安全方面上的不同需求。為此,本文提出的訪問控制策略以RBAC (Role BasedAccess Control)策略為基礎(chǔ),同時以HDFS文件路徑作為角色映射的一種方式,讓企業(yè)自定義安全屬性標(biāo)簽,根據(jù)標(biāo)簽建立相應(yīng)存儲路徑和用戶角色,保證企業(yè)間和企業(yè)內(nèi)部不同部門之間數(shù)據(jù)的隔離性。同時,以用戶角色和訪問有效時長等安全屬性組合作為數(shù)據(jù)訪問的條件,保證數(shù)據(jù)訪問的共享性和安全性。
3.2.1 角色定義與建立
1.企業(yè)自定義安全屬性標(biāo)簽。企業(yè)在以唯一的租戶名注冊成為平臺用戶之后,企業(yè)租戶可以根據(jù)自己企業(yè)的自身情況,從平臺提供的企業(yè)組織標(biāo)簽中挑選合適的標(biāo)簽,可選的標(biāo)簽有:中心,部門,項目組。其中,部門可下設(shè)子部門,項目組和下設(shè)子項目組。
2.層次化建立工作空間和角色標(biāo)簽。平臺將在用戶提交其企業(yè)組織結(jié)構(gòu)之后,自動為企業(yè)創(chuàng)建存儲工作空間以及要求企業(yè)提供各個工作空間負責(zé)人。由于企業(yè)組織結(jié)構(gòu)具有層次化的特點,因此每個角色都有特定的標(biāo)簽作為標(biāo)記。例如:某個用戶屬于某個企業(yè)的某個中心下某個部門的某個項目組下,則該用戶的角色標(biāo)簽中就包括了企業(yè)名稱,中心名稱,部門名稱以及項目組的名稱,而該用戶有權(quán)限能訪問的工作空間也隨之確定,即該企業(yè)某中心下某部門的某項目組所有的工作空間。
3.2.2 角色與用戶權(quán)限的對應(yīng)關(guān)系
本文定義的角色概念是脫離于用戶和用戶組的一個邏輯上的概念,是具有某一特征的用戶的集合,而這個特征則可以用定義的安全屬性標(biāo)簽來進行描述。在平臺的訪問控制策略中,用戶大致被分為如下幾種角色:
系統(tǒng)管理員:該角色擁有管理整個系統(tǒng)所有租戶的權(quán)限,可以根據(jù)企業(yè)需求為企業(yè)各級工作空間設(shè)定工作空間管理員。但是該角色無權(quán)查看租戶的數(shù)據(jù)信息,也不可以改變自己的角色。
工作空間管理員:該角色由系統(tǒng)管理員根據(jù)企業(yè)用戶的需求而指定,在該工作空間內(nèi)擁有最高權(quán)限??梢栽谄渌茌牭墓ぷ骺臻g下添加用戶,并為用戶賦予權(quán)限;可以查看該工作空間內(nèi)所有用戶的權(quán)限,并對該空間內(nèi)用戶的權(quán)限進行修改。
普通用戶:該角色是由工作空間管理員加入到工作空間內(nèi)的用戶??梢圆樵冏约涸谠摴ぷ骺臻g內(nèi)的權(quán)限,但無法修改自己的訪問權(quán)限。
與每個角色對應(yīng)一種固定權(quán)限的劃分不同,本文提出了一種角色與權(quán)限相分離,但又有一定映射關(guān)系的訪問控制策略。一方面,角色可以根據(jù)標(biāo)簽確定,則如果需要共享數(shù)據(jù),那么只需要臨時增加角色的標(biāo)簽,并在訪問控制時檢查時間戳和時效性標(biāo)記即可,避免了角色與權(quán)限的一一對應(yīng)關(guān)系,數(shù)據(jù)分享變得簡單而易于實現(xiàn);另一方面,角色和權(quán)限在宏觀上保持著一定的聯(lián)系,可以保證企業(yè)間,企業(yè)內(nèi)部各個部門和各個組織層級之間數(shù)據(jù)的適度隔離。
3.2.3 訪問控制流程
用戶訪問存儲平臺時的訪問控制流程如圖2所示。
第一步,客戶端需向平臺發(fā)送用戶名username,密碼passwd,訪問路徑path_0(因有可能是加密后的路徑,故為path_0)以及對訪問路徑進行的操作operation,之后Eole平臺先驗證其Eole用戶的合法性,如果不合法,則直接拒絕訪問;若合法,則返回用戶相對KDC的principal。
第二步,Eole平臺向KDC發(fā)送用戶的principal和密碼(與Eole平臺密碼相一致),驗證該用戶的合法性,并獲得用戶的票據(jù),臨時存儲在本地,并設(shè)置好票據(jù)的訪問權(quán)限。
第三步,Eole平臺持票據(jù)向HDFS發(fā)起訪問,需提供票據(jù),解密后的路徑以及對路徑進行的操作,訪問成功則返回數(shù)據(jù),否則返回訪問失敗的信息。此處因返回的數(shù)據(jù)有可能是加密過的,所以要在Eole平臺上進行解密并將數(shù)據(jù)返回給客戶端。
4 系統(tǒng)測試
平臺實驗環(huán)境為14臺裝載了Linux系統(tǒng)的計算機上面搭建的Hadoop集群,Hadoop的版本為2.4.5,機器硬件環(huán)境為:內(nèi)存4G,CPU主頻3.OMHz,3TB硬盤。為了測試訪問控制策略對HDFS性能的影響,測試過程中數(shù)據(jù)集均沒有加密。
4.1 安全性測試
在存儲平臺上設(shè)置了兩個企業(yè):EBUPT和NEOTEL。二者定義的安全標(biāo)簽如表1所示,NEOTEL和EBUPT雖然有相同的部門標(biāo)簽和項目組標(biāo)簽,但由于企業(yè)標(biāo)簽的不同,數(shù)據(jù)存儲的時候會映射到不同的路徑上。我們設(shè)置Jack為NEOTEL銷售部華東組組長,Marry為EBUPT銷售部華東組組長,Apple是NEOTEL開發(fā)部Eole項目組組長,Bill是NEOTEL開發(fā)部經(jīng)理。
4.1.1 企業(yè)間數(shù)據(jù)隔離測試
測試結(jié)果表明:Jack不能訪問屬于不同企業(yè)的用戶Marry的文件,反之亦然。在Jack使用存儲平臺時,EBUPT的文件路徑對其是不可見的,因此,該訪問控制策略保證了企業(yè)之間數(shù)據(jù)的強隔離性,用戶的每一次訪問都會進行嚴(yán)格的權(quán)限驗證,嚴(yán)格限制了一個企業(yè)用戶對其他企業(yè)用戶進行數(shù)據(jù)訪問的企圖。
4.1.2 企業(yè)內(nèi)部門間隔離測試
測試結(jié)果表明:Apple不能訪問屬于不同部門的用戶Jack的文件,反之亦然。Apple無法看到Jack組的文件路徑,當(dāng)兩個部門之間需要共享材料時,可以臨時將用戶Apple加入Jack組中某文件路徑的訪問列表中,然后設(shè)定有效時長,過期后則Apple權(quán)限失效,并從該文件路徑的訪問列表中刪除用戶Apple。由此可見,該訪問控制策略對企業(yè)內(nèi)部數(shù)據(jù)進行了靈活的數(shù)據(jù)隔離,滿足了企業(yè)各角色之間各自的訪問控制安全需求。
4.1.3 企業(yè)內(nèi)各層級之間隔離測試
測試結(jié)果表明:只有文件在NEOTEL的開發(fā)部路徑下時,Bill才可以對其進行讀寫操作。而作為開發(fā)部Eole組的文件路徑雖然在開發(fā)部路徑下,Bill對Eole組文件路徑下的文件僅具有讀權(quán)限。Apple作為開發(fā)部Eole組組長,擁有對Eole組文件路徑下所有數(shù)據(jù)的讀寫權(quán)限,但對開發(fā)部其他部門的文件無讀權(quán)限。由此可見,該訪問控制策略對企業(yè)內(nèi)部各層級之間的數(shù)據(jù)進行了一定程度的數(shù)據(jù)隔離,從垂直方向上滿足了企業(yè)各角色之間各自的訪問控制安全需求。
4.2 性能測試
在存儲平臺上,選取不同規(guī)模的幾個數(shù)據(jù)集,進行了兩組測試。一組測試直接在HDFS集群上進行數(shù)據(jù)操作,而另一組測試則在數(shù)據(jù)存儲平臺上記性數(shù)據(jù)操作,測試方式為進行多組試驗后取平均值,結(jié)果如圖3所示。
從圖3中可知,在數(shù)據(jù)量較低時,數(shù)據(jù)存儲平臺的效率確實不如HDFS集群,但是差別很?。?0s以內(nèi)),這個時間主要消耗在數(shù)據(jù)傳送和用戶權(quán)限驗證上,且這個時間不會隨著數(shù)據(jù)量的增大而變化,因此在數(shù)據(jù)量較大時,兩者的運行效率幾乎一樣。然而由于我們的實驗條件所限,并沒有對更大規(guī)模的數(shù)據(jù)進行測試,但由理論分析可知,影響效率的因素與數(shù)據(jù)量大小是無關(guān)的。由此可以證明,該訪問控制策略對數(shù)據(jù)存儲平臺性能的影響是滿足需求的。
5 結(jié)論
基于Kerberos的多租戶訪問控制策略將提升云存儲平臺的安全性,簡化HDFS權(quán)限管理的復(fù)雜度,提高云存儲平臺權(quán)限管理的交互性能。該策略充分利用了HDFS和Kerberos安全驗證的特點,盡量輕量化加于HDFS上的權(quán)限驗證工作。經(jīng)過測試,證明本文提出的訪問控制策略既保證了數(shù)據(jù)操作的高效率,也保證了數(shù)據(jù)的安全訪問。然而由于測試條件有限,沒有對P級數(shù)據(jù)進行進一步的測試,僅從理論上證明了可行性。