5

Scenario : - User logs on to his computer gets authenticated by Kerberos Authentication and submits a map reduce job Hadoop安全

我在學習「Kerberos如何在Hadoop中實現?」 我曾經使用過此文檔https://issues.apache.org/jira/browse/HADOOP-4487 我還通過基本Kerberos的東西(https://www.youtube.com/watch?v=KD2Q-2ToloE

了這些資源我來這,我通過一個圖表示得出結論學習後消失。 情景: - 用戶登錄到他的計算機通過Kerberos身份驗證進行身份驗證並提交地圖縮減作業 (請閱讀幾乎不需要5分鐘時間的關係圖的描述) 我想解釋該圖並提出問題用幾個步驟(粗體) 號碼在黃色背景表示整個流量(編號1〜19) DT(帶紅色背景)相關的代表委託令牌 BAT(具有綠色背景)表示塊訪問令牌 JT(與棕色背景)代表作業標記

步驟1,2,3和4代表: - 請求TGT(票證授予票證) 請求名稱節點的服務票證。 問題1)KDC應該在哪裏?它可以在我的名字節點或工作追蹤器所在的機器上嗎?

步驟5,6,7,8和9代表: - 向名稱節點顯示服務票證,得到一個確認。 名稱節點會發出委託令牌(紅色) 用戶會告訴令牌新生(在這種情況下,作業調度器)

問題2)用戶提交thisDelegation令牌與作業作業服務器一起。代理令牌將與任務跟蹤器共享嗎?

步驟10,11,12,13和14代表: - 問一個服務票據作業跟蹤,得到KDC 顯示該票作業跟蹤服務票據,並得到一個ACK從JobTracker的 提交作業+代理令牌給JobTracker。

步驟15,16和17表示: - 生成塊訪問令牌並分佈在所有數據節點上。 發送塊標識和塊訪問令牌作業調度器和作業調度器將它傳給的TaskTracker

問題3)誰就會要求BlockAccessToken和塊ID從名稱節點? JobTracker或TaskTracker

對不起,我錯過了第18號。 Step19表示: - 作業跟蹤器生成Job Token(棕色)並將其傳遞給TaskTracker。

問題4)我可以得出結論:每個用戶將有一個委派令牌,它將分佈在整個羣集中,並且每個作業將有一個作業令牌?因此,用戶只有一個授權令牌和許多工作令牌(等於他提交的作業數量)。

請告訴我,如果我錯過了某些東西,或者我在我的解釋中某處出錯了。

+1

Rohit!良好的分析;你有沒有解決方案來保護Hadoop?如果是的話,你可以在這篇文章中分享答案嗎? – 2014-11-19 11:05:11

+0

如果你有問題,請更新答案@Rohit Sarewar – Rengasamy 2014-12-09 09:52:09

回答

0

要遵循的步驟,以確保Hadoop是安全的

  1. 在所有羣集節點訪問的任何服務器安裝Kerberos。 百勝安裝krb5的服務器 百勝安裝的krb5工作站 百勝安裝的krb5-庫

  2. 修改配置文件中的KDC服務器配置設置ACL文件,管理密鑰表文件,主機。 /var/kerberos/krb5kdc/kdc.conf

  3. 修改配置文件的/etc/krb5.conf設置KDC主機和管理服務器

  4. 在KDC主機創建數據庫

    $ kdb5_util創建 - [R HOST_NAME -s

  5. 添加管理員ACL文件

    1. 六/etc/kdamin.acl
    2. 添加admin主體 '管理/管理員@ HOST_NAME' 在該文件中
  6. 添加管理員主要 $ addprinc管理員/管理員@ HOST_NAME

在所有羣集節點上安裝Kerberos客戶端

yum install krb5-workstation

將krb5.conf複製到所有羣集節點

確保通過設置所需的配置 https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SecureMode.html

驗證,以使在Hadoop的安全模式:

  • 正常登錄,用戶羣集,其中用戶keytabs部署網關或節點
  • 運行「的kinit -k -t/location/of/keytab文件username @ host_name「
  • 然後運行HDFS命令或mapreduce作業來驗證集羣是否安全

這些是確保在羣集中啓用kerberos的基本步驟。