CentOS中HBase安全如何设置
小樊
44
2026-01-11 03:18:25
CentOS 上 HBase 安全设置实操指南
一 前置准备与总体架构
- 准备一个可用的 Kerberos Realm(如:YOUR-REALM.COM),在所有节点安装 krb5-workstation,并统一配置 /etc/krb5.conf(包含 [libdefaults]、[realms]、[domain_realm] 三段)。
- 规划服务主体与 keytab:至少创建 hbase/_HOST@YOUR-REALM.COM,并为 HMaster / RegionServer 生成并分发 keytab,文件权限建议 600,属主为 hbase:hbase。
- 规划 HBase 超级用户(如:hbase 或自定义列表),后续用于 ACL 管理。
- 原则:先 Kerberos 再 ACL;未启用 Kerberos 的“授权”可被伪造身份绕过,生产环境务必启用高安全模式。
二 启用 Kerberos 认证
- 在所有节点安装客户端并配置 /etc/krb5.conf;在 KDC 上创建主体并导出 keytab(示例):
- kadmin: addprinc -randkey hbase/_HOST@YOUR-REALM.COM
- kadmin: xst -k /etc/security/keytabs/hbase.service.keytab hbase/_HOST@YOUR-REALM.COM
- 配置 hbase-site.xml(示例关键项):
- hbase.security.authentication=kerberos
- hbase.security.authorization=true
- hbase.master.kerberos.principal=hbase/_HOST@YOUR-REALM.COM
- hbase.regionserver.kerberos.principal=hbase/_HOST@YOUR-REALM.COM
- hbase.master.keytab.file=/etc/security/keytabs/hbase.service.keytab
- hbase.regionserver.keytab.file=/etc/security/keytabs/hbase.service.keytab
- 分发 keytab 到对应节点相同路径,设置权限 600,属主 hbase:hbase;重启 HBase 服务(顺序:先 HMaster,再 RegionServer)。
- 验证:在各节点执行 kinit -kt /etc/security/keytabs/hbase.service.keytab hbase/_HOST@YOUR-REALM.COM,随后 hbase shell 执行 list 应可正常返回。
三 启用授权与 ACL
- 在 hbase-site.xml 启用 AccessController 协处理器(开启授权所必需):
- hbase.security.authorization=true
- hbase.coprocessor.master.classes=org.apache.hadoop.hbase.security.access.AccessController
- hbase.coprocessor.region.classes=org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController
- hbase.coprocessor.regionserver.classes=org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.token.TokenProvider
- 重启 HBase 服务;使用 hbase shell 进行授权与核验:
- 授予权限:
- 表级:grant ‘user1’, ‘RW’, ‘tbl1’
- 列族:grant ‘user1’, ‘R’, ‘tbl1’, ‘cf1’
- Namespace:grant ‘user1’, ‘C’, ‘@ns1’
- 组授权(前缀 @):grant ‘@devs’, ‘R’, ‘tbl1’
- 回收权限:revoke ‘user1’, ‘RW’, ‘tbl1’
- 查看权限:user_permission ‘TABLE_A’
- 权限范围与动作:Scope 支持 Global / Namespace / Table / ColumnFamily / Cell;动作包含 R/W/X/C/A。
四 网络安全与端口
- 启用防火墙并仅放行必要端口(示例为常见端口,按实际部署调整):
- sudo firewall-cmd --permanent --zone=public --add-port=2181/tcp # ZooKeeper
- sudo firewall-cmd --permanent --zone=public --add-port=16000/tcp # HMaster RPC
- sudo firewall-cmd --permanent --zone=public --add-port=16010/tcp # HMaster UI
- sudo firewall-cmd --permanent --zone=public --add-port=16020/tcp # RegionServer RPC
- sudo firewall-cmd --permanent --zone=public --add-port=16030/tcp # RegionServer UI
- 云上需同步配置 安全组 入站规则。
五 审计与传输加密建议
- 审计日志:在 hbase-site.xml 开启审计(便于合规与追踪):
- hbase.security.audit.log.enabled=true
- hbase.security.audit.log.file=/var/log/hbase/audit.log
- 传输加密:
- RPC/内部通信启用 SASL 与 SSL/TLS(配置 HMaster/RegionServer 与客户端侧的 SSL 相关参数)。
- 静态数据加密(TDE):为 HFile/列族 启用透明加密,保护落盘数据。
- 系统加固:
- 启用 SELinux(或最小化策略)、限制 umask、加固关键文件权限、核查 cron/at 安全、设置 密码策略 等。