由于Hadoop、HBase、Spark等大数据系统在设计之初对安全问题考虑不充分,需要对大数据平台进行安全加固,其中最重要的是建立大数据环境下的4A体系(账号Account、认证Authentication、授权Authorization、审计Audit)。
1 统一账号系统
大数据平台基于LDAP实现大数据统一账号系统,对大数据平台各个组件的系统账号、用户账号进行集中、安全的管理。
- 统一账号系统基于LDAP实现下面的账号管理功能:
- 系统管理员增、删、改、查用户和组账号
- 系统管理员设置组的组管理员
- 系统管理员设置密码安全策略
- 组管理员增、删、改、查对应组的用户账号
- 审计日志与统一审计系统对接,实现账号管理的集中审计
统一账号系统提供Web界面方便管理员进行日常操作,并提供RESTful https接口与大数据平台或者第三方组件与进行对接和账号打通,实现安全、集中的统一账号管理。
2 统一认证系统
大数据平台基于Kerberos和IP白名单实现大数据统一认证系统,从安全证书和网络IP两个维度交叉对平台用户进行身份认证,合法的用户可以进行操作,非法的用户会被拒绝不能进行操作。
平台实现了HDFS、HBase、Hive、YARN、MapReduce、YARN、Kafka、TransferX、BigManager、BigPlorer等组件的Kerberos认证机制。
为了防止Kerberos证书被泄露或者误用,大数据平台还在Kerberos基础上进行认证加固,基于IP白名单对访问者的IP进行认证,被授权合法的IP+用户组合才能访问平台,未授权的IP即使有Kerberos证书也无法正常访问平台,从而降低Kerberos证书被泄露的安全风险。
3 统一授权系统
大数据平台实现基于RBAC模型的大数据统一授权系统,通过角色和权限两个维度对平台用户进行身份授权,具有合法权限的用户可以进行操作,不具备权限的用户会被拒绝不能进行操作。
基于角色的访问控制RBAC授权系统实现如下的功能:
1、基于角色进行访问控制和授权,对角色进行的授权会对这个角色的所有用户生效,可以方便的对一组用户进行批量授权和回收。用户默认属于自己和所属组两个角色,可以根据授权的需要创建新的角色并赋予相应的权限,然后在角色中增加和删除用户实现授权和回收。
2、访问控制和授权的粒度可以根据需要细化,包括授权的主体、客体、权限等各个维度。
3、提供可视化Web页面对统一授权系统进行操作。普通用户可以在Web页面上查看自己的角色和权限,申请新的权限。组管理员和管理员可以审批普通用户的权限申请,对已有的角色和权限进行修改。
4、可扩展的插件化机制,提供统一的服务端和RBAC客户端插件机制支持不同组件的集中授权管理,目前已经实现HDFS、HBase、Hive、YARN、Kafka等组件的RBAC授权管理,新的组件和系统可以通过调用RBAC客户端插件或RESTful API很方便的与授权系统进行对接。
5、安全可靠的授权机制,一方面RBAC服务端和客户端之间通过https进行通信,避免授权信息在网络中被监听或篡改,另一方面RBAC客户端将服务端的访问控制列表缓存到内存中,不读写本地文件,避免主机被攻破后修改配置文件绕过授权系统。
统一授权系统的架构如下:
HDFS/HBase/Hive/Yarn/Kafka插件运行在各相应集群中,用户的每个操作都需经过插件来验证授权信息。各插件会定时的跟权限服务中心同步权限权限数据;大数据平台实现RBAC基于角色的访问控制授权系统对数据进行严格的访问控制,用户默认只对自己的数据有访问权限,需要访问其他用户的数据首先要获得访问控制授权。
为了实现最小化授权和访问控制,大数据平台的访问控制授权系统从多个方面进行细粒度的权限控制,包括:
- 访问的主体:细化到用户或者用户+程序。普通数据访问授权细化到用户,高密级数据访问授权细化到某个用户的某个程序,授权的程序需要进行代码审查和备案,可以有效防止通过拷贝数据转储等方式滥用授权的数据。
- 访问的客体:细化到结构化数据的表、字段,非结构化数据的目录、文件、对象、文档。
- 访问的权限:细化到结构化数据show/desc/select/update/delete /insert等,非结构数据的读、写、查找等。
- 访问的有效期:可细化指定授权的截止时间,在截止时间之前的有效期内访问授权有效,有效期过后授权自动失效权限自动收回。
- 访问的时间段:可细化指定授权允许的时间段,比如工作日的工作时间段,防止在非预期的时间数据被访问。
- 访问的来源:可细化指定授权访问的来源IP,限定只能通过某个/某些IP来源的请求才能访问授权数据,防止被授权账号被窃取或故意在非预期的设备/主机上使用。
4 统一审计系统
大数据平台基于审计日志实现大数据统一审计系统,支持通用的日志收集模块和高危操作实时告警功能,允许审计员对日志设置多样化多维度的过滤规则,在海量数据中实时、精准的识别高危操作。同时审计系统对收集的日志支持全文检索,方便审计员快速回溯用户行为。
平台支持HDFS、HBase、Hive、Yarn组件的审计,且支持多样性的告警方式。统一审计平台实现如下功能:
- 基于日志进行统一的审计,收集各个组件的审计日志,进行集中存储,检索,分析,告警。
- 审计日志存储采用经过加固的ElasticSearch,数据只能新增和按照日期淘汰清理,不能手动修改或删除,保护审计日志不会被恶意篡改和清除。
- 提取审计日志中结构化信息,包括集群,用户,IP,操作,对象,时间等,对不同的审计日志做统一的结构化处理,展示,分析等。
- 交互式的审计日志检索,可以对结构化的集群,用户,IP,操作,对象,时间等字段进行精确检索,也可以对原始日志做模糊检索。
- 自定义的告警策略,支持等值,包含,正则等多种日志匹配规则,支持邮件,短信等告警方式。
- 可扩展的统一审计架构,新的组件或系统可以方便地整合到统一审计系统中,只需要采集审计日志,配置/开发日志解析,定义告警策略,就可以实现集中的审计管理。