1. 启用Kerberos认证(核心身份验证机制)
Kerberos是HBase在CentOS上的标准认证协议,确保只有合法用户能访问集群。需完成以下步骤:
sudo yum install krb5-workstation;/etc/krb5.conf,添加KDC(Key Distribution Center)和Realm(领域)信息(如default_realm = YOUR_REALM.COM、kdc = kdc.yourdomain.com:88);kadmin.local命令生成服务主体(如hbase/_HOST@YOUR_REALM.COM)及对应的keytab文件(存放在/etc/security/keytabs/);hbase-site.xml,设置hbase.security.authentication=kerberos、hbase.rpc.authentication=true,并指定Principal和keytab路径。2. 细粒度权限控制(ACL与RBAC结合)
通过**访问控制列表(ACL)和基于角色的访问控制(RBAC)**限制用户对数据及资源的访问:
grant/revoke命令为用户或用户组分配权限(支持读R、写W、创建C、管理员A等权限)。例如,授予user1对table1的读写权限:hbase shell> grant 'user1', 'RW', 'table1';hbase-site.xml,添加Ranger相关属性(如hbase.security.authorization.provider=org.apache.ranger.authorization.hbase.RangerAuthorizationProvider),然后在Ranger控制台创建策略(如限制user2只能读取table2的特定列)。3. 数据加密(传输与存储安全)
hbase-site.xml,设置hbase.ssl.enabled=true、hbase.ssl.keystore.path=/path/to/keystore.jks、hbase.ssl.keystore.password=your_password;hbase-site.xml中的hbase.coprocessor.master.classes和hbase.coprocessor.region.classes,添加加密相关Coprocessor,并通过keytool生成密钥,指定密钥提供程序路径。4. 系统与网络安全配置
firewalld或iptables仅开放HBase必要端口(如Master端口16000、RegionServer端口16020、RPC端口8020、HTTP端口16010),禁止无关IP访问。例如:sudo firewall-cmd --zone=public --add-port=16000/tcp --permanent,然后sudo firewall-cmd --reload;/etc/selinux/config中的SELINUX=enforcing,并通过semanage命令调整HBase相关目录的上下文(如/var/log/hbase设为hbase_log_t);root远程登录),设置复杂口令(包含大小写字母、数字、特殊字符,长度≥10位),使用chattr +i命令锁定口令文件(如/etc/passwd、/etc/shadow),防止未授权修改。5. 日志审计(操作追踪与合规性)
启用HBase审计日志,记录用户的所有操作(如登录、表创建、数据修改),便于后续追踪和合规检查。修改hbase-site.xml,设置:
<property>
<name>hbase.security.audit.log.enabled</name>
<value>true</value>
</property>
<property>
<name>hbase.security.audit.log.file</name>
<value>/var/log/hbase/audit.log</value>
</property>
<property>
<name>hbase.security.audit.log.rotate.size</name>
<value>1073741824</value> <!-- 1GB -->
</property>
并配置日志轮转(如通过logrotate工具),避免日志文件过大。
6. 定期更新与监控