debian

Debian上HBase安全设置方法

小樊
40
2025-12-13 05:24:30
栏目: 智能运维

Debian上HBase安全设置方法

一 前置准备

二 启用认证与授权

<property>
  <name>hbase.security.authentication</name>
  <value>kerberos</value>
</property>
<property>
  <name>hbase.security.authorization</name>
  <value>true</value>
</property>
<property>
  <name>hbase.master.keytab.file</name>
  <value>/etc/security/keytabs/hbase.service.keytab</value>
</property>
<property>
  <name>hbase.master.principal</name>
  <value>hbase/_HOST@EXAMPLE.COM</value>
</property>
<property>
  <name>hbase.regionserver.keytab.file</name>
  <value>/etc/security/keytabs/hbase.service.keytab</value>
</property>
<property>
  <name>hbase.regionserver.principal</name>
  <value>hbase/_HOST@EXAMPLE.COM</value>
</property>
kadmin.local -q "addprinc -randkey hbase/node1.example.com@EXAMPLE.COM"
kadmin.local -q "xst -k /etc/security/keytabs/hbase.service.keytab hbase/node1.example.com@EXAMPLE.COM"
# 其他节点替换 node1 为对应主机名,完成后分发 keytab 并设权限 600/640
for h in node{1..3}; do
  scp /etc/security/keytabs/hbase.service.keytab $h:/etc/security/keytabs/
  ssh $h "chown hbase:hadoop /etc/security/keytabs/hbase.service.keytab && chmod 600 /etc/security/keytabs/hbase.service.keytab"
done
kinit -kt /etc/security/keytabs/hbase.service.keytab hbase/node1.example.com@EXAMPLE.COM
hbase shell

以上配置与步骤可满足 HBase 的 Kerberos 认证ACL 授权 的基本要求。

三 加密与传输安全

<property>
  <name>hbase.ssl.enabled</name>
  <value>true</value>
</property>
<!-- 可选:自定义端口 -->
<property>
  <name>hbase.master.info.port</name>
  <value>16010</value>
</property>
<property>
  <name>hbase.regionserver.info.port</name>
  <value>16030</value>
</property>

启用后客户端需使用 https:// 访问 UI。

<property>
  <name>hbase.rpc.engine</name>
  <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
</property>
<property>
  <name>hbase.security.rpc.protection</name>
  <value>authentication,integrity,privacy</value>
</property>

四 授权与审计

hbase shell
# 授予用户 user1 对表 ns1:tbl1 的读写权限
grant 'user1', 'RW', 'ns1:tbl1'
# 授予用户 user2 对表 ns1:tbl1 列族 cf1 的读权限
grant 'user2', 'R', 'ns1:tbl1', 'cf1'
# 查看权限
user_permission 'ns1:tbl1'

五 快速验证与常见问题

0
看了该问题的人还看了