HBase安全设置如何在CentOS上配置
小樊
31
2025-12-09 21:48:43
在 CentOS 上配置 HBase 安全设置
一 环境准备与系统加固
- 保持系统与依赖更新:执行 sudo yum update -y,及时修补已知漏洞。
- 启用并配置防火墙(firewalld):仅放行必要端口(示例见下文),执行 sudo firewall-cmd --reload 使策略生效。
- 强化账户与口令策略:设置最小口令长度(如 PASS_MIN_LEN 10),并对关键账户口令进行复杂度与周期管理。
- 最小权限运行:HBase 进程以专用系统用户(如 hbase)运行,目录与文件权限最小化,禁用不必要的系统服务与端口。
以上为后续开启 Kerberos、ACL、加密等安全措施的基础。
二 启用 Kerberos 身份认证
- 安装与配置 KDC(示例):
- 安装软件包:sudo yum install -y krb5-server krb5-workstation krb5-libs。
- 编辑 /etc/krb5.conf,配置默认域与 KDC/管理服务器:
[libdefaults]
default_realm = YOUR-REALM.COM
[realms]
YOUR-REALM.COM = {
kdc = kdc.your-realm.com
admin_server = admin.your-realm.com
}
[domain_realm]
.your-realm.com = YOUR-REALM.COM
your-realm.com = YOUR-REALM.COM
- 创建 HBase 服务主体与 keytab(在所有节点执行):
- 进入 kadmin(本地或远程):kadmin.local 或 kadmin。
- 添加主体:addprinc -randkey hbase/_HOST@YOUR-REALM.COM。
- 导出 keytab:xst -k /etc/security/keytabs/hbase.service.keytab hbase/_HOST@YOUR-REALM.COM。
- 设置权限:chown hbase:hbase /etc/security/keytabs/hbase.service.keytab; chmod 400 /etc/security/keytabs/hbase.service.keytab。
- 在 HBase 启用 Kerberos(hbase-site.xml):
- 核心开关:
hbase.security.authenticationkerberos
hbase.security.authorizationtrue
hbase.rpc.protectionprivacy
- 服务主体(注意将 YOUR-REALM.COM 替换为实际域名,且 _HOST 会自动替换为实际主机名):
hbase.master.kerberos.principalhbase/_HOST@YOUR-REALM.COM
hbase.regionserver.kerberos.principalhbase/_HOST@YOUR-REALM.COM
- 登录配置(用于服务进程):
hbase.security.kerberos.login.use-ticket-cachefalse
hbase.security.kerberos.login.keytab/etc/security/keytabs/hbase.service.keytab
hbase.security.kerberos.login.principalhbase/_HOST@YOUR-REALM.COM
- 重启集群:按顺序重启 HMaster 与 RegionServer,使安全配置生效。
三 配置访问控制与细粒度授权
- 启用 HBase ACL(hbase-site.xml):
hbase.security.authorizationtrue
hbase.acl.defaultActionDENY
- 使用 HBase Shell 管理权限(示例):
- 授予用户对表的读写权限:grant ‘user1’, ‘RW’, ‘table1’。
- 撤销权限:revoke ‘user2’, ‘W’, ‘table1’。
- 查看权限:user_permission ‘table1’。
- 建议做法:按业务划分命名空间/表,按“最小权限”原则分配 R/W/CA(读/写/创建/管理)等权限,定期审计与回收过期授权。
四 加密与网络防护
- 传输加密:
- 启用 RPC/Thrift/REST 的 SSL/TLS,为 HMaster、RegionServer、Thrift、REST 配置证书与信任库,强制客户端使用 HTTPS/TLS。
- 存储加密:
- 启用 透明数据加密(TDE),对 HFiles 与 WAL 进行加密,保护静态数据。
- 网络安全:
- 仅开放必要端口,并限制来源网段。常见端口示例(按实际组件启用):
- HBase Master Web UI:16010/TCP
- HBase RegionServer Web UI:16030/TCP
- HBase Master RPC:16000/TCP
- HBase RegionServer RPC:16020/TCP
- ZooKeeper:2181/TCP
- firewalld 放行示例:
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 --reload
- 云环境需同步配置安全组入站规则,仅允许受控网段访问上述端口。
五 审计与运维
- 启用与集中审计:开启 HBase 审计日志,将访问与授权事件集中到 Ranger 或外部 SIEM,用于合规与异常检测。
- 插件与策略管理:可集成 Apache Ranger(或 Apache Sentry)实现细粒度策略、统一授权与审计。
- 例行维护:
- 定期更新 HBase/Hadoop/Kerberos 与相关依赖,及时打补丁。
- 监控与告警:对 认证失败、权限拒绝、异常扫描 等事件设置阈值告警。
- 备份与演练:制定 备份/恢复 策略并定期演练,确保事件可快速恢复。