本發(fā)明涉及大數(shù)據(jù)安全領(lǐng)域,尤其涉及一種訪問大數(shù)據(jù)系統(tǒng)的方法及系統(tǒng)。
背景技術(shù):
大數(shù)據(jù)和云計(jì)算在全球掀起研究熱潮,在大力推廣大數(shù)據(jù)和云計(jì)算的過程中,大數(shù)據(jù)安全成為首要攻克的關(guān)鍵。目前針對大數(shù)據(jù)系統(tǒng)的安全防護(hù)基本采用傳統(tǒng)的方式:訪問大數(shù)據(jù)系統(tǒng)使用ssh工具通過4a的堡壘機(jī)進(jìn)行,數(shù)據(jù)安全依賴命令和金庫的訪問控制。然而,大數(shù)據(jù)系統(tǒng)存在多個(gè)訪問途徑。比如:除了ssh外,還可以通過大數(shù)據(jù)系統(tǒng)所提供的api訪問。此時(shí)傳統(tǒng)堡壘機(jī)方式對于api訪問數(shù)據(jù)時(shí)無法起到防護(hù)作用。由此可見,現(xiàn)有技術(shù)在大數(shù)據(jù)安全防護(hù)方面存在技術(shù)漏洞,如何提高大數(shù)據(jù)的安全性值得深入探討。
此外,針對大數(shù)據(jù)的日志記錄存在信息不完整的情況,有些系統(tǒng)為了精簡存儲空間或者對業(yè)務(wù)的過分偏重,日志中往往缺少用戶訪問記錄。事實(shí)上,該信息也屬于大數(shù)據(jù)安全的重點(diǎn)保護(hù)內(nèi)容,用戶行為記錄中包含了大量潛在信息,也能暴露一些系統(tǒng)存在的安全隱患,如何對用戶行為記錄進(jìn)行有效利用也是大數(shù)據(jù)應(yīng)用與研究中不可回避的問題。
對于大數(shù)據(jù)系統(tǒng)的安全防護(hù),現(xiàn)有技術(shù)存在以下薄弱環(huán)節(jié):現(xiàn)有的堡壘系統(tǒng)無法對用戶通過api訪問大數(shù)據(jù)系統(tǒng)進(jìn)行訪問控制;操作日志分布存儲在大數(shù)據(jù)平臺的各個(gè)服務(wù)器且缺乏足夠的行為記錄信息,使得大數(shù)據(jù)系統(tǒng)不能對其進(jìn)行綜合利用處理。
技術(shù)實(shí)現(xiàn)要素:
為了克服上述問題,本發(fā)明提供一種訪問大數(shù)據(jù)系統(tǒng)的方法及系統(tǒng),來克服大數(shù)據(jù)系統(tǒng)中存在安全隱患的問題。
為了解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:
一方面,本發(fā)明提供了一種訪問大數(shù)據(jù)系統(tǒng)的方法,包括:
檢測是否通過應(yīng)用程序編程接口api接收到應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問請求;
當(dāng)接收到所述操作訪問請求時(shí),獲取所述應(yīng)用方提供的身份認(rèn)證信息;
根據(jù)所述身份認(rèn)證信息,按照預(yù)設(shè)置的身份認(rèn)證規(guī)則,對所述應(yīng)用方進(jìn)行身份認(rèn)證檢測;
當(dāng)所述應(yīng)用方符合身份認(rèn)證條件時(shí),判斷所述操作訪問請求是否為具有權(quán)限的已授權(quán)請求;
當(dāng)所述操作訪問請求為具有權(quán)限的已授權(quán)請求時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)。
可選地,所述方法還包括:
當(dāng)所述應(yīng)用方不符合身份認(rèn)證條件時(shí),或,當(dāng)所述操作訪問請求為不具有權(quán)限的未授權(quán)請求時(shí),通過所述api向所述應(yīng)用方發(fā)出提醒消息。
可選地,所述將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)之前,所述方法還包括:
分析所述操作訪問請求中的請求內(nèi)容是否包含敏感數(shù)據(jù);
當(dāng)所述操作訪問請求中的請求內(nèi)容包含敏感數(shù)據(jù)時(shí),按照預(yù)設(shè)置的敏感數(shù)據(jù)訪問策略,判斷是否能夠?qū)λ霾僮髟L問請求進(jìn)行放行;
當(dāng)判斷能夠放行時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng);
當(dāng)判斷不能夠放行時(shí),對所述操作訪問請求進(jìn)行阻斷。
可選地,所述當(dāng)接收到所述操作訪問請求時(shí),所述方法還包括:
對所述應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問進(jìn)行日志記錄;
所述日志中記錄的內(nèi)容包括:所述應(yīng)用方信息、所述操作訪問請求的執(zhí)行信息、被訪問的所述大數(shù)據(jù)系統(tǒng)信息、所述操作訪問請求所請求的目標(biāo)資源信息、所述api信息和所述操作訪問請求的原始信息中的至少一項(xiàng)。
可選地,所述檢測是否通過api接收到應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問請求之前,所述方法還包括:
通過所述api獲取所述應(yīng)用方的注冊請求;
根據(jù)所述注冊請求,向所述應(yīng)用方分配與所述注冊請求相對應(yīng)的身份認(rèn)證 標(biāo)識及數(shù)據(jù)操作訪問權(quán)限。
可選地,所述將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)之前,所述方法還包括:
判斷所述操作訪問請求使用的線程數(shù)量是否達(dá)到所述大數(shù)據(jù)系統(tǒng)中可提供的最大可使用線程數(shù)量;
當(dāng)所述操作訪問請求使用的線程數(shù)量未達(dá)到所述最大可使用線程數(shù)量時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng);
當(dāng)所述操作訪問請求使用的線程數(shù)量達(dá)到所述最大可使用線程數(shù)量時(shí),將所述操作訪問請求放入請求消息轉(zhuǎn)發(fā)的等待隊(duì)列。
可選地,當(dāng)所述操作訪問請求為數(shù)據(jù)寫入操作請求時(shí),所述將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)之前,所述方法還包括:
判斷所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額是否已存滿;
當(dāng)所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額未存滿時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng);
當(dāng)所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額已存滿時(shí),將所述操作訪問請求放入請求消息轉(zhuǎn)發(fā)的等待隊(duì)列。
另一方面,本發(fā)明還提供了一種訪問大數(shù)據(jù)系統(tǒng)的系統(tǒng),包括:
檢測模塊,用于檢測是否通過應(yīng)用程序編程接口api接收到應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問請求;
獲取模塊,用于當(dāng)接收到所述操作訪問請求時(shí),獲取所述應(yīng)用方提供的身份認(rèn)證信息;
認(rèn)證模塊,用于根據(jù)所述身份認(rèn)證信息,按照預(yù)設(shè)置的身份認(rèn)證規(guī)則,對所述應(yīng)用方進(jìn)行身份認(rèn)證檢測;
第一判斷模塊,用于當(dāng)所述應(yīng)用方符合身份認(rèn)證條件時(shí),判斷所述操作訪問請求是否為具有權(quán)限的已授權(quán)請求;
第一轉(zhuǎn)發(fā)模塊,用于當(dāng)所述操作訪問請求為具有權(quán)限的已授權(quán)請求時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)。
可選地,所述系統(tǒng)還包括:
提醒模塊,用于當(dāng)所述應(yīng)用方不符合身份認(rèn)證條件時(shí),或,當(dāng)所述操作訪 問請求為不具有權(quán)限的未授權(quán)請求時(shí),通過所述api向所述應(yīng)用方發(fā)出提醒消息。
可選地,所述系統(tǒng)還包括:
分析模塊,用于分析所述操作訪問請求中的請求內(nèi)容是否包含敏感數(shù)據(jù);
第二判斷模塊,用于當(dāng)所述操作訪問請求中的請求內(nèi)容包含敏感數(shù)據(jù)時(shí),按照預(yù)設(shè)置的敏感數(shù)據(jù)訪問策略,判斷是否能夠?qū)λ霾僮髟L問請求進(jìn)行放行;
第二轉(zhuǎn)發(fā)模塊,用于當(dāng)判斷能夠放行時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng);
阻斷模塊,用于當(dāng)判斷不能夠放行時(shí),對所述操作訪問請求進(jìn)行阻斷。
可選地,所述系統(tǒng)還包括:
日志記錄模塊,用于對所述應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問進(jìn)行日志記錄;
所述日志中記錄的內(nèi)容包括:所述應(yīng)用方信息、所述操作訪問請求的執(zhí)行信息、被訪問的所述大數(shù)據(jù)系統(tǒng)信息、所述操作訪問請求所請求的目標(biāo)資源信息、所述api信息和所述操作訪問請求的原始信息中的至少一項(xiàng)。
可選地,所述系統(tǒng)還包括:
注冊請求獲取模塊,用于通過所述api獲取所述應(yīng)用方的注冊請求;
標(biāo)識及權(quán)限分配模塊,用于根據(jù)所述注冊請求,向所述應(yīng)用方分配與所述注冊請求相對應(yīng)的身份認(rèn)證標(biāo)識及數(shù)據(jù)操作訪問權(quán)限。
可選地,所述系統(tǒng)還包括:
第三判斷模塊,用于判斷所述操作訪問請求使用的線程數(shù)量是否達(dá)到所述大數(shù)據(jù)系統(tǒng)中可提供的最大可使用線程數(shù)量;
第三轉(zhuǎn)發(fā)模塊,用于當(dāng)所述操作訪問請求使用的線程數(shù)量未達(dá)到所述最大可使用線程數(shù)量時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng);
第一等待隊(duì)列加入模塊,用于當(dāng)所述操作訪問請求使用的線程數(shù)量達(dá)到所述最大可使用線程數(shù)量時(shí),將所述操作訪問請求放入請求消息轉(zhuǎn)發(fā)的等待隊(duì)列。
可選地,所述系統(tǒng)還包括:
第四判斷模塊,用于判斷所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額是否已存滿;
第四轉(zhuǎn)發(fā)模塊,用于當(dāng)所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額未存滿時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng);
第二等待隊(duì)列加入模塊,用于當(dāng)所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額已存滿時(shí),將所述操作訪問請求放入請求消息轉(zhuǎn)發(fā)的等待隊(duì)列。
本發(fā)明的有益效果是:
上述方案,從整體上架構(gòu)了一個(gè)基于大數(shù)據(jù)系統(tǒng)的代理層,應(yīng)用方對大數(shù)據(jù)系統(tǒng)的所有操作均通過由代理層轉(zhuǎn)發(fā)給實(shí)際大數(shù)據(jù)系統(tǒng),對大數(shù)據(jù)系統(tǒng)的訪問的認(rèn)證、鑒權(quán)都由代理層來完成,并主要由該代理層完成對大數(shù)據(jù)系統(tǒng)的實(shí)際操作,保證大數(shù)據(jù)系統(tǒng)的安全,該基于代理層的大數(shù)據(jù)系統(tǒng)安全防護(hù)過程將大數(shù)據(jù)系統(tǒng)與外部應(yīng)用方、業(yè)務(wù)系統(tǒng)、大數(shù)據(jù)分析維護(hù)人員等隔離開來,形成訪問緩沖區(qū),既便于對大數(shù)據(jù)平臺的使用者進(jìn)行統(tǒng)一管理,又實(shí)現(xiàn)了訪問大數(shù)據(jù)平臺的事中控制,極大程度上提高了大數(shù)據(jù)平臺中所存數(shù)據(jù)的安全性。
附圖說明
圖1表示本發(fā)明第一實(shí)施例中流程示意圖;
圖2表示本發(fā)明第二實(shí)施例中流程示意圖一;
圖3表示本發(fā)明第二實(shí)施例中流程示意圖二;
圖4表示本發(fā)明第二實(shí)施例中流程示意圖三;
圖5表示本發(fā)明第三實(shí)施例中代理平臺的功能架構(gòu)示意圖;
圖6表示本發(fā)明第三實(shí)施例中代理平臺的技術(shù)結(jié)構(gòu)示意圖;
圖7表示本發(fā)明第三實(shí)施例中代理平臺服務(wù)及交互的流程示意圖一;
圖8表示本發(fā)明第三實(shí)施例中代理平臺服務(wù)及交互的流程示意圖二;
圖9表示本發(fā)明第四實(shí)施例中模塊示意框圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
第一實(shí)施例
如圖1所示,本發(fā)明公開了一種訪問大數(shù)據(jù)系統(tǒng)的方法,該方法包括:
步驟101:檢測是否通過應(yīng)用程序編程接口api接收到應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問請求。
具體地,該應(yīng)用方具體可以為包括用戶、系統(tǒng)應(yīng)用程序等在內(nèi)的大數(shù)據(jù)系統(tǒng)的應(yīng)用對象。
步驟102:當(dāng)接收到所述操作訪問請求時(shí),獲取所述應(yīng)用方提供的身份認(rèn)證信息。
步驟103:根據(jù)所述身份認(rèn)證信息,按照預(yù)設(shè)置的身份認(rèn)證規(guī)則,對所述應(yīng)用方進(jìn)行身份認(rèn)證檢測。
步驟104:當(dāng)所述應(yīng)用方符合身份認(rèn)證條件時(shí),判斷所述操作訪問請求是否為具有權(quán)限的已授權(quán)請求。
步驟105:當(dāng)所述操作訪問請求為具有權(quán)限的已授權(quán)請求時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)。
上述過程中,主要是通過api來接收外部應(yīng)用方對大數(shù)據(jù)系統(tǒng)的應(yīng)用請求,并對應(yīng)用方提供的身份認(rèn)證信息進(jìn)行檢測,判斷其是否符合認(rèn)證條件,再對符合認(rèn)證條件的應(yīng)用方的操作訪問請求進(jìn)行是否為具有權(quán)限的已授權(quán)請求的判斷,并控制只將具有權(quán)限的已授權(quán)請求轉(zhuǎn)發(fā)至大數(shù)據(jù)系統(tǒng),該過程從兩個(gè)過濾層面降低外部應(yīng)用潛在的對大數(shù)據(jù)系統(tǒng)的不安全使用因素,保證大數(shù)據(jù)系統(tǒng)的數(shù)據(jù)安全,最終得到大數(shù)據(jù)系統(tǒng)的數(shù)據(jù)響應(yīng)。
本方案通過應(yīng)用程序編程接口api,來接收包括用戶、系統(tǒng)應(yīng)用程序等在內(nèi)的應(yīng)用方的對大數(shù)據(jù)系統(tǒng)的操作訪問請求,并在應(yīng)用方的請求發(fā)來時(shí),對其進(jìn)行鑒權(quán),以保證該應(yīng)用方為合法應(yīng)用方,保護(hù)大數(shù)據(jù)系統(tǒng)的數(shù)據(jù)安全,并最終將符合認(rèn)證條件的應(yīng)用方的具有權(quán)限的已授權(quán)請求轉(zhuǎn)發(fā)至大數(shù)據(jù)系統(tǒng),以得到大數(shù)據(jù)系統(tǒng)的響應(yīng),該方案從整體上架構(gòu)了一個(gè)基于大數(shù)據(jù)系統(tǒng)的代理層,進(jìn)而形成一代理平臺,由該代理層完成基于大數(shù)據(jù)系統(tǒng)的對外代理業(yè)務(wù),用戶、應(yīng)用程序等應(yīng)用方對大數(shù)據(jù)系統(tǒng)的所有操作均通過由代理層轉(zhuǎn)發(fā)給實(shí)際大數(shù)據(jù)系統(tǒng),代理層在執(zhí)行轉(zhuǎn)發(fā)前判斷應(yīng)用方的操作訪問請求是否已被授權(quán),只有在被授權(quán)的情況下,才能對用戶、應(yīng)用等應(yīng)用方發(fā)來的已授權(quán)請求做出處理, 具體可以是基于網(wǎng)絡(luò)認(rèn)證協(xié)議kerberos實(shí)現(xiàn)應(yīng)用方訪問大數(shù)據(jù)平臺的統(tǒng)一認(rèn)證、單點(diǎn)登錄。該代理層是用戶、應(yīng)用訪問大數(shù)據(jù)系統(tǒng)的必經(jīng)之路,訪問的認(rèn)證、鑒權(quán)都由代理層來完成,并主要由該代理層完成對大數(shù)據(jù)系統(tǒng)的實(shí)際操作,保證大數(shù)據(jù)系統(tǒng)的安全,該基于代理層及代理平臺的大數(shù)據(jù)系統(tǒng)安全防護(hù)過程將大數(shù)據(jù)系統(tǒng)與外部應(yīng)用方、業(yè)務(wù)系統(tǒng)、大數(shù)據(jù)分析維護(hù)人員等隔離開來,形成訪問緩沖區(qū),既便于對大數(shù)據(jù)系統(tǒng)平臺的使用者進(jìn)行統(tǒng)一管理,又實(shí)現(xiàn)了訪問大數(shù)據(jù)系統(tǒng)平臺的事中控制,極大程度上提高了大數(shù)據(jù)系統(tǒng)平臺中所存數(shù)據(jù)的安全性。
第二實(shí)施例
為使本發(fā)明的技術(shù)方案更完善,本實(shí)施例將在第一實(shí)施例基礎(chǔ)上,對第一實(shí)施例中訪問大數(shù)據(jù)系統(tǒng)的方法的實(shí)現(xiàn)過程的優(yōu)選實(shí)施例進(jìn)行描述。
這里,在當(dāng)應(yīng)用方不符合身份認(rèn)證條件時(shí),或,當(dāng)操作訪問請求為不具有權(quán)限的未授權(quán)請求時(shí),還可以通過所述api向應(yīng)用方發(fā)出提醒消息。
進(jìn)一步地,如圖2所示,基于第一實(shí)施例,在步驟104將操作訪問請求轉(zhuǎn)發(fā)至大數(shù)據(jù)系統(tǒng)之前,該方法還包括對應(yīng)用方發(fā)來的操作訪問請求中的請求內(nèi)容進(jìn)行判斷,具體步驟包括:
步驟201:分析所述操作訪問請求中的請求內(nèi)容是否包含敏感數(shù)據(jù)。
具體地,該敏感數(shù)據(jù)可以是由大數(shù)據(jù)系統(tǒng)管理員進(jìn)行預(yù)設(shè)定的數(shù)據(jù)內(nèi)容及數(shù)據(jù)范圍。
步驟202:當(dāng)所述操作訪問請求中的請求內(nèi)容包含敏感數(shù)據(jù)時(shí),按照預(yù)設(shè)置的敏感數(shù)據(jù)訪問策略,判斷是否能夠?qū)λ霾僮髟L問請求進(jìn)行放行。
步驟203:當(dāng)判斷能夠放行時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)。
步驟204:當(dāng)判斷不能夠放行時(shí),對所述操作訪問請求進(jìn)行阻斷。
上述過程,通過在對應(yīng)用方進(jìn)行身份認(rèn)證及對應(yīng)用方發(fā)來的操作訪問請求進(jìn)行鑒權(quán)的同時(shí),代理層還對應(yīng)用方的請求內(nèi)容進(jìn)行是否包含敏感數(shù)據(jù)的分析,如果包含敏感數(shù)據(jù),將按即定的敏感數(shù)據(jù)訪問策略對請求進(jìn)行阻斷或放行,實(shí)現(xiàn)對大數(shù)據(jù)系統(tǒng)中的敏感數(shù)據(jù)內(nèi)容的保護(hù)。具體地,可以基于應(yīng)用方操作訪問請求的訪問區(qū)域、時(shí)間對操作訪問請求進(jìn)行控制,或?qū)γ舾袛?shù)據(jù)識別、分級, 實(shí)現(xiàn)數(shù)據(jù)脫敏,還可以結(jié)合命令集控制、金庫模式來實(shí)現(xiàn)對大數(shù)據(jù)系統(tǒng)中的敏感數(shù)據(jù)的安全防護(hù)。
更進(jìn)一步地,基于第一實(shí)施例,步驟102中當(dāng)接收到操作訪問請求時(shí),該方法還包括:對應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問進(jìn)行日志記錄。
具體地,日志中記錄的內(nèi)容包括:所述應(yīng)用方信息、所述操作訪問請求的執(zhí)行信息、被訪問的所述大數(shù)據(jù)系統(tǒng)信息、所述操作訪問請求所請求的目標(biāo)資源信息、所述api信息和所述操作訪問請求的原始信息中的至少一項(xiàng)。
這里,所有經(jīng)代理層的api到代理層的請求都應(yīng)被記錄詳細(xì)日志。日志中包括的內(nèi)容:應(yīng)用方信息具體包括應(yīng)用方發(fā)來的請求涉及的用戶和程序信息(帳號、角色、程序的ip和端口等);被訪問的大數(shù)據(jù)系統(tǒng)信息具體包括被訪問大數(shù)據(jù)系統(tǒng)的系統(tǒng)名稱、類型、ip和端口等信息;操作訪問請求的執(zhí)行信息具體包括該由應(yīng)用方發(fā)來的操作訪問請求對大數(shù)據(jù)系統(tǒng)的操作時(shí)間、操作關(guān)鍵字、對應(yīng)權(quán)限、操作結(jié)果、失敗原因等信息;操作訪問請求所請求的目標(biāo)資源信息具體包括資源名稱和資源的已配置屬性等信息,具體地,該已配置屬性最多填寫5個(gè)主要屬性;操作訪問請求的原始信息具體包括請求時(shí)間、url、請求方式、請求參數(shù)、響應(yīng)時(shí)間等信息;api信息具體包括:類型、該api所在的域名、ip及端口號等信息。相應(yīng)地,還可以記錄該基于大數(shù)據(jù)系統(tǒng)的代理平臺的名稱及其他相關(guān)詳細(xì)信息。
該方案通過代理技術(shù),詳細(xì)記錄用戶、應(yīng)用訪問大數(shù)據(jù)系統(tǒng)的操作,日志內(nèi)容包括:帳號、角色、用戶ip、程序ip和端口,大數(shù)據(jù)系統(tǒng)名稱、類型、ip和端口,操作關(guān)鍵字、操作結(jié)果、目標(biāo)資源名稱等等,滿足5w1h的大數(shù)據(jù)系統(tǒng)詳細(xì)訪問記錄,便于對用戶、應(yīng)用訪問大數(shù)系統(tǒng)據(jù)的所有操作行為進(jìn)行掌控分析及集中審計(jì)。
進(jìn)一步地,基于第一實(shí)施例,在步驟101檢測是否通過api接收到應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問請求之前,該方法還包括:通過所述api獲取所述應(yīng)用方的注冊請求;根據(jù)所述注冊請求,向所述應(yīng)用方分配與所述注冊請求相對應(yīng)的身份認(rèn)證標(biāo)識及數(shù)據(jù)操作訪問權(quán)限。
所有需要訪問大數(shù)據(jù)系統(tǒng)的應(yīng)用系統(tǒng)等應(yīng)用方均需在本代理平臺中注冊,并通過本平臺為其分配相應(yīng)的程序帳號等認(rèn)證標(biāo)識、授予相應(yīng)的數(shù)據(jù)權(quán)限,當(dāng) 代理平臺收到應(yīng)用的訪問請求后會對其進(jìn)行身份認(rèn)證及鑒權(quán),鑒權(quán)成功后應(yīng)用方才可以訪問大數(shù)據(jù)系統(tǒng),來實(shí)現(xiàn)代理平臺對應(yīng)用方訪問大數(shù)據(jù)平臺所用的帳號等身份認(rèn)證標(biāo)識進(jìn)行集中管理。具體的數(shù)據(jù)操作訪問權(quán)限的授予,可以實(shí)現(xiàn)精細(xì)化授權(quán),對用戶、應(yīng)用訪問大數(shù)據(jù)平臺的目錄、文件、庫、表進(jìn)行細(xì)粒度授權(quán),并對應(yīng)用方的操作訪問請求進(jìn)行識別判斷,對操作訪問請求中為具有權(quán)限的已授權(quán)請求進(jìn)行響應(yīng),充分保護(hù)大數(shù)據(jù)系統(tǒng)的安全性。
更進(jìn)一步地,代理平臺限制各程序調(diào)用代理層的api時(shí)可提供的大數(shù)據(jù)系統(tǒng)資源,例如線程數(shù)和數(shù)據(jù)占用的存儲大小,當(dāng)程序調(diào)用代理層提供的api時(shí),代理平臺會判斷當(dāng)前為此程序提供的線程數(shù)量及此程序最大可使用的線程數(shù)量。
此處對該種情況下的實(shí)施例展開描述,基于第一實(shí)施例,一方面,如圖3所示,在將操作訪問請求轉(zhuǎn)發(fā)至大數(shù)據(jù)系統(tǒng)之前,該方法還包括:
步驟301:判斷所述操作訪問請求使用的線程數(shù)量是否達(dá)到所述大數(shù)據(jù)系統(tǒng)中可提供的最大可使用線程數(shù)量。
步驟302:當(dāng)所述操作訪問請求使用的線程數(shù)量未達(dá)到所述最大可使用線程數(shù)量時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)。
步驟303:當(dāng)所述操作訪問請求使用的線程數(shù)量達(dá)到所述最大可使用線程數(shù)量時(shí),將所述操作訪問請求放入請求消息轉(zhuǎn)發(fā)的等待隊(duì)列。
實(shí)際應(yīng)用中,主要存在以下幾種情況:
第一種情況:如果應(yīng)用程序當(dāng)前使用的線程數(shù)量未達(dá)到設(shè)置的最大可使用線程數(shù)量,則代理平臺會直接為此程序提供服務(wù)。例如:某一應(yīng)用程序當(dāng)前使用的線程數(shù)是15,而最大可用線程數(shù)為20,那么代理平臺就會判斷出當(dāng)前系統(tǒng)存在空閑資源,存在為應(yīng)用程序提供服務(wù)的條件和能力。
第二種情況:如果應(yīng)用程序當(dāng)前使用的線程數(shù)量已達(dá)到設(shè)置的最大可使用線程數(shù)量,則代理平臺會將此請求放入等待隊(duì)列,直到有可用線程釋放后再處理此請求。例如:某一應(yīng)用程序當(dāng)前使用的線程數(shù)是25,而最大可用線程數(shù)為20,那么代理平臺就會判斷出當(dāng)前系統(tǒng)資源早已飽和,暫時(shí)無法為應(yīng)用程序提供服務(wù),只好等待直至獲取了足夠的資源。
另一方面,如圖4所示,當(dāng)操作訪問請求為數(shù)據(jù)寫入操作請求時(shí),將操作 訪問請求轉(zhuǎn)發(fā)至大數(shù)據(jù)系統(tǒng)之前,該方法還包括:
步驟401:判斷所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額是否已存滿。
步驟402:當(dāng)所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額未存滿時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)。
步驟403:當(dāng)所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額已存滿時(shí),將所述操作訪問請求放入請求消息轉(zhuǎn)發(fā)的等待隊(duì)列。
實(shí)際應(yīng)用中,當(dāng)應(yīng)用程序向大數(shù)據(jù)系統(tǒng)中寫入數(shù)據(jù)時(shí),代理平臺會事先判斷大數(shù)據(jù)系統(tǒng)中為此程序事先分配的存儲配額是否已滿,如果存儲已滿,那么在強(qiáng)行寫入的時(shí)候有可能存在錯(cuò)寫可能,所以當(dāng)代理平臺判斷存儲已滿時(shí),那么應(yīng)用程序?qū)⑦M(jìn)入等待隊(duì)列,在具備充足的存儲空間的情況下再進(jìn)行寫入操作。
本申請中基于代理層的能夠保護(hù)大數(shù)據(jù)系統(tǒng)安全的訪問大數(shù)據(jù)系統(tǒng)的方法應(yīng)該盡量全面覆蓋大數(shù)據(jù)系統(tǒng)數(shù)據(jù)的接口。也就是說,代理層提供的api應(yīng)覆蓋大數(shù)據(jù)系統(tǒng)本身提供的所有api,以便于對大數(shù)據(jù)系統(tǒng)進(jìn)行整體的安全防護(hù)。本發(fā)明通過“協(xié)議級”代理各類大數(shù)據(jù)系統(tǒng)操作,在協(xié)議不變的前提,適用于絕大部分大數(shù)據(jù)系統(tǒng),應(yīng)用接入簡單,不需要修改程序代理。
上述的訪問大數(shù)據(jù)系統(tǒng)的方法,基于代理層對大數(shù)據(jù)系統(tǒng)進(jìn)行安全防護(hù),將大數(shù)據(jù)系統(tǒng)作為一種新的系統(tǒng)資源納入4a管理范圍,實(shí)現(xiàn)大數(shù)據(jù)平臺的帳號管理集中化、授權(quán)管理精細(xì)化、訪問認(rèn)證統(tǒng)一化和操作審計(jì)集中化,彌補(bǔ)了4a堡壘系統(tǒng)無法對用戶通過api訪問大數(shù)據(jù)系統(tǒng)進(jìn)行防護(hù)的缺陷,能夠從事前預(yù)防、事中控制、事后審計(jì)三個(gè)方面構(gòu)成大數(shù)據(jù)系統(tǒng)的安全防護(hù),并對敏感數(shù)據(jù)進(jìn)行重點(diǎn)管控,有效實(shí)現(xiàn)對大數(shù)據(jù)系統(tǒng)的安全防護(hù)及監(jiān)管。
第三實(shí)施例
具體地,在該實(shí)施例中,將對前兩個(gè)實(shí)施例中構(gòu)成的代理平臺的具體組成結(jié)構(gòu)進(jìn)行展開描述。
如圖5、圖6、圖7、圖8所示,該方案從整體上架構(gòu)了一個(gè)基于大數(shù)據(jù)系統(tǒng)的代理層,該代理層的應(yīng)用接口api被應(yīng)用方所調(diào)用,在代理層的api收到應(yīng)用方的操作訪問請求后,代理平臺的功能包括了對應(yīng)用方進(jìn)行身份認(rèn)證、訪問控制、數(shù)據(jù)安全保護(hù)、操作記錄等;對應(yīng)用方的認(rèn)證具體可通過認(rèn)證中心 進(jìn)行,具體為基于網(wǎng)絡(luò)認(rèn)證協(xié)議kerberos實(shí)現(xiàn)應(yīng)用方訪問大數(shù)據(jù)平臺的統(tǒng)一認(rèn)證、單點(diǎn)登錄。大數(shù)據(jù)系統(tǒng)的管理員、分析員、維護(hù)員可以通過代理平臺實(shí)現(xiàn)對大數(shù)據(jù)系統(tǒng)的賬號管理、授權(quán)管理、操作審計(jì)、對代理平臺進(jìn)行管理及監(jiān)控等等。
該基于代理層的大數(shù)據(jù)系統(tǒng)安全防護(hù)過程將大數(shù)據(jù)系統(tǒng)與外部應(yīng)用方、業(yè)務(wù)系統(tǒng)、大數(shù)據(jù)分析維護(hù)人員等隔離開來,形成訪問緩沖區(qū),既便于對大數(shù)據(jù)平臺的使用者進(jìn)行統(tǒng)一管理,又實(shí)現(xiàn)了訪問大數(shù)據(jù)平臺的事中控制,極大程度上提高了大數(shù)據(jù)平臺中所存數(shù)據(jù)的安全性。
進(jìn)一步地,該代理層提供的應(yīng)用程序編程接口api可以是由代理層提供的需要安全認(rèn)證的restful接口。當(dāng)用戶或程序訪問這些restful接口時(shí),代理層需要用戶或應(yīng)用程序等應(yīng)用方提供身份認(rèn)證信息,并控制僅允許應(yīng)用方完成操作訪問請求中已授權(quán)的操作請求,對于操作訪問請求中已授權(quán)的操作請求進(jìn)行解析轉(zhuǎn)發(fā)給大數(shù)據(jù)系統(tǒng),對大數(shù)據(jù)系統(tǒng)對其的響應(yīng)進(jìn)行封裝傳遞給應(yīng)用方。所有非經(jīng)過認(rèn)證的用戶、程序的訪問以及任何未被授權(quán)的操作將全部被拒絕,以保證被管大數(shù)據(jù)系統(tǒng)的安全。
上述過程中,代理平臺對應(yīng)的應(yīng)用方及大數(shù)據(jù)系統(tǒng)可為多個(gè),當(dāng)接收到應(yīng)用方對大數(shù)據(jù)系統(tǒng)的操作訪問請求時(shí),代理平臺的api可接收到多個(gè)大數(shù)據(jù)訪問程序,該多個(gè)大數(shù)據(jù)訪問程序可能為同一應(yīng)用方發(fā)來的,也可能為不同應(yīng)用方發(fā)來的,代理平臺可自行對在多個(gè)應(yīng)用方、多個(gè)大數(shù)據(jù)訪問程序及多個(gè)大數(shù)據(jù)系統(tǒng)間進(jìn)行的操作訪問進(jìn)行控制和協(xié)調(diào);且上述的將操作訪問請求轉(zhuǎn)發(fā)至大數(shù)據(jù)系統(tǒng)具體可以是將操作訪問請求轉(zhuǎn)發(fā)至大數(shù)據(jù)系統(tǒng)的api,通過對大數(shù)據(jù)系統(tǒng)的api的調(diào)用,最終實(shí)現(xiàn)應(yīng)用方的操作訪問請求能夠到達(dá)大數(shù)據(jù)系統(tǒng),并得到大數(shù)據(jù)系統(tǒng)的響應(yīng)。
第四實(shí)施例
如圖9所示,本發(fā)明還公開了一種訪問大數(shù)據(jù)系統(tǒng)的系統(tǒng),包括:檢測模塊501、獲取模塊502、認(rèn)證模塊503、第一判斷模塊504、第一轉(zhuǎn)發(fā)模塊505。
其中,檢測模塊501,用于檢測是否通過應(yīng)用程序編程接口api接收到應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問請求;獲取模塊502,用于當(dāng)接收到所述操作訪問請求時(shí),獲取所述應(yīng)用方提供的身份認(rèn)證信息;認(rèn)證模塊503,用于 根據(jù)所述身份認(rèn)證信息,按照預(yù)設(shè)置的身份認(rèn)證規(guī)則,對所述應(yīng)用方進(jìn)行身份認(rèn)證檢測;第一判斷模塊504,用于當(dāng)所述應(yīng)用方符合身份認(rèn)證條件時(shí),判斷所述操作訪問請求是否為具有權(quán)限的已授權(quán)請求;第一轉(zhuǎn)發(fā)模塊505,用于當(dāng)所述操作訪問請求為具有權(quán)限的已授權(quán)請求時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng)。
該方案從整體上架構(gòu)了一個(gè)基于大數(shù)據(jù)系統(tǒng)的代理層,用戶、應(yīng)用程序等應(yīng)用方對大數(shù)據(jù)系統(tǒng)的所有操作均通過由代理層轉(zhuǎn)發(fā)給實(shí)際大數(shù)據(jù)系統(tǒng),該代理層是用戶、應(yīng)用訪問大數(shù)據(jù)系統(tǒng)的必經(jīng)之路,訪問的認(rèn)證、鑒權(quán)都由代理層來完成,并主要由該代理層完成對大數(shù)據(jù)系統(tǒng)的實(shí)際操作,保證大數(shù)據(jù)系統(tǒng)的安全,該基于代理層的大數(shù)據(jù)系統(tǒng)安全防護(hù)過程將大數(shù)據(jù)系統(tǒng)與外部應(yīng)用方、業(yè)務(wù)系統(tǒng)、大數(shù)據(jù)分析維護(hù)人員等隔離開來,形成訪問緩沖區(qū),既便于對大數(shù)據(jù)平臺的使用者進(jìn)行統(tǒng)一管理,又實(shí)現(xiàn)了訪問大數(shù)據(jù)平臺的事中控制,極大程度上提高了大數(shù)據(jù)平臺中所存數(shù)據(jù)的安全性。
相應(yīng)地,該系統(tǒng)還包括:提醒模塊。
該提醒模塊用于當(dāng)所述應(yīng)用方不符合身份認(rèn)證條件時(shí),或,當(dāng)所述操作訪問請求為不具有權(quán)限的未授權(quán)請求時(shí),通過所述api向所述應(yīng)用方發(fā)出提醒消息。
進(jìn)一步地,該系統(tǒng)還包括:分析模塊、第二判斷模塊、第二轉(zhuǎn)發(fā)模塊、阻斷模塊。
其中,分析模塊,用于分析所述操作訪問請求中的請求內(nèi)容是否包含敏感數(shù)據(jù);第二判斷模塊,用于當(dāng)所述操作訪問請求中的請求內(nèi)容包含敏感數(shù)據(jù)時(shí),按照預(yù)設(shè)置的敏感數(shù)據(jù)訪問策略,判斷是否能夠?qū)λ霾僮髟L問請求進(jìn)行放行;第二轉(zhuǎn)發(fā)模塊,用于當(dāng)判斷能夠放行時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng);阻斷模塊,用于當(dāng)判斷不能夠放行時(shí),對所述操作訪問請求進(jìn)行阻斷。
其中,該系統(tǒng)還包括:日志記錄模塊。
日志記錄模塊,用于對所述應(yīng)用方發(fā)來的對大數(shù)據(jù)系統(tǒng)的操作訪問進(jìn)行日志記錄;該日志中記錄的內(nèi)容包括:所述應(yīng)用方信息、所述操作訪問請求的執(zhí)行信息、被訪問的所述大數(shù)據(jù)系統(tǒng)信息、所述操作訪問請求所請求的目標(biāo)資源信息、所述api信息和所述操作訪問請求的原始信息中的至少一項(xiàng)。
進(jìn)一步地,該系統(tǒng)還包括:注冊請求獲取模塊、標(biāo)識及權(quán)限分配模塊。
其中,注冊請求獲取模塊,用于通過所述api獲取所述應(yīng)用方的注冊請求;標(biāo)識及權(quán)限分配模塊,用于根據(jù)所述注冊請求,向所述應(yīng)用方分配與所述注冊請求相對應(yīng)的身份認(rèn)證標(biāo)識及數(shù)據(jù)操作訪問權(quán)限。
所有需要訪問大數(shù)據(jù)系統(tǒng)的應(yīng)用系統(tǒng)等應(yīng)用方均需在本代理平臺中注冊,并通過本平臺為其分配相應(yīng)的程序帳號等認(rèn)證標(biāo)識、授予相應(yīng)的數(shù)據(jù)權(quán)限,實(shí)現(xiàn)代理平臺對應(yīng)用方訪問大數(shù)據(jù)平臺所用的帳號等身份認(rèn)證標(biāo)識進(jìn)行集中管理。具體的數(shù)據(jù)操作訪問權(quán)限的授予,可以實(shí)現(xiàn)精細(xì)化授權(quán),充分保護(hù)大數(shù)據(jù)系統(tǒng)的安全性。
可選地,該系統(tǒng)還包括:第三判斷模塊、第三轉(zhuǎn)發(fā)模塊、第一等待隊(duì)列加入模塊。
其中,第三判斷模塊,用于判斷所述操作訪問請求使用的線程數(shù)量是否達(dá)到所述大數(shù)據(jù)系統(tǒng)中可提供的最大可使用線程數(shù)量;第三轉(zhuǎn)發(fā)模塊,用于當(dāng)所述操作訪問請求使用的線程數(shù)量未達(dá)到所述最大可使用線程數(shù)量時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng);第一等待隊(duì)列加入模塊,用于當(dāng)所述操作訪問請求使用的線程數(shù)量達(dá)到所述最大可使用線程數(shù)量時(shí),將所述操作訪問請求放入請求消息轉(zhuǎn)發(fā)的等待隊(duì)列。
可選地,該系統(tǒng)還包括:第四判斷模塊、第四轉(zhuǎn)發(fā)模塊。
其中,第四判斷模塊,用于判斷所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額是否已存滿;第四轉(zhuǎn)發(fā)模塊,用于當(dāng)所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額未存滿時(shí),將所述操作訪問請求轉(zhuǎn)發(fā)至所述大數(shù)據(jù)系統(tǒng);第二等待隊(duì)列加入模塊,用于當(dāng)所述大數(shù)據(jù)系統(tǒng)為所述操作訪問請求分配的存儲配額已存滿時(shí),將所述操作訪問請求放入請求消息轉(zhuǎn)發(fā)的等待隊(duì)列。
上述的訪問大數(shù)據(jù)系統(tǒng)的方法,基于代理層對大數(shù)據(jù)系統(tǒng)進(jìn)行安全防護(hù),將大數(shù)據(jù)系統(tǒng)作為一種新的系統(tǒng)資源納入4a管理范圍,實(shí)現(xiàn)大數(shù)據(jù)平臺的帳號管理集中化、授權(quán)管理精細(xì)化、訪問認(rèn)證統(tǒng)一化和操作審計(jì)集中化,彌補(bǔ)了4a堡壘系統(tǒng)無法對用戶通過api訪問大數(shù)據(jù)系統(tǒng)進(jìn)行防護(hù)的缺陷,能夠從事前預(yù)防、事中控制、事后審計(jì)三個(gè)方面構(gòu)成大數(shù)據(jù)系統(tǒng)的安全防護(hù),并對敏感數(shù)據(jù)進(jìn)行重點(diǎn)管控,有效實(shí)現(xiàn)對大數(shù)據(jù)系統(tǒng)的安全防護(hù)及監(jiān)管。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
以上所述的是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出對于本技術(shù)領(lǐng)域的普通人員來說,在不脫離本發(fā)明所述的原理前提下還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也在本發(fā)明的保護(hù)范圍內(nèi)。