在CentOS上設置HBase的安全策略通常涉及以下幾個步驟:
確保你已經正確安裝了HBase。如果還沒有安裝,可以參考HBase官方文檔進行安裝。
安裝Kerberos客戶端:
sudo yum install krb5-workstation
獲取Kerberos票據:
kinit your_principal@YOUR_REALM
配置HBase使用Kerberos:
編輯 hbase-site.xml 文件,添加以下配置:
<property>
name = hbase.security.authentication
value = kerberos
</property>
<property>
name = hbase.master.kerberos.principal
value = hbase/_HOST@YOUR_REALM
</property>
<property>
name = hbase.regionserver.kerberos.principal
value = hbase/_HOST@YOUR_REALM
</property>
<property>
name = hbase.security.authorization
value = true
</property>
重啟HBase服務:
sudo systemctl restart hbase-master
sudo systemctl restart hbase-regionserver
創建用戶和權限:
使用HBase shell或HBase Admin API創建用戶和分配權限。
hbase shell
create 'users', 'info'
grant 'user1', 'RW', 'users:info'
grant 'user2', 'RW', 'users:info'
確保防火墻允許HBase所需的端口通信。打開HBase所需的端口:
sudo firewall-cmd --permanent --zone public --add-port 16000/tcp
sudo firewall-cmd --permanent --zone public --add-port 16010/tcp
sudo firewall-cmd --permanent --zone public --add-port 16020/tcp
sudo firewall-cmd --permanent --zone public --add-port 16030/tcp
sudo firewall-cmd --permanent --zone public --add-port 2181/tcp
sudo firewall-cmd --permanent --zone public --add-port 28015/tcp
sudo firewall-cmd --permanent --zone public --add-port 28020/tcp
sudo firewall-cmd --permanent --zone public --add-port 28030/tcp
sudo firewall-cmd --reload
添加相應的入站規則以允許端口9090和8020的流量。
驗證Kerberos認證:
嘗試使用Kerberos票據訪問HBase。
hbase shell list
驗證ACL:
確保用戶具有正確的權限。
hbase shell
scan 'users'