centos hbase安全设置策略
小樊
37
2025-12-21 18:15:03
CentOS 上 HBase 安全设置策略
一 身份鉴别与单点登录
- 在所有节点安装并同步 Kerberos 客户端,配置 /etc/krb5.conf:设置 default_realm、KDC 与 admin_server,确保集群时间一致(建议 NTP)。
- 创建服务主体与密钥表(示例):
- addprinc -randkey hbase/_HOST@YOUR-REALM.COM
- xst -k /etc/security/keytabs/hbase.service.keytab hbase/_HOST@YOUR-REALM.COM
- 分发 keytab 至各节点并设置权限(仅属主可读):chown hbase:hbase /etc/security/keytabs/hbase.service.keytab && chmod 400 …
- 在 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.rpc.protection=privacy(或 authentication+integrity 分级)
- 重启 HBase 使配置生效。以上配置确保用户与服务均以 Kerberos 票据 访问,避免明文口令与弱认证风险。
二 授权与访问控制
- 启用 AccessController 协处理器实现 RWXCA 细粒度权限(表/列族/列级):
- 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.superuser=hbase,root(按需)。
- 常用授权命令(HBase Shell):
- 授予用户对表的读写:grant ‘user1’, ‘RW’, ‘table1’
- 授予用户对列族/列:grant ‘user1’, ‘R’, ‘table1’, ‘f1’, ‘age’
- 撤销:revoke ‘user1’, ‘RW’, ‘table1’
- 查看权限:user_permission ‘table1’
- 权限语义:R(读)、W(写)、X(执行协处理器)、C(建表/改表/删表)、A(启停/快照/授权等管理)。建议按“最小权限”分配,生产环境以 超级用户 执行授权操作。
三 传输与存储加密
- 传输加密(RPC/客户端通道):
- 启用 SSL/TLS 并配置 keystore/truststore(JKS/PKCS12),设置 hbase.ssl.enabled=true、hbase.ssl.keystore.location、hbase.ssl.keystore.password、hbase.ssl.truststore.location、hbase.ssl.truststore.password;客户端连接需携带信任库。
- 结合 hbase.rpc.protection=privacy 提供端到端加密与完整性校验。
- 存储加密:
- 启用 WAL 加密:hbase.regionserver.wal.encryption=true,并配置算法与密钥名称(如 AES)。
- 列族级加密:在建表/修改列族时设置加密类型与密钥(如 AES),确保落盘数据静态加密。
- 备份链路:将备份目录置于 HDFS 加密区(如 hadoop crypto 创建加密区),保证备份数据在传输与落盘均受保护。以上措施覆盖“链路+落盘+备份”的全链路加密。
四 网络安全与系统加固
- 网络边界与端口:
- 仅开放必要端口(示例):2181(ZooKeeper)、8080/16010(HBase Master Web/REST)、16020(Master RPC)、16030(RegionServer Web)、16000(RS RPC)等;使用 firewall-cmd --permanent --add-port=…/tcp && firewall-cmd --reload 精确放行;云环境同步配置 安全组 入站规则。
- 主机与系统:
- 保持 CentOS 与依赖组件的最新安全补丁;启用 SELinux(或严格模式策略);限制 root 远程登录;为 hbase 等系统账号设置强口令与 sudo 最小化授权;关键文件(如 /etc/shadow)权限最小化。
- 审计与合规:
- 启用 HBase 与 HDFS 审计日志,集中采集与留存;定期核查异常访问与权限变更;对生产变更采用变更单与回滚预案。以上措施降低攻击面并提升可审计性。
五 快速验证与运维要点
- 验证 Kerberos:kinit 获取票据后在 hbase shell 执行 list/scan,确认无需明文口令且能正常访问。
- 验证 ACL:以管理员执行 user_permission 查看权限生效情况;以普通用户验证被拒与授予权限差异。
- 验证加密:
- 传输加密:抓包或客户端启用 SSL 日志,确认 TLS 握手与加密通道建立;
- WAL/落盘加密:核查 RegionServer 日志与 HDFS 加密区配置是否生效。
- 运维要点:
- 定期轮换 Kerberos keytab 与 SSL/TLS 证书;
- 对 Ranger/Sentry(如使用)进行策略巡检与最小权限复核;
- 变更前在测试环境验证,滚动升级,保留回滚方案。以上步骤确保配置正确落地并持续可用。