温馨提示×

Ubuntu上HBase安全设置指南

小樊
33
2025-12-30 10:35:11
栏目: 智能运维

Ubuntu上HBase安全设置指南

一 基础安全先决条件

  • 启用并正确配置 Kerberos KDC/AdminServer,在 /etc/krb5.conf 中设置默认域与 KDC/Admin 地址;创建 HBase 服务主体(如 hbase/_HOST@YOUR.REALM)并分发 keytab 到所有节点,权限设为 600,属主为 hbase 运行用户。
  • 保证集群 时间同步(NTP),避免因时钟漂移导致票据与权限校验异常。
  • 统一 DNS 与主机名解析(正反向一致),多网卡环境显式设置 hbase.regionserver.dns.interface/nameserver,确保配置在所有节点一致。
  • 提升系统资源限制:在 /etc/security/limits.conf 为 hbase 用户设置如 nofile 32768nproc 32000,并在 /etc/pam.d/common-session 加入 session required pam_limits.so;HDFS 侧按需调高 dfs.datanode.max.xcievers(如 4096)以避免 “Too many open files” 或 “missing blocks”。
  • 注意:HBase 安全依赖底层 HDFS 与 ZooKeeper 的安全状态,需同步规划其认证与权限策略。

二 身份鉴别与访问控制

  • 启用 Kerberos 认证:在 hbase-site.xml 设置
    • hbase.security.authentication=kerberos
    • hadoop.security.authentication=kerberos
    • hbase.master.kerberos.principal=hbase/_HOST@YOUR_REALM
    • hbase.regionserver.kerberos.principal=hbase/_HOST@YOUR_REALM
    • hbase.master.keytab.file=/etc/security/keytabs/hbase.service.keytab
    • hbase.regionserver.keytab.file=/etc/security/keytabs/hbase.service.keytab
      使用 kinit 获取票据后访问(如 kinit user@YOUR_REALM)。
  • 启用 HBase ACL(RBAC)
    • hbase.security.authorization=true
    • 在协处理器加载 AccessController
      • hbase.coprocessor.master.classes=org.apache.hadoop.hbase.security.access.AccessController
      • hbase.coprocessor.region.classes=org.apache.hadoop.hbase.security.access.AccessController
    • Shell 授权示例:
      • 创建用户:create_user ‘user1’, ‘ComplexPass123!’
      • 授予权限:grant ‘user1’, ‘RWCA’, ‘my_namespace:my_table’
      • 回收权限:revoke ‘user1’, ‘W’, ‘my_namespace:my_table:cf1’
  • 启用 审计日志
    • hbase.security.audit.log=true
    • hbase.security.audit.log.file=/var/log/hbase/audit.log
      建议接入 ELK 或类似系统进行集中分析与告警。

三 传输与存储加密

  • RPC/数据传输加密:
    • hbase.rpc.engine=org.apache.hadoop.hbase.ipc.SecureRpcEngine
    • hbase.security.ssl.enabled=true
    • hbase.ssl.keystore.location=/path/to/keystore.jks
    • hbase.ssl.keystore.password=keystore_password
    • hbase.ssl.truststore.location=/path/to/truststore.jks
    • hbase.ssl.truststore.password=truststore_password
  • Web UI 启用 HTTPS
    • 设置 hbase.ssl.enabled=true;如需变更端口,配置 hbase.master.info.port / hbase.regionserver.info.port;客户端使用 https:// 访问。
  • 静态数据保护:
    • 启用 HDFS 透明加密(Transparent Encryption) 保护落盘数据;
    • 在 HBase 层面可结合 标签(Labels)与访问控制 实现更细粒度的数据可见性与权限;
    • 目录权限加固:hbase.data.umask.enable=true,hbase.data.umask=007(数据目录与本地 WAL 目录建议仅 属主/属组 可访问)。

四 最小权限与合规运维

  • 最小权限原则:仅授予业务所需权限(如 R/W/C/A 的子集),定期清理离职/临时账号权限;对 命名空间/表/列族/单元格 实施分层授权。
  • 凭据与文件安全:keytabkeystore/truststore 权限 600,属主 hbase;启用 kinit 票据生命周期管理,避免长期有效票据。
  • 审计与监控:持续 tail -f /var/log/hbase/audit.log 或接入 ELK,对异常 GET/PUT/CREATE/DELETE 与权限变更进行告警。
  • 配置与密钥备份:定期备份 hbase-site.xml、keytab、keystore/truststore 与审计日志,变更前后保留回滚版本。
  • 合规与漏洞报告:遵循 ASF 安全策略,安全相关问题通过 apache.org/security 渠道提交,避免使用公开 JIRA 报告安全漏洞。

五 快速验证清单

  • 使用 kinit 获取用户票据后执行 hbase shell list,确认可在认证下访问;
  • 以不同用户执行带权限校验的操作(如 get/put/scan),验证 ACL 是否生效;
  • 查看 /var/log/hbase/audit.log 是否记录关键操作与结果;
  • 通过 https://:port 访问 Web UI,确认 HTTPS 正常;
  • 使用 openssl s_client 或同等工具验证 RPC/SSL 握手与证书配置。

0