在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'