在Debian上配置HBase安全设置,主要包括认证、授权、加密等方面,以下是关键步骤:
安装Kerberos服务端
在Kerberos服务器上安装并配置Kerberos,创建HBase服务主体及密钥表(参考)。
# 示例:在Kerberos服务器上为HBase创建主体
kadmin.local -q "addprinc -pw hbase_password hbase/your-server@YOUR.REALM"
kadmin.local -q "ktadd -k /etc/security/keytabs/hbase.service.keytab hbase/your-server@YOUR.REALM"
配置HBase使用Kerberos
修改hbase-site.xml
,添加以下配置:
<property>
<name>hbase.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hbase.rpc.protection</name>
<value>authentication</value> <!-- 可选:encryption/privacy -->
</property>
<property>
<name>hbase.master.kerberos.principal</name>
<value>hbase/_HOST@YOUR.REALM</value>
</property>
<property>
<name>hbase.regionserver.kerberos.principal</name>
<value>hbase/_HOST@YOUR.REALM</value>
</property>
重启HBase使配置生效。
启用授权机制
在hbase-site.xml
中添加:
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
重启HBase。
使用HBase Shell管理权限
hbase shell
grant 'user1', 'RW', 'table_name'
revoke 'user1', 'W', 'table_name:cf:qualifier' # 撤销列级权限
user_permission 'table_name'
生成证书和密钥
使用keytool
生成自签名证书(或使用商业证书):
keytool -genkeypair -alias hbase -keyalg RSA -keystore /etc/hbase/ssl/hbase.jks -storepass 123456 -validity 365
配置HBase启用SSL
修改hbase-site.xml
:
<property>
<name>hbase.ssl.enabled</name>
<value>true</value>
</property>
<property>
<name>hbase.ssl.keystore.location</name>
<value>/etc/hbase/ssl/hbase.jks</value>
</property>
<property>
<name>hbase.ssl.keystore.password</name>
<value>123456</value>
</property>
重启HBase。
客户端配置SSL
客户端需指定证书路径和密码,例如在Java代码中:
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.ssl.enabled", "true");
conf.set("hbase.ssl.keystore.location", "/path/to/client.jks");
conf.set("hbase.ssl.keystore.password", "client_password");
Connection connection = ConnectionFactory.createConnection(conf);
hbase.security.authentication
不为simple
(生产环境需禁用)。kadmin
更新Kerberos密码,定期轮换SSL证书。krb5-user
、openssl
等依赖工具。以上步骤参考自,可根据实际需求选择组合使用。