ubuntu上hbase安全设置
导读:Ubuntu上HBase安全设置实践 一 基础安全加固 启用强认证与授权:将 HBase 认证设为 Kerberos,并开启 ACL 授权,这是生产环境的基本要求。 主机与基础网络:确保集群节点 SSH 免密互通、DNS 正反向解析一致,...
Ubuntu上HBase安全设置实践
一 基础安全加固
- 启用强认证与授权:将 HBase 认证设为 Kerberos,并开启 ACL 授权,这是生产环境的基本要求。
- 主机与基础网络:确保集群节点 SSH 免密互通、DNS 正反向解析一致,必要时在 hbase-site.xml 中设置 hbase.regionserver.dns.interface / hbase.regionserver.dns.nameserver 指定主网卡与 DNS。
- 时间同步:全集群部署 NTP,避免时间漂移导致 Kerberos 票据异常与数据一致性问题。
- 资源与句柄:提升运行 HBase 的系统用户(如 hbase/hadoop)的 ulimit -n 与 nproc,建议将 nofile ≥ 32768、nproc ≥ 32000;在 /etc/security/limits.conf 增加条目,并在 /etc/pam.d/common-session 加入 session required pam_limits.so,修改后需重新登录生效。
- Hadoop 侧配合:如 HDFS 为 DataNode 设置 dfs.datanode.max.xcievers(或新版对应参数),避免文件句柄瓶颈。
二 启用 Kerberos 认证
- 前提准备:部署 KDC,创建 REALM,所有节点加入同一 realm 并同步时钟。
- 创建服务主体与密钥表(在每个节点以 hbase 运行用户执行):
- 主体:kadmin.local -q “addprinc -randkey hbase/_HOST@YOUR_REALM.COM”
- 导出密钥表:kadmin.local -q “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-site.xml(所有 Master/RegionServer 一致):
- hbase.security.authenticationkerberos
- hbase.master.kerberos.principalhbase/_HOST@YOUR_REALM.COM
- hbase.master.keytab.file/etc/security/keytabs/hbase.service.keytab
- hbase.regionserver.kerberos.principalhbase/_HOST@YOUR_REALM.COM
- hbase.regionserver.keytab.file/etc/security/keytabs/hbase.service.keytab
- 启动顺序:先启动 ZooKeeper,再以安全模式启动 HMaster/RegionServer(如使用脚本或 hbase-daemon.sh 的 --security 选项)。
三 配置 ACL 访问控制
- 启用授权与协处理器(所有服务器节点 hbase-site.xml):
- hbase.security.authorizationtrue
- hbase.coprocessor.master.classesorg.apache.hadoop.hbase.security.access.AccessController
- hbase.coprocessor.region.classesorg.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController
- 权限模型与常用命令:
- 权限字符集:R(读)、W(写)、X(执行协处理器端点)、C(建表/改表/删表)、A(集群/表级管理如启停、快照、授权等)。
- 示例:
- 授予用户对某表建删改查:grant ‘alice’,‘RWC’,‘mytable’
- 授予用户对某表某列族读写:grant ‘bob’,‘RW’,‘mytable’,‘cf1’
- 查看权限:user_permission ‘mytable’
- 撤销:revoke ‘bob’,‘RW’,‘mytable’,‘cf1’
- 使用要点:启用 AccessController 后,所有通过 HBase Shell 与 Java API 的访问都会受 ACL 约束;执行 grant/revoke 的主体需具备相应权限(如 A)。
四 加密与网络安全
- 传输加密:为 HBase RPC、ZooKeeper 客户端通信、HMaster/RegionServer 间通信启用 SASL/SSL/TLS,在 hbase-site.xml 中配置相应的 SSL 相关属性(如 keystore/truststore 路径与密码),并确保与 Hadoop 侧 SSL 配置一致。
- 网络与防火墙:仅开放必要端口(如 2181/2888/3888 对应 ZooKeeper,16000/16010 对应 HMaster,16020/16030 对应 RegionServer),并限制来源网段。
- 主机加固:关闭不必要的服务与端口,启用 UFW/iptables,为管理口与数据口分离(如管理网与业务网 VLAN 隔离)。
五 验证与运维要点
- 连通性与时间:验证 DNS 正反向解析、NTP 同步、端口连通性(如 zk、HBase)。
- Kerberos 票据:使用 kinit 获取票据,klist 查看;重启后确认 HMaster/RegionServer 能自动续票。
- 权限验证:以不同用户登录 HBase Shell 验证 ACL 是否生效(读/写/建表/授权等操作是否被拒绝或允许)。
- 日志与告警:关注 HMaster/RegionServer 日志中的 SASL/Kerberos 错误、AccessController 拒绝日志,并设置监控告警。
- 变更与回滚:先在测试环境演练,变更 hbase-site.xml 后滚动重启;保留回滚方案与备份(含 keytab 与配置文件)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu上hbase安全设置
本文地址: https://pptw.com/jishu/764860.html
