北風(fēng)網(wǎng)cloudera5hadoop高階管理及調(diào)優(yōu)課程cdh5,hadoop2.0安全-07背景_第1頁
北風(fēng)網(wǎng)cloudera5hadoop高階管理及調(diào)優(yōu)課程cdh5,hadoop2.0安全-07背景_第2頁
北風(fēng)網(wǎng)cloudera5hadoop高階管理及調(diào)優(yōu)課程cdh5,hadoop2.0安全-07背景_第3頁
北風(fēng)網(wǎng)cloudera5hadoop高階管理及調(diào)優(yōu)課程cdh5,hadoop2.0安全-07背景_第4頁
北風(fēng)網(wǎng)cloudera5hadoop高階管理及調(diào)優(yōu)課程cdh5,hadoop2.0安全-07背景_第5頁
免費預(yù)覽已結(jié)束,剩余30頁可下載查看

下載本文檔

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

文檔簡介

Hadoop安全背景共享集群

按照業(yè)務(wù)或應(yīng)用的規(guī)則劃分資源隊列,并分配給特定用戶HDFS上存放各種數(shù)據(jù),包括公共的、機密的重要概念安全認(rèn)證:確保某個用戶是自己聲稱的那個用戶安全授權(quán):確保某個用戶只能做他允許的那些操作User:Hadoop用戶,可以提交作業(yè),查看自己作業(yè)狀態(tài),查看HDFS上的文件Service:Hadoop中的服務(wù)組件,包括:namenode,resourcemanager,datanode,nodemanagerHadoop1.0安全問題

UsertoServiceNamenode或者jobtracker缺乏安全認(rèn)證機制DataNode缺乏安全授權(quán)機制JobTracker缺乏安全授權(quán)機制

Servicetoservice安全認(rèn)證

Datanode與TaskTracker缺乏安全授權(quán)機制,這使得用戶可以隨意啟動假的datanode和tasktracker磁盤或者通信連接沒有經(jīng)過加密Hadoop安全機制

ApacheHadoop1.0.0版本和ClouderaCDH3之后的版本添加了安全機制

Hadoop提供了兩種安全機制:Simple和KerberosSimple

采用SAAS協(xié)議,默認(rèn)機制

配置簡單、使用簡單、適合單一團隊使用

kerberos

Kerberos可以將認(rèn)證的密鑰在集群部署時事先放到可靠的節(jié)點上。只有被認(rèn)證過節(jié)點才能正常使用

配置稍復(fù)雜、使用稍麻煩、安全性高Kerberos解決的Hadoop認(rèn)證問題

kerberos實現(xiàn)的是機器級別的安全認(rèn)證,也就是服務(wù)到服務(wù)的認(rèn)證

解決服務(wù)器到服務(wù)器的認(rèn)證防止了用戶偽裝成Datanode,Tasktracker,去接受JobTracker,Namenode的任務(wù)指派解決client到服務(wù)器的認(rèn)證

Kerberos對可信任的客戶端提供認(rèn)證,確保他們可以執(zhí)行作業(yè)的相關(guān)操作對用戶級別上的認(rèn)證并沒有實現(xiàn)無法控制用戶提交作業(yè)的操作Kerberos基本概念Principal(安全個體):被認(rèn)證的個體,有一個名字和口令KDC(keydistributioncenter):是一個網(wǎng)絡(luò)服務(wù),提供ticket和臨時會話密鑰Ticket:一個票據(jù),客戶用它來向服務(wù)器證明自己的身份,包括客戶標(biāo)識、會話密鑰、時間戳。AS(AuthenticationServer):認(rèn)證服務(wù)器TGS(TicketGrantingServer):許可證服務(wù)器TGT:Ticket-grantingTicketKerberos協(xié)議

分兩部分

Client從KDC獲取TGTClient利用獲取的TGT向KDC請求其他Service的TicketKerberos認(rèn)證過程

認(rèn)證過程也是SessionKey安全發(fā)布的過程Kerberos認(rèn)證授權(quán)過程kerberos在Hadoop上的應(yīng)用kerberos在Hadoop上的應(yīng)用使用kerberos進(jìn)行驗證的原因

可靠Hadoop本身并沒有認(rèn)證功能和創(chuàng)建用戶組功能,使用依靠外圍的認(rèn)證系統(tǒng)

高效Kerberos使用對稱鑰匙操作,比SSL的公共密鑰快操作簡單Kerberos依賴于第三方的統(tǒng)一管理中心--KDC,管理員對用戶的操作直接作用在KDC上Hadoop1.0安全機制的具體實現(xiàn)

在1.0.0之后的版本中,Hadoop在RPC、HDFS和MapReduce等方面引入了安全機制RPCHadoopRPC安全機制包括基于Kerberos和令牌的身份認(rèn)證機制和基于ACL的服務(wù)訪問控制機制

HDFS

客戶端與HDFS之間的通信連接由兩部分組成,它們均采用了Kerberos與令牌相結(jié)合的方法進(jìn)行身份認(rèn)證

MapReduceMapReduce權(quán)限管理和身份認(rèn)證涉及作業(yè)提交、作業(yè)控制、任務(wù)啟動、任務(wù)運行和Shuffle等階段上層服務(wù)

很多上層服務(wù)充當(dāng)Hadoop服務(wù)的請求代理,比如Oozie、Hive等RPC安全--身份認(rèn)證機制Hadoop中所有RPC連接均采用了SASLHadoop另外將Kerberos和DIGEST-MD5兩種認(rèn)證機制添加到SASL中實現(xiàn)安全認(rèn)證

基于共享密鑰生成的安全認(rèn)證憑證稱為令牌(Token),Hadoop中共有三種令牌

授權(quán)令牌(DelegationToken)

授權(quán)令牌主要用于NameNode為客戶端進(jìn)行認(rèn)證數(shù)據(jù)塊訪問令牌(BlockAccessToken)

數(shù)據(jù)塊訪問令牌主要用于DataNode、SecondaryNameNode和Balancer為客戶端存取數(shù)據(jù)塊進(jìn)行認(rèn)證作業(yè)令牌(JobToken)

作業(yè)令牌主要用于TaskTracker對任務(wù)進(jìn)行認(rèn)證基于令牌的安全認(rèn)證機制的優(yōu)勢

性能好

憑證更新Kerberos的票據(jù)過期后需要更新,比較繁瑣

令牌方式只需要延長有效期

安全性泄露TGT造成的危害遠(yuǎn)比泄露令牌大

靈活性令牌與Kerberos之間沒有任何依賴關(guān)系RPC安全—服務(wù)訪問控制機制Hadoop提供的最原始的授權(quán)機制

服務(wù)訪問控制是通過控制各個服務(wù)之間的通信協(xié)議實現(xiàn)的,它通常發(fā)生在其他訪問控制機制之前

啟動功能

在core-site.xml中將參數(shù)hadoop.security.authorization置為true在hadoop-policy.xml中為各個通信協(xié)議指定具有訪問權(quán)限的用戶或者用戶組

具有訪問權(quán)限的用戶或者用戶組稱為訪問控制列表(AccessControlList,ACL)訪問控制協(xié)議(Hadoop1.0)訪問控制協(xié)議(Hadoop2.0)HDFS安全策略采用Kerberos與令牌相結(jié)合的方法進(jìn)行身份認(rèn)證

客戶端與HDFS之間的通信連接由兩部分組成

客戶端向NameNode發(fā)起的RPC連接客戶端向DataNode發(fā)起的Block傳輸連接

授權(quán)令牌(DelegationToken)認(rèn)證過程Client通過了Kerberos認(rèn)證Client通過Namenode認(rèn)證,獲取授權(quán)令牌Client告訴NameNode誰是令牌的重新申請者

所有的令牌重新申請者是JobTracker,負(fù)責(zé)更新令牌直至作業(yè)運行完成

數(shù)據(jù)塊訪問令牌(DataBlockAccessToken)認(rèn)證

數(shù)據(jù)塊訪問令牌由NameNode生成,并在DataNode端進(jìn)行合法性驗證MapReduce安全策略

MapReduce權(quán)限管理和身份認(rèn)證涉及作業(yè)提交、作業(yè)控制、任務(wù)啟動、任務(wù)運行和Shuffle等階段

作業(yè)提交

用戶提交作業(yè)后,JobClient需與NameNode和JobTracker等服務(wù)進(jìn)行通信,以進(jìn)行身份認(rèn)證和獲取相關(guān)令牌

作業(yè)控制

可以通過參數(shù)控制哪些用戶或者用戶組可以提交或者取消作業(yè),如mapreduce.job.acl-view-job和mapreduce.job.acl-modify-job

任務(wù)啟動TaskTracker收到JobTracker分配的任務(wù)后,如果該任務(wù)來自某個作業(yè)的第一個任務(wù),則會進(jìn)行作業(yè)本地化MapReduce安全策略作業(yè)運行Hadoop以實際提交作業(yè)的那個用戶身份運行相應(yīng)的任務(wù)

用C程序?qū)崿F(xiàn)了一個setuid程序以修改每個任務(wù)所在JVM的有效用戶ID

ShuffleHadoop在ReduceTask與TaskTracker之間的通信機制上添加了雙向認(rèn)證機制,以保證有且僅有同作業(yè)的ReduceTask才能夠讀取MapTask的中間結(jié)果

WebUIKerberos中已經(jīng)自帶了Web瀏覽器訪問認(rèn)證機制上層服務(wù)

Hadoop引入了“超級用戶”的概念,這些用戶可以以其他人的身份訪問Hadoop的各個服務(wù)超級用戶需能夠經(jīng)過Kerberos認(rèn)證當(dāng)超級用戶希望與Hadoop的某個服務(wù)建立RPC連接時,首先需要使用doAs方法設(shè)置該連接

比如,讓超級用戶oozie安全地偽裝成普通用戶dylan,需使用oozie的Kerberos憑證登陸系統(tǒng)并為dylan創(chuàng)建一個代理ugi上層服務(wù)

另外,在配置文件中指定超級用戶oozie可偽裝成的所有用戶,同時限制oozie所在的IPHadoop1.0安全機制的應(yīng)用場景

創(chuàng)建安全用戶,比如hdfs和mapreduce,并為其添加Kerberos認(rèn)證

用不同的用戶安全地啟動HDFS服務(wù)和MapReduce服務(wù)

一個安全的Hadoop集群,需要在各種應(yīng)用場景中涉及安全認(rèn)證過程

文件存取

作業(yè)提交與運行

上層中間件訪問Hadoop文件存取

在NameNode和DataNode節(jié)點上為用戶hdfs添加Kerberos認(rèn)證

一個應(yīng)用程序從HDFS上存取文件涉及的安全認(rèn)證作業(yè)提交與運行在JobTracker和TaskTracker節(jié)點上為用戶mapreduce添加Kerberos認(rèn)證

一個應(yīng)用程序從作業(yè)提交到運行涉及的安全認(rèn)證上層中間件訪問HadoopHadoop有很多上層中間件,比如Oozie、Hive等。它們通常采用“偽裝成其他用戶”的方式訪問HadoopHadoop2.0安全機制的實現(xiàn)

系統(tǒng)安全機制由認(rèn)證(authentication)和授權(quán)(authorization)兩大部分構(gòu)成同Hadoop1.0一樣,Hadoop2.0中的認(rèn)證機制采用Kerbero和Token兩種方案授權(quán)則是通過引入訪問控制列表(AccessControlList,ACL)實現(xiàn)的Hadoop2.0認(rèn)證機制Client與NameNode和Client與ResourceManager之間初次通信均采用了Kerberos進(jìn)行身份認(rèn)證,之后便換用DelegationToken以較小開銷DataNode與NameNode和NodeManager與ResourceManager之間的認(rèn)證始終采用Kerberos機制

通過將參數(shù)hadoop.security.authentication設(shè)為“kerberos”來啟動KerberosHadoop2.0認(rèn)證機制YARN中的各類Token及其作用ResourceManagerDelegationTokenResourceManager授權(quán)令牌

持有該令牌的應(yīng)用程序及其發(fā)起的任務(wù)可以安全地與ResourceManager交互YARNApplicationToken

用于保證ApplicationMaster與ResourceManager之間的通信安全

由ResourceManager傳遞給NodeManager

該Token的生命周期與ApplicationMaster實例一致YARNNodeManagerToken

用于保證ApplicationMaster與NodeManager之間的通信安全ResourceManager發(fā)送給ApplicationMasterNodeManager向ResourceManager注冊和心跳時領(lǐng)取YARNLocalizerTokenYARN中的各類Token及其作用YARNContainerTokenApplicationMaster與NodeManager通信啟動Container時需要出示ResourceManager發(fā)送給ApplicationMasterNodeManager向ResourceManager注冊和心跳時領(lǐng)取MapReduceClientToken

用于保證MRJobClient與MRApplicationMaster之間的通信安全ResourceManager在作業(yè)提交時創(chuàng)建并發(fā)送給JobClientMapReduceJobToken

用于保證MapReduce的各個Task與MRApplicationMaster之間的通信安全

由ApplicationMaster創(chuàng)建并傳遞給NodeManagerMapRed

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論