作者:張子良
版權所有,轉載請注明出處
一、概述
Hadoop開源技術框架在實際業務應用中,其早期的安全機制飽受詬病,具體到HDFS應用方面的問題,主要包括以下幾個方面:
1.用戶到服務器的認證問題
(1)Namenode上沒有用戶認證:用戶只要知道NameNode服務地址和端口信息,就可以訪問HDFS,並獲取文件namespace信息。
(2)Datanode上沒有認證機制:Datanode對讀入輸出並沒有認證,導致如果客戶端知道Blockid,就可以任意的訪問Datanode上的Block數據。
2.服務器到服務器的認證信息
(1)Namenode對Datanode沒有認證機制:非法用戶可以偽裝成Datanode,去接收Namenode的文件存儲任務。
二、hadoop的Security
針對用戶到服務器的認證問題,Hadoop在1.0.0版本以后增加了Security認證機制。該機制采用類Unix用戶管理機制,文件的創建用戶和超級用戶擁有對文件的所有權限,包括讀和寫,其他用戶擁有訪問權,無寫權限。具體來講就是,連接到hadoop 集群的用戶/組信息取決於客戶端環境,即客戶端主機中`whoami`和`bash –c groups`取到的用戶名和組名,沒有uid和gid,用戶屬組列表中只要有一個與集群配置的用戶組相同即擁有該組權限。
值得注意的是當前Hadoop的三個主要版本分支中並不是都實現了對其的支持,具體實施時需要注意不同版本的區別。
三、hadoop的kebores
Hadoop的Kebores認證機制,用來解決服務器到服務器的認證,主要涉及雲盤系統后台服務分布式集群安全問題,將另開專題討論。在此不作討論。
四、雲盤系統客戶端文件安全保障
雲盤系統客戶端HDFS文件安全保障主要涉及用戶對HDFS文件服務集群的安全訪問問題,包括某一個注冊用戶只能訪問屬於該用戶的空間和某一個用戶只能在HDFS空間上訪問指定大小的空間兩個問題。這里面是涉及一個用戶管理和空間管理的問題,在此不作詳細介紹。
針對問題一,我們可以通過改造現有HadoopThriftServer或者新增服務機制來解決,即客戶端登陸時,返回HDFS上該用戶的允許訪問路徑,用戶操作過程中進行訪問路徑檢測,非授權路徑自動過濾,不允許訪問。
針對問題二,提供用戶注冊機制,服務端根據用戶注冊的權屬組,調用FSadmin設置用戶文件夾的授權大小。