centos hbase安全设置要点
小樊
35
2025-12-25 15:34:33
CentOS 上部署 HBase 的安全设置要点
一 身份鉴别与 Kerberos
- 在所有节点安装并同步 Kerberos 客户端,统一 /etc/krb5.conf:设置 default_realm、KDC 与 admin_server,保证节点时间一致(建议 NTP)。
- 在 KDC 创建服务主体并导出 keytab:例如创建 hbase/_HOST@YOUR-REALM.COM,导出到 /etc/security/keytabs/hbase.service.keytab,权限设为 400,属主为 hbase。
- 在 hbase-site.xml 启用安全参数:
- hbase.security.authentication=kerberos
- hbase.security.authorization=true
- hbase.master.kerberos.principal=hbase/_HOST@YOUR-REALM
- hbase.regionserver.kerberos.principal=hbase/_HOST@YOUR-REALM
- 建议将 hbase.rpc.protection=privacy(或至少 authentication)以启用 RPC 加密/完整性。
- 分发 keytab 到各节点相同路径,使用 kinit -kt 验证票据获取,再以 hbase shell 测试访问。
二 授权与访问控制
- 启用 Access Control List(ACL) 后,按“最小权限”原则授予:
- 常用权限集合:R(读)、W(写)、X(协处理器)、C(建/删表)、A(集群管理)。
- 作用域层级:Global、Namespace、Table、ColumnFamily、Cell(细粒度从 CDH 5.2 起支持)。
- HBase Shell 示例:
- 授予用户对某表的读写:grant ‘user1’,‘RW’,‘namespace:table1’
- 授予命名空间级权限:grant ‘user2’,‘R’,‘@ns1’
- 撤销:revoke ‘user1’,‘RW’,‘namespace:table1’
- 建议仅将 hbase 用户或配置在 hbase.superuser 中的主体赋予 A 权限,日常业务最小到 R/W/X/C。
三 传输与存储加密
- 传输加密:
- RPC/客户端通道建议启用 SASL/SSL;在 hbase.rpc.protection 设为 privacy/authentication 并结合 Kerberos 使用。
- 管理界面与 REST/Thrift(如使用)启用 TLS/SSL,证书由受信 CA 签发并校验证书链。
- 存储加密:
- 启用 HDFS 透明数据加密(TDE) 保护落盘数据,密钥由 Hadoop KMS 集中管理。
- 定期轮换密钥并验证加解密流程对读写延迟与吞吐的影响。
四 网络安全与主机加固
- 防火墙与端口:
- 仅开放必要端口(示例):HBase Master Web UI 16010/TCP、RegionServer Web UI 16030/TCP、HBase RPC 16020/TCP、ZooKeeper 2181/TCP。
- 使用 firewall-cmd 持久化放行并定期审计规则。
- 主机与系统:
- 保持 CentOS 与依赖组件 yum update 到安全修复版本。
- 强化口令策略(如 /etc/login.defs 中设置 PASS_MIN_LEN)、限制 root 远程登录、启用 SELinux 或最小化策略。
- 关键文件权限最小化:如 /etc/shadow 600、/etc/gshadow 600、HBase 配置与 keytab 400/600 且属主正确。
五 审计监控与合规
- 启用 HBase 与 HDFS 审计日志,集中到 rsyslog/ELK,对 grant/revoke、DDL、权限异常、越权访问进行告警。
- 启用 JMX 与监控(如 Prometheus JMX Exporter),关注 RPC 延迟、请求失败率、Region 分布与均衡 等安全相关指标。
- 定期执行 漏洞扫描、配置基线检查与渗透测试,并保留审计报告与变更记录。