馬潔
(寶雞職業(yè)技術(shù)學(xué)院 陜西 寶雞 721000)
基于AWS的訪問控制系統(tǒng)設(shè)計與實現(xiàn)
馬潔
(寶雞職業(yè)技術(shù)學(xué)院 陜西 寶雞721000)
通過對XACML和Amazon Web Services云計算平臺的研究,確定了時間屬性、用戶屬性、動作屬性等5個屬性需求用以支持針對AWS的基于XACML訪問控制系統(tǒng)的設(shè)計,根據(jù)AWS可接受的數(shù)據(jù)類型JSON以及用戶信息采集方法確定了3個基本的系統(tǒng)模塊:用戶信息采集,分屬性用戶信息及XACML訪問控制策略和JSON格式訪問控制策略,最終實現(xiàn)系統(tǒng)設(shè)計。
訪問控制;云計算;AWS;XACML;JSON
在云計算中用戶訪問云計算平臺的過程實際上就是主體(云用戶)訪問客體(云計算平臺)的過程。而所有用戶的數(shù)據(jù)信息均存儲在云計算平臺中,也就是云計算服務(wù)提供商處,因此對于如何獲取這些數(shù)據(jù)信息,也就是對于資源的訪問控制成為了數(shù)據(jù)安全的重中之重。在云計算中應(yīng)用基于 XACML(eXtensible Access Control Markup Language,可擴展訪問控制標記語言)的訪問控制可以提供多策略控制途徑,在訪問控制的前期,可以對用戶進行細粒度的訪問控制安全認證;在訪問控制的后續(xù)工作中,又可以為整個云計算平臺的數(shù)據(jù)系統(tǒng)提供高效的管理與保護措施;從而保證用戶的數(shù)據(jù)信息在云計算平臺中安全有效[1]。
1.1XACML
XACML(eXtensible Access Control Markup Language,可擴展訪問控制標記語言)定義了一種通用的用于保護資源的策略語言和一種訪問控制決策語言,并且與基于屬性的授權(quán)機制相結(jié)合,可對資源進行細粒度的訪問控制,為建立Web服務(wù)的訪問控制模型提供了良好的技術(shù)支持,尤其是對于本身訪問控制安全性并不十分出眾的公共云服務(wù)。
1.2Amazon Web Services
Amazon Web Services是一組云計算服務(wù),它們允許通過應(yīng)用程序訪問Amazon的計算基礎(chǔ)設(shè)施,從主要功能來劃分屬于基礎(chǔ)設(shè)施即服務(wù)類 (IaaS)。經(jīng)過Amazon對于這個平臺的調(diào)整與設(shè)計,它的泛用性以及易用性已經(jīng)大大的提高了[2]。Amazon提供的幾個云計算服務(wù)基本能夠滿足大多數(shù)應(yīng)用系統(tǒng)的核心需求。它們包括存儲、計算、消息傳遞和數(shù)據(jù)庫。
云計算平臺的資源擁有者對于其他用戶使用自身資源的訪問控制需求,即對于資源使用者的屬性有哪些需求。按照目前的云計算平臺發(fā)展程度、特點以及 Amazon Web Services平臺的自身特點,用戶界面中的屬性可以分為以下5類,如圖1所示。
圖1 基于AWS的訪問控制系統(tǒng)屬性劃分
1)時間屬性
時間屬性是對于云計算平臺的資源擁有者來說很重要的屬性之一,因為要想資源或者應(yīng)用有較好的用戶體驗,則資源擁有者應(yīng)當盡量在資源被使用的時候可是實時的監(jiān)控資源的使用情況。但是用戶的使用習(xí)慣各不相同,所以需要對資源使用者的使用時間進行規(guī)范,因此需要引入時間屬性[3]。
2)用戶屬性
用戶屬性主要針對個別用戶使用,資源擁有者需要填寫完整的用戶名用以確定用戶權(quán)限。系統(tǒng)允許資源擁有者添加用戶屬性。該屬性方法類似基于角色控制的訪問控制方法,只不過在基于屬性的訪問控制中,用戶名也作為用戶的一個屬性值出現(xiàn)。
3)動作屬性
動作屬性主要針對通過了訪問控制的用戶可以對應(yīng)用進行的動作進行規(guī)范。包括三個選項,修改,使用,無(只讀)[4]。這3個屬性鍵值中,修改權(quán)限默認有使用及只讀權(quán)限,使用權(quán)限默認有只讀權(quán)限。
4)地點屬性
地點屬性主要針對用戶登錄的IP來判斷用戶登錄地區(qū),從而實現(xiàn)對用戶的登陸地區(qū)的訪問控制。該屬性鍵值可選值最小到洲,即可以選擇允許或者禁止某大洲的用戶登錄/使用/修改等。
5)數(shù)據(jù)流量屬性
數(shù)據(jù)流量屬性主要針對資源使用者使用的數(shù)據(jù)流量的多少來控制。資源使用者需要填寫數(shù)據(jù)限額數(shù),單位為 MB。默認狀態(tài)為不限數(shù)據(jù)流量。
整個訪問控制系統(tǒng)的設(shè)計由3個主要部分組成,首先是用戶界面,其允許用戶按照需求分類將自己的需求有選擇的填寫給系統(tǒng),這部分主要將用戶提供的信息捕捉;
其次是后臺部分的用戶信息與XML文件的信息生成,這部分主要實現(xiàn)將用戶在用戶界面提供的信息生成基于XACML規(guī)范的XML策略文件;最后是將XML數(shù)據(jù)轉(zhuǎn)換成JSON數(shù)據(jù),并將JSON格式的策略文件輸出給用戶[5]。
根據(jù)分析得出的用戶需求以及提出的用于訪問控制的屬性,系統(tǒng)被劃分為3個大的模塊。
圖2 AWS的基于XACML訪問控制系統(tǒng)模塊圖
模塊一:主要實現(xiàn)對用戶需求確定的訪問控制屬性的具體信息的采集,通過用戶界面上的下拉表單以及文本框來獲取用戶信息。對應(yīng)模塊一中的五個次要模塊,又分為五個標簽,每個標簽對應(yīng)需求中的不同屬性需求。
模塊二:主要實現(xiàn)使用在用戶界面采集到的用戶訪問控制信息生成XACML訪問控制策略。所有的XACML訪問控制策略均根據(jù)模塊一中的五個次模塊限定好格式,因此模塊二需要將用戶界面采集的信息填入預(yù)存的策略文件中。并保存為XML格式的訪問控制策略文件。
模塊三:主要實現(xiàn)將上一模塊中根據(jù)用戶界面采集到的信息生成的 XACML訪問控制策略由 XML格式轉(zhuǎn)換為Amazon Web Services Management Console可以接受的JSON格式,并最終在指定路徑輸出一個 JSON格式的訪問控制策略文件。
4.1信息搜集與XML格式轉(zhuǎn)換
根據(jù)上文所述的模塊劃分,基于AWS的訪問控制系統(tǒng)的實現(xiàn)也分為了3個模塊,第一個模塊是實現(xiàn)采集用戶對于訪問控制的需求信息。這部分主要使用java swing控件實現(xiàn)用戶界面,并將用戶界面采集的信息存儲,用以提交給模塊二使用。
模塊二主要需要對用戶界面中用戶提供的訪問控制信息進行采集,調(diào)用 getText()方法以及 getSelectedItem()方法對文本框以及下拉列表中用戶信息的采集。并將數(shù)據(jù)傳遞給按照標準XACML格式編輯好的訪問控制策略文檔,從而在指定目錄生成XML格式的訪問控制策略文件。
模塊三主要實現(xiàn)了將模塊二中根據(jù)用戶界面采集的信息生成的XACML訪問控制策略文件由XML格式轉(zhuǎn)換為Amazon Web Services Management Console可以接受的JSON格式,首先先從XML文檔中解析出服務(wù)器需要接收到的信息,其主要功能由ToJsonSAXHandler類實現(xiàn),ToJsonSAXHandler類繼承了 DefaultHandler類,在解析XML的過程中負責(zé)處理SAX事件[6]。收集到了XML文件中的信息后,則需要將這些信息轉(zhuǎn)換為JSON格式。并且最終生成并輸出JSON格式的訪問控制策略文件。通過采用Java其具體的實現(xiàn)部分關(guān)鍵代碼則如圖3所示。
這樣就可以生成JSON格式的基于XACML規(guī)范的訪問控制策略,從而應(yīng)用到資源擁有者對于組授權(quán)的 IAM步驟中,從而完成了從用戶填寫屬性鍵值到授權(quán)的過程,實現(xiàn)了之前設(shè)計的訪問控制系統(tǒng)。
4.2基于XACML的訪問控制策略創(chuàng)建
通過對PAP策略管理單元的創(chuàng)建,并為PDP部署策略。而其具體的部署流程則如圖4所示。
而在創(chuàng)建中,需要對目標主體和目標課題進行分別的創(chuàng)建,以目標主體為例,對其進行的創(chuàng)建中需要定義其不同的屬性、匹配函數(shù)、屬性名,其具體的代碼在為:
圖3 XML格式與JSON格式轉(zhuǎn)換
圖4 訪問控制策略流程創(chuàng)建
同時由于在該訪問控制中其包含多個不同屬性,因此,在對系統(tǒng)進行設(shè)計過程中,需要將不同的屬性交付給生成的Target的構(gòu)造函數(shù),從而組成成不同的策略目標。其具體的實現(xiàn)代碼為:
文中首先對用戶需求進行了分析,確定了基于屬性的訪問控制策略需要使用的屬性類型以及定義,并基于時間屬性、用戶屬性、動作屬性、地點屬性、流量屬性等共5個屬性的分類以及用戶信息采集、XACML訪問控制策略文件的生成與XML至JSON格式的轉(zhuǎn)換3個大的流程來對訪問控制系統(tǒng)進行模塊劃分,從而更好地實現(xiàn)訪問控制系統(tǒng)的設(shè)計。
[1]陳濤.云計算理論及技術(shù)研究[J].重慶交通大學(xué)學(xué)報,2009,9(4):101-106.
[2]姚學(xué)禮.基于內(nèi)容過濾垃圾綜述[J].計算機工程與應(yīng)用,2010,12(23):34-39.
[3]ZHANG Deng-ke,WANG Xing-wei,YI Xiu-shuang.A spam sample feature selection mechanism improved by optimization algorithm[J].Journal of Northeastern University,2011,32(1):190-193.
[4]田明.云計算環(huán)境下的訪問控制技術(shù)研究[J].計算機應(yīng)用技術(shù),2014,5(1):25-26.
[5]丁岳偉,高騰.多系統(tǒng)啟動引導(dǎo)的研究[J].計算機工程與設(shè)計,2009,30(19):4549-4551.
[6]王修君,沈鴻.一種基于增量學(xué)習(xí)型矢量量化的有效文本分類算法[J].計算機學(xué)報,2007,30(8):1277-1285.
Design and implementation access control system based on the AWS
MA Jie
(Baoji Professional Technology Institute,Baoji 721000,China)
This paper studied the XACML and Amazon Web Services cloud computing platform,identified the five properties such as time property、user property,action property requirements to support for the AWS based on XACML access control system design.Based on the data type of the AWS acceptable JSON,user information acquisition method to determine the system module:Collecting user information,user Information and divide attribute of XACML access control and JSON access control strategy,finally designed the system.
access control;cloud computing;AWS;XACML;JSON
TN99
A
1674-6236(2016)06-0182-03
2015-05-13稿件編號:201505108
馬潔(1980—),女,陜西寶雞人,碩士,講師。研究方向:計算機應(yīng)用技術(shù)。