温馨提示×

CentOS中HBase安全如何设置

小樊
69
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/内部通信启用 SASLSSL/TLS(配置 HMaster/RegionServer 与客户端侧的 SSL 相关参数)。
    • 静态数据加密(TDE):为 HFile/列族 启用透明加密,保护落盘数据。
  • 系统加固:
    • 启用 SELinux(或最小化策略)、限制 umask、加固关键文件权限、核查 cron/at 安全、设置 密码策略 等。

0