2012-02-15 100 views
1

我在ec2上使用hbase,剛剛意識到我的腳本不使用用戶名/密碼來訪問hbase。有沒有辦法添加簡單的用戶名/密碼認證?我該如何保護hbase?

更新:感興趣的東西快速/骯髒像mysql具有用戶名創建和授予特權。

回答

2

如果你不想去Kerberos路由(這是最好的做法,然而),如果你的HBase請求是從一個單一的點(如應用服務器),你可以隨時嘗試限制到Zookeeper客戶端的IP連接。

默認情況下zookeeper客戶端端口爲2181(例如,參見http://blog.cloudera.com/blog/2013/07/guide-to-using-apache-hbase-ports/)。

一個簡單的方法來做到這一點是使用iptables functionnality(如果你運行的是Linux),使用類似:

iptables -A INPUT -i lo -m comment --comment "enable loopback connections" -j ACCEPT 
# use the actual range of IPs that includes all of your cluster's nodes 
iptables -A INPUT -p tcp --destination-port 2181 -m iprange --src-range '174.121.3.0-174.121.3.10' -j ACCEPT 
iptables -A INPUT -p tcp --destination-port 2181 -j DROP -m comment --comment "Disable tcp trafic toward port 2181 (zookeeper)" 
# Export result so what it can be restored on reboot with iptables-restore < /etc/iptablesv4.conf (put it in something like /etc/rc.d/rc.local) 
iptables-save > /etc/iptablesv4.conf 

你需要這樣做,因爲HBase的客戶羣集中的每個節點上將找到任何可用的zookeeper端點來建立成功的連接。