大数据 安全 hbase 加密 高可用 数据库 开源大数据 云数据库 身份认证 权限管理
摘要: 在 2018 年 1 月 25 日的数据库直播中, Apsara DB-HBase 产品技术团队的天斯分享了 "云数据库 HBase 企业级安全解析" 的重要课题, 通过与开源 HBase 相比, 拥有由 Intel 和 Alibaba 合作开发的 HAS 系统的云 HBase 系统无论在安全性还是在运维成本上亦或是友好性上都有了较大的提高.
摘要: 在 2018 年 1 月 25 日的数据库直播中, Apsara DB-HBase 产品技术团队的天斯分享了 "云数据库 HBase 企业级安全解析" 的重要课题, 通过与开源 HBase 相比, 拥有由 Intel 和 Alibaba 合作开发的 HAS 系统的云 HBase 系统无论在安全性还是在运维成本上亦或是友好性上都有了较大的提高.
直播视频: https://yq.aliyun.com/video/play/1333
PDF 下载: https://yq.aliyun.com/download/2459
以下为精彩视频内容整理: 开源 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 相比, 实现了运维成本和使用成本的下降, 简化了配置, 并且不依赖系统账户来实现公网用户, 经典网用户的访问, 最为重要的的是在安全性上有了更大的提高.
本文由云栖志愿小组林一木整理, 百见编辑.
来源: https://yq.aliyun.com/articles/411306