开源HBase安全介绍
开源HBase的安全功能主要包含3个部分:
1.Access Controller coprocessor实现的ACL权限控制;
2.RPC层的安全认证,主要实现有kerberos认证;
3.HBase的WebUI支持https访问。
开源HBase ACL权限控制介绍
HBsae ACL是基于coprocessor实现的一套权限控制机制,可以有效控制用户对HBase的数据访问权限,最小维度控制到列级。支持按用户、用户组来进行权限分配。HBsae ACL的作用范围大小:global > namespace > table > famliy > quelifier。而认证通过优先级顺序:global > namespace > table > family > quelifier。看以看出用户权限是由大到小进行认证,因此在规定用户权限时要注意用户的受限的权限上层的大权限有无被限制。此外可以按单个用户user分配进行权限管理,也可以按 用户group进行权限管理,认证顺序user>group。
开源HBase ACL使用案例
在对某公司HBase数据库管理小组各成员进行权限分配后,可以实现各相关人员的权限但是并不能保证访问权限的安全,假若有来自外界的冒充人员,在获取相应API后,在不开启身份认证时系统会误认为其是小组内的成员,这样就存在了安全风险。此时需要系统开启身份认证来拒绝冒充人员的访问,从而达到安全要求。
开源HBase 身份认证
身份认证(Authentication)是用于识别用户身份的过程,只有通过身份认证的用户才有可能访问某些服务。与身份认证不同的是,ACL授权仅仅控制的是指定的用户访问某些制定服务,但并不进行相应的身份识别。因此,只有身份认证(Authentication)和授权(Authorization)一同使用才能达到更更好的安全作用。
HBase目前支持的身份认证方式是kerberos认证,在RPC级实现的认证功能,并且kerberos也是hadoop内置的唯一认证方式。HBase/HDFS/Zookeeper一般同时开启kerberos认证功能使用。
当前开源HBase的安全常用搭建方案主要有3方面:
1.HBase启用kerberos认证,启用https WebUI 访问,启用ACL权限授权控制,开启日志审计,流量限制;
2.HDFS启用kerberos认证,启用权限控制,启用数据加密;
3.Zookeeper启用kerberos认证,启用zk的ACL权限控制。
Kerberos介绍
Kerberos是一种网络认证协议,目前Kerberos协议有很多实现版本,其本质使用对称加密的技术实现网络中的身份认证。通常使用第三方服务的方式提供身份认证,即独立于相关的服务组件。目前很多大数据服务组件都默认集成了Kerberos,均可以开启Kerberos身份启动服务。
当一个用户需要访问某个被Kerberos保护的服务时,Kerberos认证过程可以分为两个阶段:
1.Kerberos服务端程序(Authentication Server,AS)对用户的身份认证;
2.服务对用户的身份认证。
目前开源HBase在开启相应身份认证后,虽然安全性得到了有效提高,但是其存在成本方面投入巨大,访问集群准备 步骤多且繁锁,使用并不友好,配置复杂繁琐,需要将账户与系统进行绑定等缺点。
云数据库HBase安全介绍
云数据库HBase在安全的方面主要支持功能有:网络层安全隔离、身份认证、权限控制,日志审计、流量控制,数据加密。公网用户、经典网用户若想用户VPC需要先加入白名单,否则是无法进行访问的。
云数据库HBase的网络安全隔离方面,用户可以设置防火墙白名单、安全组端口限制,选择HBase安装在VPC专有网络上;在身份认证上,采用Intel和Alibaba合作开发的HAS服务做身份认证,使用更友好;在权限控制上兼容HBase Access Controller coprocessor,支持细粒度权限控制,用户账户不依赖本地linux系统用户,提高了使用的效率;在审计上可以记录用户对资源访问操作,监控/跟踪资源访问的安全风险。因此,与开源HBase相比云数据库HBase在安全性、成本、用户友好方面都有较大的提高。
云HBase安全模块还提供了:
1)支持多种认证方式实现,如账户密码、RAM、LDAP等;
2)扩展backend元数据高可用服务;
3)简化client配置;
4)快捷方便的命令行行管理工具;
5)可以向客服提供与现存账户认证体系对接的能力。
云HBase安全原理
1.什么是HAS?
HAS (Hadoop Authentication Service),由致力于解决开源大数据服务和生态系统的认证支持。目前开源大数据(Hadoop/Spark)在安全认证上只内置支持了Kerberos方式,HAS提出了一种新的认证方式(Kerberos-based token authentication),通过与现有的认证和授权体系进行对接,使得在Hadoop/Spark在上面支持Kerberos以外的认证方式变成可能,并对最终用户简化和隐藏Kerberos的复杂性。
2.HAS系统架构
HAS基于Apache Kerby 基础上,以较少的开发 成本实现的全新的针对开源⼤大数据认证的方案。Apache Kerby为HAS主要:提供了了全面的kerberos 客户端lib和工具;提供了Kerby KDC:高效、高可用服务;强大的ASN-1支持;TokenPreauth 全新的token认证机制。
HAS协议流程主要是对Kerberos进行扩展,其协议基础是TokenPreauth机制,该机制主要是在Apache Kerby中实现。该机制允许用户使用第三⽅方颁发的token来代替,并由password向KDC进行身份验证,目前已经被广泛的使用在互联网、云和移动互联网中,使得Kerberos系统能够和其他认证方案相结合,并推动了Kerberos在云和大数据平台上的发展。
云HBase安全应用场景
安全需求无处不在,例如,企业为了防止员工恶意报复,防止外部用户访问盗窃数据,甚至删除所有数据等。可以说只要是生产的环境,就有安全的需求,只是安全要求的防护级别有所不不同。例如对于公有云常见的用户,一般HBase数据库就是内网DB,只供自己访问使用,没有第三方人员公用,加上存储的数据可能都是用户日志数据,那么这个客户可能只需要外部网络层隔离就可以了。如果某公司HBase数据库与某业务第三方服务商供存储,可能就需要更更进一步的身份、权限、审计等安全需求了。
云HBase与开源HBase相比,实现了运维成本和使用成本的下降,简化了配置,并且不依赖系统账户来实现公网用户、经典网用户的访问,最为重要的的是在安全性上有了更大的提高。
大家工作学习遇到HBase技术问题,把问题发布到HBase技术社区论坛http://hbase.group,欢迎大家论坛上面提问留言讨论。想了解更多HBase技术关注HBase技术社区公众号(微信号:hbasegroup),非常欢迎大家积极投稿。
领取专属 10元无门槛券
私享最新 技术干货