丨怎么一勞永逸地解決數(shù)據(jù)安全問題_第1頁
丨怎么一勞永逸地解決數(shù)據(jù)安全問題_第2頁
丨怎么一勞永逸地解決數(shù)據(jù)安全問題_第3頁
丨怎么一勞永逸地解決數(shù)據(jù)安全問題_第4頁
丨怎么一勞永逸地解決數(shù)據(jù)安全問題_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

22330從微教訓(xùn)我們到什醒呢?cái)?shù)據(jù)中怎止出似的呢?這或許是你需要認(rèn)真思考的內(nèi)容。安全問題可大可小,不出事情,你可能根本不會重視,但是一旦出現(xiàn)事故,就是性的。在網(wǎng)易,我們對數(shù)據(jù)中臺的安全管理是非常嚴(yán)格五寶。它們是你在數(shù)據(jù)中臺建設(shè)中一定會的,學(xué)完之后,你一定可以找到解決這些問題的對于絕大多數(shù)的企業(yè),數(shù)據(jù)中臺的數(shù)據(jù)都在HDFS中,即使是實(shí)時(shí)的數(shù)據(jù)(于Kafka)HDFS,因?yàn)橐4鏆v史數(shù)據(jù)進(jìn)行回算或者補(bǔ)數(shù)據(jù)。所以我們要解決的問題是HDFS的數(shù)據(jù)備份。網(wǎng)易HDFSHDFS快照+DistCp+ECHDFS默認(rèn)的3副本。而冷備集群,主要考慮到成本的因素,采用的是ECEC原理示意為了讓你了解EC的基本原理,我多說幾句。其實(shí),Hadoop在3.x就正式引入了EC這么說可能不太形象,我做個(gè)比喻。比三個(gè)數(shù)據(jù)塊,分別的是1、2和3。我們非數(shù)據(jù)塊內(nèi)容。比如1丟失了,我們可以根據(jù)6-3-2計(jì)算出1,當(dāng)然這個(gè)只是最簡單的EC算法,只能一個(gè)數(shù)據(jù)塊丟失,實(shí)際的EC算法要再復(fù)雜一些。關(guān)于EC具體的算法細(xì)節(jié),不是本節(jié)課的重點(diǎn),不過我在文末提供了一個(gè),你可以課下研究一下。在這里我只想告訴你的是,EC,在不降低可靠性的前提下(與HDFS3副p在x版本就已經(jīng)支持了對某個(gè)文件或者 創(chuàng)建快照,你可以在幾秒內(nèi)完成一照操在做前,先要個(gè) 者文用快此時(shí)應(yīng) 會.snapshot文件夾。在上圖中,我們對/oword啟用快照,然后創(chuàng)建一個(gè)s1在.snapshot下存在s1文件。然后我們刪除/oword/animal/lion文件時(shí),HDFS會animal創(chuàng)建differdiifers1liondiffer下。通過這個(gè)案例,我們不難發(fā)現(xiàn),HDFS和的變化,非常適合每天數(shù)文件被更新的數(shù)據(jù)中臺,代價(jià)和成本也很低。有了快照之后,我們就需要把快照拷貝到冷備集群中,這里選擇的是Hadoop自帶的DistCp。為什么考慮DistCp呢?因?yàn)樗С衷隽繑?shù)據(jù)的同步。它有一個(gè)differ參數(shù),可以對比兩個(gè)快照,僅拷貝增量的數(shù)據(jù)。同時(shí),DistCp是基于MapReduce框架實(shí)現(xiàn)的數(shù)據(jù)同步工具,可以充分利用Hadoop分布式計(jì)算的能力,保證數(shù)據(jù)的拷貝性能。首先,對于第一次開始數(shù)據(jù)備份的文件,我們會先創(chuàng)建一個(gè)快照,然后利用DistCp拷貝全快照基于distcp--differ參數(shù)進(jìn)行對比,將有更新的部分再同步到冷備集群。同步完成以這里需要特別注意的是,拷貝數(shù)據(jù)會對線上I/O產(chǎn)生比較大的壓力,所以盡量在任務(wù)運(yùn)行的低峰期進(jìn)行同步(比如白天12點(diǎn)到晚上24點(diǎn)之間的時(shí)間),同時(shí)DistCp的bandwidth參數(shù)可以限制同步的速率,你可以根據(jù)I/O負(fù)載和數(shù)據(jù)同步速率,動(dòng)態(tài)調(diào)整。比如說,I/O利用率100%,應(yīng)該限制數(shù)據(jù)拷貝帶寬,為10MB/s。 在網(wǎng)易,我們提供了產(chǎn)品化的解決方案,數(shù)據(jù)開發(fā)可以在我們提供的數(shù)據(jù)管理平臺上,選擇一張表,創(chuàng)建備份,然后系統(tǒng)就會自動(dòng)地完成任務(wù)、文件和表的備份。平臺也提供了一鍵恢復(fù)的功能,系統(tǒng)會自動(dòng)地幫數(shù)據(jù)開發(fā)創(chuàng)建任務(wù)和表,拷貝數(shù)據(jù)從冷備集群到線上集群。在我看來,數(shù)據(jù)的備份策略應(yīng)該和數(shù)據(jù)HDFS本身提供了回收站的功能,對于意外刪除的文件,可以在指定時(shí)間內(nèi)進(jìn)行恢復(fù),通過在Core-site.xml中添加如下配置就可以開啟了,默認(rèn)是關(guān)閉狀態(tài)。代代當(dāng)HDFS一旦開啟回收功能后,用戶通過命令行執(zhí)行rm文件操作的時(shí)候,HDFS會將文件移到/user/[用戶名]/.trash/current/ erval配置的時(shí)間過期后被系統(tǒng)自動(dòng)刪除。當(dāng)你需要恢復(fù)文件的時(shí)候,只需要把 聽到這兒,你是不是感覺問題已經(jīng)解決了呢?但是強(qiáng)調(diào)的是HDFS回收機(jī)制在實(shí)際應(yīng)用過程中,存在重大的缺陷。因?yàn)樗荒苤С滞ㄟ^命令行執(zhí)行rm操作,對于在代碼中通過HDFSAPI調(diào)用Delete接口時(shí),會直接刪除文件,回收機(jī)制并不生效。尤其是我HivedroptableHive改造后HDFS那你要怎么解決呢?我建議你可以對HDFS的 進(jìn)行修改,對DeleteAPI通過配置項(xiàng)控制,改成跟rm相同的語義。也就是說,把文件移到trash 。對于Hive上的 進(jìn)行了替換,這樣可以確保用戶通過droptable刪除表和數(shù)據(jù)時(shí),數(shù)據(jù)文件能夠正常進(jìn)入HDFStrash 通過這種方式,你可以解決數(shù)據(jù)誤刪除的問題。但FS回收站不宜保留時(shí)間過長,因?yàn)檎局袚?jù)還副本,會過多的空所出的配合方案是,回收站保留4小時(shí)內(nèi)的數(shù)據(jù)。這樣解決的是數(shù)據(jù)還沒來得及被同步到冷備集群,誤刪除的情況。對于一天以上的數(shù)據(jù)恢復(fù),建議采取基于冷備集群的數(shù)據(jù)備份來恢復(fù)。數(shù)據(jù)權(quán)限是數(shù)據(jù)中臺實(shí)現(xiàn)數(shù)據(jù)復(fù)用的前提和必要條件。如果剛開始系統(tǒng)沒有開啟權(quán)限,后期接入權(quán)限,任務(wù)的改造成本會非常高的,幾乎涉及到所有的任務(wù)。網(wǎng)易數(shù)據(jù)中臺支撐技術(shù)體系是基于OpenLDAP+Kerberos+Ranger實(shí)現(xiàn)的用OpenLDAP就幫我們解決了這個(gè)問題。OpenLDAP是一個(gè)輕量化的 OpenLDAP樹 架構(gòu)示意OpenLDAP(User)(Group),對于每個(gè)用戶,會有唯一的uid,對于每個(gè)組,通過Memberuid,我們可以添加一個(gè)用戶到一個(gè)組中。在網(wǎng)易大數(shù)據(jù)平臺上一個(gè)用戶,平臺會自動(dòng)生成一個(gè)OpenLDAP的用戶,當(dāng)該用戶加入某個(gè)項(xiàng)目時(shí),會將該項(xiàng)目對應(yīng)的Group下增加一個(gè)Memberuid。假設(shè)在上圖中,甄漂亮加入了da_music項(xiàng)目,那么在da_music的Group下,會增加Memberuid:1002。同理,當(dāng)甄美麗加入某個(gè)角色時(shí),在對應(yīng)角色的Group下,也會有甄美麗對應(yīng)的那Hadoop又是怎么跟OpenLDAPHadoop可以使用LdapGroupsMaps同步LDAP創(chuàng)建的用戶和用戶組,這樣當(dāng)我們在LDAP中添加用戶和組時(shí),會自動(dòng)同步到Hadoop集群內(nèi)的所有機(jī)器上。通過這個(gè)方式,你就可以解決用戶管理的問題了,而接下來要解決的就是認(rèn)證的問題。安全網(wǎng)絡(luò)中,除了客戶端要證明自己是誰,對于服務(wù)端而言,同樣也需要證明我是我。為了實(shí)現(xiàn)雙向的認(rèn)證,我們在生產(chǎn)環(huán)境啟用了安全等級最高的,基于共享密鑰實(shí)現(xiàn)的Kerberos說起Kerberos認(rèn)證的原理,舉一個(gè)有趣的例子你肯定去過游樂場吧!為了進(jìn)游樂場,首先你需要提供你的,實(shí)名一張與你身定的。在游樂后呢個(gè)游施前有一據(jù)器,要刷你的,器會一個(gè)樂設(shè)票據(jù)拿著票據(jù)以玩游樂當(dāng)然,當(dāng)你想玩另外一個(gè)游樂設(shè)施的時(shí)候,同樣需要刷一下的門票,生成對應(yīng)游樂設(shè)施的票據(jù)。而且你的門票是有有效期的,在有效期內(nèi),你可以盡情地玩游樂設(shè)施,一旦超過有效期,你需要重新你的門票。KerberosKerberos認(rèn)證與上面這個(gè)故事類似,在上面的故事中,TGT(Ticket-grantingticket)可以看作是門票,首先使用自己的密鑰文件Keytab和用戶標(biāo)識Principal去認(rèn)證服務(wù)器(AS)TGT,認(rèn)證服務(wù)器確認(rèn)是合法的用戶, 會獲得TGT,而這個(gè)TGT使用了TGS(Ticket-grantingservice)的Keytab加密,所以 在每個(gè)Server前, 需要去票據(jù)服務(wù)(TGS)刷一下TGT,獲取每個(gè)服務(wù)的票據(jù)(ST),ST使用了 要的Server的Keytab加密,里面包含了TGS認(rèn)證的用戶信息,是無法ST的。最后基于每個(gè)服務(wù)的票據(jù),以及客戶端自己生成的加密客戶認(rèn)證信息(Auttator)每個(gè)服務(wù)。每個(gè)rvr都有歸屬于自己的Keytabrvr用rvr自己的Keytab才能票據(jù)(S),這就避免了 的rver。與此同時(shí),后票據(jù)中包含TGS認(rèn)證的,通過與Authenticator中 一般在Hadoop中,我們會使用Kinit工具完成TGT的獲取,TGT一般保存24小時(shí)內(nèi)。我介紹Kerberos原理,其實(shí)是想讓你知道,Kerberos對于Hadoop集群來說,是一個(gè)非常安全的認(rèn)證實(shí)現(xiàn)機(jī)制,我推薦你使用Kerberos實(shí)現(xiàn)Hadoop集群的安全認(rèn)證。你可能會問,Kerberos使用的是Principal標(biāo)識用戶的,它又是怎么和OpenLDAP中的用戶打通的呢?其實(shí)我們HDFS,使用的是Principal,Hadoop可以通過配置hadoop.security.auth_to_localPrincipalOpenLDAP時(shí),平臺會為每一個(gè)新的用戶生成Principal以及相對應(yīng)的Keytab文件。為什么要選擇Ranger呢?因?yàn)镽anger提供了細(xì)粒度的權(quán)限控制(Hive列級別),基于策略的控制機(jī)制,支持豐富的組件以及與Kerberos的良好集成。權(quán)限管理的本質(zhì),可以抽象成一個(gè)模型:“用戶-資源-權(quán)限”。Ranger了很多組,每個(gè)一個(gè)標(biāo)識哪個(gè)用戶或者組擁有CRUD權(quán)限。在數(shù)據(jù)中臺中,每一張表都有對應(yīng)的,當(dāng)我們在數(shù)據(jù)地圖中找到我們想要的數(shù)據(jù)的時(shí)候,可以直接申請表的權(quán)限,然后就會發(fā)起一個(gè)權(quán)限申請的工單。表的可以選擇或者申請。申請通過后,就可以基于我們自己的Keytab該表了。另外,需要特別強(qiáng)調(diào)的是,數(shù)據(jù)中會些涉業(yè)的,所據(jù)權(quán)根據(jù)資產(chǎn),制同的策略涉及同的,對級機(jī)密文件,可能需要數(shù)據(jù)中臺來,對于一般的表,只需要表的就可以進(jìn)行到第三步,權(quán)限控制的時(shí)候,其實(shí)已經(jīng)大幅降低了數(shù)據(jù)的風(fēng)險(xiǎn)了,但是一旦真的出現(xiàn)了數(shù)據(jù),須能夠追查到到底誰了數(shù)據(jù),所以,數(shù)據(jù)中臺必須具備審計(jì)的功用戶次,都權(quán)限驗(yàn)證以在權(quán)限時(shí),獲取戶表的記錄,Rangr支持審計(jì)的功能,用戶的記錄會由部署在各個(gè)服務(wù)(F,Base等等)的插件推送到Auditer上,然后在r中Rangr了API接口查詢表的記錄。但是必須的是,Ranger啟Audit后,會對服務(wù)內(nèi)的插件性能產(chǎn)生影響。首先,很多傳統(tǒng)公司的數(shù)據(jù)開發(fā)都是外包人員,從企業(yè)的角度,不希望數(shù)據(jù)開發(fā)直接使用生產(chǎn)環(huán)境的數(shù)據(jù)進(jìn)試,從安全角度,他們希望生產(chǎn)和測試從物理集群上完全,數(shù)據(jù)脫敏以后,給開發(fā)環(huán)境進(jìn)行數(shù)據(jù)測試。其次,涉及一些基礎(chǔ)設(shè)施層面的組件升級(比如SYarnpark等),貿(mào)然最后,雖然可以為生產(chǎn)和開發(fā)環(huán)境設(shè)置不同的庫和隊(duì)列,從而實(shí)現(xiàn),避免開發(fā)任務(wù)影響線上任務(wù)和數(shù)據(jù),但會導(dǎo)致任務(wù)上線需要改動(dòng)代碼,所以最理想的,還是實(shí)現(xiàn)開發(fā)和生產(chǎn)環(huán)境兩套集群,同一套代碼,在開發(fā)環(huán)境對應(yīng)的就是開發(fā)集群,提交上線后,就發(fā)布到生產(chǎn)集一部分來自傳統(tǒng)企業(yè),尤其是金融行業(yè),他們對安全性的要求遠(yuǎn)大于對效率的訴求,嚴(yán)格禁止數(shù)據(jù)開發(fā)使用線上數(shù)據(jù)進(jìn)試,他們希望有兩套完全不同的環(huán)境,包括操作平臺,任務(wù)在開發(fā)環(huán)境進(jìn)行開發(fā),配置任務(wù)依賴,設(shè)置稽核規(guī)則和,然后由運(yùn)維人員進(jìn)行審核后,一鍵發(fā)布到生產(chǎn)環(huán)境。當(dāng)數(shù)據(jù)開發(fā)需要對數(shù)據(jù)進(jìn)試時(shí),可以同步生產(chǎn)環(huán)境的局部數(shù)據(jù)通過這我們可以看到,開發(fā)和測試環(huán)境本身是兩套完全獨(dú)立的平臺,因?yàn)槊看螖?shù)據(jù)測了別的保護(hù)。這樣做的一個(gè)好處在于,一個(gè)集群的Hive可以直接另外一個(gè)集群的數(shù)據(jù)。在同一個(gè)Metastore_dev_onlineHive默認(rèn)會使用_dev庫下的表,而在生產(chǎn)環(huán)境執(zhí)行,Hive默認(rèn)會使用_online庫下的以上就是這節(jié)課的全部內(nèi)容了,總的來說,我為你介紹了解決數(shù)據(jù)中臺安全問題的五大制勝法寶,相信通過這些保障機(jī)制,你可以解決數(shù)據(jù)中臺遇到的安全問題了。最后,我再強(qiáng)調(diào)幾數(shù)據(jù)備份要同時(shí)兼顧備份的性能和成本,推薦采用EC作為備份集群的策略數(shù)據(jù)權(quán)限要實(shí)現(xiàn)精細(xì)化管理,基于OpenLDAP+Kerberos+Ranger可以實(shí)現(xiàn)用造。你是如何思考安全

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論