本發(fā)明涉及數(shù)據(jù)資源權(quán)限管理控制技術(shù)領(lǐng)域,尤其涉及一種用于數(shù)據(jù)分析的訪問控制規(guī)則描述方法。
背景技術(shù):
數(shù)據(jù)分析是指用適當(dāng)?shù)慕y(tǒng)計分析方法,從數(shù)據(jù)中提出有用信息和結(jié)論的過程。隨著云計算、大數(shù)據(jù)等相關(guān)技術(shù)的發(fā)展,越來越多的企業(yè)和機(jī)構(gòu)開始利用數(shù)據(jù)分析技術(shù)挖掘商業(yè)數(shù)據(jù)中的價值。典型的應(yīng)用場景包括零售企業(yè)、醫(yī)療機(jī)構(gòu)和社交網(wǎng)絡(luò)等。然而,商業(yè)數(shù)據(jù)中通常包含許多敏感信息,例如用戶個人信息和商業(yè)機(jī)密信息。為了保護(hù)商業(yè)數(shù)據(jù)的安全,需要對數(shù)據(jù)訪問進(jìn)行控制。
訪問控制技術(shù)通過控制訪問權(quán)限的方式保證資源不被非法使用和訪問。為了利用訪問控制技術(shù)保護(hù)商業(yè)數(shù)據(jù),管理員首先需要利用計算機(jī)可以處理的訪問控制語言編寫訪問控制規(guī)則。目前,一些常見的訪問控制模型或語言包括RBAC(Role Based Access Control,基于角色的訪問控制)和XACML(eXtensible Acess Control Markup Language,可擴(kuò)展的訪問控制標(biāo)記語言)。在RBAC中,每條訪問控制規(guī)則禁止或允許具有某種角色的用戶訪問某種數(shù)據(jù)資源。XACML則支持更加豐富的語法元素,其中每條訪問控制規(guī)則允許或禁止某些用戶在某種條件下以何種動作訪問某種數(shù)據(jù)資源。
然而,對于數(shù)據(jù)分析場景,目前的訪問控制技術(shù)存在如下兩點問題。第一,現(xiàn)有的訪問控制技術(shù)通常假設(shè)數(shù)據(jù)資源是獨立的,因而難以對多種數(shù)據(jù)的同時訪問進(jìn)行控制。但數(shù)據(jù)分析腳本通常會同時訪問多種數(shù)據(jù)資源以進(jìn)行統(tǒng)計分析,并且數(shù)據(jù)資源之間也可能存在關(guān)聯(lián)信息。例如,當(dāng)同時訪問顧客住址和銷售記錄時,數(shù)據(jù)分析人員不僅會得到這兩種信息,也有可能額外得到每個住址的顧客所購買的商品記錄。因此,在數(shù)據(jù)分析中,不僅需要對單獨的數(shù)據(jù)資源進(jìn)行控制,也需要考慮對多種數(shù)據(jù)資源的同時訪問進(jìn)行控制。第二,現(xiàn)有的訪問控制技術(shù)通常只支持對數(shù)據(jù)資源訪問的直接授權(quán),而不能要求在數(shù)據(jù)資源上進(jìn)行特定的操作。但數(shù)據(jù)分析腳本本質(zhì)上是計算機(jī)程序,并且通常會對數(shù)據(jù)資源進(jìn)行某些操作以去除其中的敏感信息,例如求和、平均和截斷操作等。因此,為了更精確的對數(shù)據(jù)資源訪問進(jìn)行授權(quán),也需要將這些脫敏操作考慮在內(nèi)。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是基于現(xiàn)有訪問控制技術(shù)的上述兩個問題,提出一種適用于數(shù)據(jù)分析的訪問控制規(guī)則描述方法,其支持對數(shù)據(jù)資源的同時訪問進(jìn)行控制,并可以要求對數(shù)據(jù)資源進(jìn)行特定的脫敏操作,因此通過其能夠更精確地對數(shù)據(jù)資源訪問進(jìn)行控制。
為實現(xiàn)以上目的,本發(fā)明的一種用于數(shù)據(jù)分析的訪問控制規(guī)則描述方法,具體包括以下步驟:
S1,根據(jù)應(yīng)用場景將用戶角色分割為一個或多個角色單元,以及將數(shù)據(jù)資源分割為一個或多個數(shù)據(jù)元;
S2,將用戶角色組織成層次結(jié)構(gòu)的形式,其中中間節(jié)點包含了其所有后代節(jié)點對應(yīng)的角色單元,其中葉子節(jié)點則對應(yīng)某個應(yīng)用場景下所述角色單元所對應(yīng)的具體人員;將數(shù)據(jù)資源組織成層次結(jié)構(gòu)的形式,其中中間節(jié)點包含了其所有后代節(jié)點對應(yīng)的數(shù)據(jù)元,葉子節(jié)點則對應(yīng)了一組現(xiàn)實數(shù)據(jù);
S3,為每個數(shù)據(jù)資源指定對應(yīng)一組動作;
S4,基于所述用戶角色、數(shù)據(jù)資源和動作,描述對數(shù)據(jù)資源的訪問進(jìn)行控制的訪問控制規(guī)則。
優(yōu)選地,所述具體人員為對應(yīng)某個應(yīng)用場景下的數(shù)據(jù)分析人員。
優(yōu)選地,所述動作包括:
訪問動作、輸出動作和條件判斷動作;
所述訪問動作則表示數(shù)據(jù)資源被輸出或者用在條件判斷中;
所述輸出動作表示某個數(shù)據(jù)資源被輸出到最終結(jié)果中;
所述條件判斷動作表示某個數(shù)據(jù)資源被用在條件判斷中,但沒有被直接輸出。
優(yōu)選地,所述訪問控制規(guī)則包括:
用戶角色、數(shù)據(jù)資源和限制;
并要求當(dāng)用戶同時訪問一組數(shù)據(jù)資源時,必須按照所述限制對數(shù)據(jù)資源進(jìn)行相應(yīng)的脫敏操作。
優(yōu)選地,所述限制包括:
直接禁止數(shù)據(jù)分析腳本;
或者,
根據(jù)條件判斷動作進(jìn)行一個或多個脫敏限制。
優(yōu)選地,所述脫敏限制為訪問控制規(guī)則中的每個數(shù)據(jù)資源關(guān)聯(lián)一組脫敏操作,并要求該數(shù)據(jù)資源以其中的某一個脫敏操作進(jìn)行脫敏;所述脫敏限制中引用的脫敏操作被對應(yīng)的數(shù)據(jù)資源所支持。
本發(fā)明還提供一種用于數(shù)據(jù)分析的訪問控制方法,其在接收到數(shù)據(jù)分析的訪問請求時,基于上述訪問控制規(guī)則進(jìn)行訪問控制。
由上述本發(fā)明的技術(shù)方案可以看出,本發(fā)明具有如下技術(shù)效果:
相比于現(xiàn)有的訪問控制技術(shù),本發(fā)明提出的訪問控制規(guī)則描述方法結(jié)合了數(shù)據(jù)分析腳本的特點,支持對數(shù)據(jù)資源的同時訪問進(jìn)行控制,并可以要求對數(shù)據(jù)資源進(jìn)行特定的脫敏操作。因此,該方法可以更加靈活、精確的描述用于數(shù)據(jù)分析的訪問控制規(guī)則,并更加適用于數(shù)據(jù)分析場景。
附圖說明
附圖1為本發(fā)明的一種用于數(shù)據(jù)分析的訪問控制規(guī)則描述方法流程圖;
附圖2為用戶角色層次結(jié)構(gòu)的示意圖;
附圖3為數(shù)據(jù)資源層次結(jié)構(gòu)的示意圖。
具體實施方式
本發(fā)明提出的是一種適用于數(shù)據(jù)分析的訪問控制規(guī)則描述方法,結(jié)合附圖和實施例說明如下。
如圖1所示,該方法包含以下步驟:
步驟S1:根據(jù)應(yīng)用場景將用戶角色分割為一個或多個角色單元,以及將數(shù)據(jù)資源分割為一個或多個數(shù)據(jù)元;將其中一個角色單元對應(yīng)數(shù)據(jù)分析人員;將其中一個數(shù)據(jù)元對應(yīng)一組現(xiàn)實數(shù)據(jù)。
步驟S2:將用戶角色組織成層次結(jié)構(gòu)的形式,其中中間節(jié)點包含了其所有后代節(jié)點對應(yīng)的角色單元,其中葉子節(jié)點則對應(yīng)某個應(yīng)用場景下所述角色單元所對應(yīng)的具體人員;將數(shù)據(jù)資源組織成層次結(jié)構(gòu)的形式,其中中間節(jié)點包含了其所有后代節(jié)點對應(yīng)的數(shù)據(jù)元,葉子節(jié)點則對應(yīng)了一組現(xiàn)實數(shù)據(jù)。
定義用戶角色。每個用戶角色對應(yīng)了現(xiàn)實中的一組數(shù)據(jù)分析人員。
在編寫訪問控制規(guī)則時,可以對定義的用戶角色進(jìn)行引用。同時,可以將用戶角色組織為層次結(jié)構(gòu)的形式。其中,中間節(jié)點用于組織節(jié)點間的層次關(guān)系,并且包含了其所有的后代節(jié)點對應(yīng)的用戶角色;葉子節(jié)點則對應(yīng)現(xiàn)實中的數(shù)據(jù)分析人員。
例如,圖2給出了用戶角色層次結(jié)構(gòu)的示例。其中,頂層的用戶角色Analyst對應(yīng)了所有的數(shù)據(jù)分析人員?;跀?shù)據(jù)分析人員所分配的任務(wù),Analyst又被進(jìn)一步分為Report Analyst、Marketing Analyst和Advertise Analyst下一級層次的數(shù)據(jù)分析人員。
定義數(shù)據(jù)資源。每個數(shù)據(jù)資源對應(yīng)了一類現(xiàn)實數(shù)據(jù)。在編寫訪問控制規(guī)則時,同樣可以對定義的數(shù)據(jù)資源進(jìn)行引用。類似的,也可以將數(shù)據(jù)資源組織為層次結(jié)構(gòu)的形式。其中,中間節(jié)點用于組織節(jié)點間的層次關(guān)系,并且包含了其所有后代節(jié)點對應(yīng)的數(shù)據(jù)資源;葉子節(jié)點則對應(yīng)了現(xiàn)實數(shù)據(jù)。
在定義數(shù)據(jù)資源時,也可以定義數(shù)據(jù)資源支持的脫敏操作。脫敏操作用于去除數(shù)據(jù)資源的敏感信息,使其可以安全訪問。當(dāng)數(shù)據(jù)資源被組織成層次結(jié)構(gòu)的形式時,一個中間節(jié)點支持的脫敏操作自動被其所有的后代節(jié)點所支持。
例如,圖3給出了顧客個人信息相關(guān)的數(shù)據(jù)資源層次結(jié)構(gòu)示例。其中,All代表了所有的數(shù)據(jù)資源,根據(jù)應(yīng)用場景,其又被進(jìn)一步分為Key Attribute、Quasi Identifier和Sensitive Attribute。Key Attribute代表了可以唯一定位個體的數(shù)據(jù)資源,例如姓名和電話號碼。Quasi Identifier表示那些當(dāng)組合在一起訪問時有可能定位個體的數(shù)據(jù)資源,例如一個組合為生日、郵政編碼和性別。Sensitive Attribute表示顧客敏感信息相關(guān)的數(shù)據(jù)資源,例如顧客購買的商品Sale_Item及價格Sale_Price。對于銷售價格Sale_Price,其脫敏操作可以是聚合操作,例如avg(平均)、sum(求和)、max(取大)和min(取小)等。而對于郵政編碼Zip,其脫敏操作可以是truncate(截斷)操作,用于截去郵編中的某些位。
步驟S3:為每個數(shù)據(jù)資源指定動作;
步驟S4,基于所述用戶角色、數(shù)據(jù)資源、和動作,描述對數(shù)據(jù)資源的訪問進(jìn)行控制的訪問控制規(guī)則。
編寫訪問控制規(guī)則,對數(shù)據(jù)訪問進(jìn)行控制。每條規(guī)則都包含三部分:用戶角色、數(shù)據(jù)資源和限制。并要求當(dāng)某些用戶同時訪問一組數(shù)據(jù)資源時,必須按照限制對數(shù)據(jù)資源進(jìn)行相應(yīng)的脫敏操作。
上述限制包括:直接禁止數(shù)據(jù)分析腳本;或者,根據(jù)條件判斷動作進(jìn)行一個或多個脫敏限制。脫敏限制為訪問控制規(guī)則中的每個數(shù)據(jù)資源關(guān)聯(lián)一組脫敏操作,并要求該數(shù)據(jù)資源以其中的某一個脫敏操作進(jìn)行脫敏;脫敏限制中引用的脫敏操作被對應(yīng)的數(shù)據(jù)資源所支持。
編寫訪問控制規(guī)則具體的編寫步驟如下:
1.編寫訪問控制規(guī)則的用戶部分。引用一個用戶角色定義訪問控制規(guī)則適用的數(shù)據(jù)分析人員。當(dāng)用戶角色被組織成層次結(jié)構(gòu)時,規(guī)則自動適用于被引用節(jié)點的所有后代節(jié)點對應(yīng)的用戶角色,但也可以顯式排除不希望被引用的后代節(jié)點。
2.編寫訪問控制規(guī)則的數(shù)據(jù)部分。引用一個或多個數(shù)據(jù)資源定義訪問控制規(guī)則所適用的數(shù)據(jù)。只有當(dāng)訪問控制規(guī)則中引用的所有數(shù)據(jù)資源被同時訪問時,該訪問控制規(guī)則才會被觸發(fā)。當(dāng)數(shù)據(jù)資源被組織成層次結(jié)構(gòu)時,如果被引用節(jié)點的某個后代節(jié)點對應(yīng)的數(shù)據(jù)資源被訪問,則被引用的節(jié)點也被訪問;同樣的,也可以顯式排除被引用節(jié)點的某些后代節(jié)點。另外,在編寫數(shù)據(jù)部分時,可以為每個數(shù)據(jù)資源定義一個訪問動作。訪問動作分為三種,即access(訪問)、output(輸出)和condition(條件判斷)。其中,output動作表示某個數(shù)據(jù)資源被輸出到最終結(jié)果中,condition動作表示某個數(shù)據(jù)資源被用在條件判斷中,但沒有被直接輸出,access動作則表示數(shù)據(jù)資源被輸出或者用在條件判斷中,即包含了output動作和condition動作。
3.編寫訪問控制規(guī)則的限制部分。限制部分可以直接禁止(forbid)數(shù)據(jù)分析腳本,或者定義一個或多個脫敏限制,以便根據(jù)條件判斷動作進(jìn)行相應(yīng)的脫敏操作。其中,一個脫敏限制為訪問控制規(guī)則中的每個數(shù)據(jù)資源都定義了一組脫敏操作,并要求該數(shù)據(jù)資源必須以其中的某一個脫敏操作進(jìn)行脫敏。脫敏限制中引用的脫敏操作必須被對應(yīng)的數(shù)據(jù)資源所支持。如果一個訪問控制規(guī)則中包含多個脫敏限制,則數(shù)據(jù)分析腳本應(yīng)至少滿足其中一個脫敏限制。
例如,下面給出了一些訪問控制規(guī)則的示例。其中=>前面對應(yīng)了訪問控制規(guī)則的用戶部分和數(shù)據(jù)部分,后面則對應(yīng)了限制部分。
實例1:
r1:Analyst exclude Marketing Analyst,[access Name]=>forbid
訪問控制規(guī)則r1禁止除了Marketing Analyst之外的數(shù)據(jù)分析人員訪問顧客姓名,即只有Marketing Analyst可以訪問顧客姓名。
實例2:
r2:Analyst,[output Address,output Sale_Price]=>[{},{avg,sum,min,max}]
訪問控制規(guī)則r2要求當(dāng)數(shù)據(jù)分析人員同時輸出Address和Sale_Price時,必須對Sale_Price進(jìn)行avg、sum、min或max操作,但對Address沒有脫敏要求。由于在數(shù)據(jù)資源層次結(jié)構(gòu)中,Address進(jìn)一步包含了State、City、Street和Zip,因此當(dāng)其中之一與Sale_Price一起輸出時,該訪問控制規(guī)則同樣適用。另外,該訪問控制規(guī)則中的Address和Sale_Price都對應(yīng)了output動作。因此,當(dāng)Address或Sale_Price沒有被直接輸出而用于條件判斷時,該訪問控制規(guī)則將不再適用。
實例3:
r3:Analyst,[access State,access City,access Street]=>forbid
訪問控制規(guī)則r3禁止數(shù)據(jù)分析人員同時訪問State、City和Street。然而,數(shù)據(jù)分析人員可以單獨訪問三者中的某一個或兩個數(shù)據(jù)資源,例如單獨訪問State,或者同時訪問State和City。
上述訪問控制規(guī)則描述完成后,在接收到用于數(shù)據(jù)分析的訪問控制請求后,基于該訪問控制規(guī)則對該訪問控制請求進(jìn)行控制。該訪問控制方法具體包括如下步驟:
針對每條訪問控制規(guī)則,首先檢查數(shù)據(jù)訪問請求是否觸發(fā)該訪問控制規(guī)則;如果觸發(fā),再檢查數(shù)據(jù)訪問請求是否滿足該訪問控制規(guī)則的限制;若滿足,則繼續(xù)遍歷后續(xù)的訪問控制規(guī)則,直至數(shù)據(jù)訪問請求滿足所有的訪問控制規(guī)則時,該數(shù)據(jù)資源請求才被授權(quán);否則,該數(shù)據(jù)資源請求將被拒絕。
以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。