权限的管控,历来是大数据平台中最让人头疼的问题之一。管得严了,业务不流畅,用户不开心,放得宽了,安全没有底。而且大数据平台组件,服务众多;架构,流程复杂;有时候,就是想管,也未必能管得起来。
权限管控,做多少,怎么做,花多少代价,取决于目标出发点。权限管控目标:是对用户常规的业务行为范围进行限定,敏感数据的控制,对业务逻辑和流程的约束;通过减少用户不必要的权限,减少受害面,降低可能的业务风险,同时也便于明确用户的权责归属关系。
涉及到的技术方案层面,Kerberos,LDAP,Ranger,Sentry,ACL,包括各个组件的权限管控方案以及权限管控的目标。
权限管控的两个步骤:认证和授权,前者鉴定身份,后者根据身份赋予权限。
在授权环节,如何进行对权限集中统一的管理;如何让用户自主的申请权限;如何把权限的管理工作交给具体的业务负责人而不是平台管理员;如何在不同的组件之间,不同的用户之间打通权限关系。
在用户身份鉴定环节,需要对当前权限建设重点目标流程进行剖析以及选择合适的权限技术方案。
权限管理相关工作可以分为两个部分内容:
用户身份认证环节,Hadoop生态系统中常见的开源解决方案是Kerberos+LDAP;授权环节,常见解决方案有Ranger,Sentry等,还有Knox这种走Gateway代理服务的方案。
Kerberos是Hadoop生态系统中应用最广泛的集中式统一用户认证管理框架。
提供一种集中式的身份验证服务器,各种后台服务并不直接认证用户的身份,而是通过Kerberos这个第三方服务来认证。用户的身份和密钥信息在Kerberos服务框架中统一管理。这样各种后台服务就不需要自己管理这些信息并进行认证,用户也不需要在多个系统上登记自己的身份和密码信息。
Kerberos最核心的思想是基于密钥的共识,有且只有中心服务器知道所有的用户和服务的密钥信息,如果信任中心服务器,就可以信任中心服务器给出的认证结果。
Kerberos从原理上来说很健全,但是实现和实施起来很繁琐。
总体来说,Kerberos是当前最有效最完善的统一身份认证框架,但是如果真的要全面实施,代价也很高。用户身份认证只是权限管理环节中很小的一部分,虽然技术难度大,但是从实际影响来看,合理的权限模型和规范的管理流程,通常才是数据安全的关键所在。
Apache Ranger提供一个集中式安全管理框架, 并解决授权和审计。它可以对Hadoop生态的组件如HDFS、Yarn、Hive、Hbase等进行细粒度的数据访问控制。通过操作Ranger控制台,管理员可以轻松的通过配置策略来控制用户访问权限。
Ranger主要由以下三个组件构成
Hortonworks Data Platform 随附的Apache Ranger使用策略提供针对 Hadoop 组件(例如,Hive、HBASE 和 HDFS)的细颗粒度访问控制和审计。
Apache Ranger官网是源码包版本,不提供二进制安装包,故需要Maven编译,并自行部署安装。
Apache Sentry是Cloudera公司发布的一个Hadoop开源组件,它提供了细粒度级、基于角色的授权以及多租户的管理模式。
Sentry提供了对Hadoop集群上经过身份验证的用户和应用程序的数据控制和强制执行精确级别权限的功能。Sentry目前可以与Apache Hive,Hive Metastore / HCatalog,Apache Solr,Impala和HDFS(仅限于Hive表数据)一起使用。
Apache Knox Gateway是用于与Apache Hadoop部署的RESTAPI和UI交互的应用程序网关。Knox Gateway为与Apache Hadoop集群的所有REST和HTTP交互提供一个单一的访问点。
Knox提供三组面向用户的服务:
「用户-角色-权限」的权限逻辑就是目前行业内普遍使用的 RBAC (Role-Based Access Control:基于角色的权限控制)权限模型。其核心是引入角色的概念,用角色作为中间介质,使用户与权限配置更加灵活。
POSIX权限模型是基于文件的权限模型,与Linux系统的文件系统权限类似。即一个文件有相应的OWNER和GROUP,只能支持设置OWNER,、GROUP和其他用户的权限,可授权限也只有读写执行权限。
这种模型不适用于企业用户,有一个明显的缺点就是它只有一个GROUP,不能实现不同的GROUP有不同的权限,也无法实现精细化的权限管理,只能在文件级授权,所授权限也只有读写与执行权限。
ACL(Access Control List)访问控制列表,一种访问控制机制,主要包含三个关键要素用户(User)、资源(Resource)和操作(Operate)。当用户请求操作资源时会检查资源的权限列表,如果资源的权限列表中存在该用户的操作权限则允许否则拒绝。
ACL即Access Control List,ACL权限模型可以弥补POSIX权限模型的不足,可以实现比较精细化的权限管理。通过设置访问控制列表,可以授予某一个用户多个权限,也可以授予不同用户不同的权限。但ACL也有明显的缺点,当用户数较大时,ACL列表会变得庞大而难以维护,这在大企业中问题尤其明显。
SQL Standard模型是Hive/Spark使用权限模型之一,本质是使用SQL方式的授权语法来管理权限。Hive中的权限模型也是基于ACL和RBAC模型,即可以给单独的用户直接授权,也可能通过角色进行授权。
SQL标准的权限模型,从模型的角度来说和ACL模型并没有什么本质的区别,只不过是在类SQL语法的系统中,模仿了MySQL等传统数据库中标准的授权语法来与用户进行交互。
目前企业缺少数据安全方面的技术手段和有效的管理制度,增加数据泄漏风险。
另一个就是由于内部员工安全意识不足造成数据信息泄漏。
随着国内外政府和行业对信息安全的重视,提出相关法律规定和管理制度,不断要求增强数据安全性且安全要求趋细化。例如我国在2017年6月正式生效的《中华人民共和国网络安全法》、欧盟2018年5月生效的《GeneralData Protection Regulation》(简称GDPR)、中国2018年5月生效的GB/T 35273《信息安全技术个人信息安全规范》等等
随着IT技术不断迭代,造成数据泄漏懂的风险途径不断增加,增加数据泄漏风险。
恶意攻击风险不断增加也是一个方面。
分析各行业和自身企业在数据安全方面面临的一些安全问题。
数据资产管理问题,主要体现在如下三个方面:
数据资产梳理是一个持续的过程,数据和业务是不断发生变化的,因此需要借助自动化工具来开展数据资产管理工作。准确掌握数据资产安全状况,是开展数据安全体系建设的基础条件。如:存储位置,管理人,部门,分级,分类等。
数据管理责任问题,主要体现在如下两个方面:
数据安全管理角色一般情况会由研发、运维、安全、运营人员来兼任,没有独立的团队或虚拟团队,导致权责不清,不利于整体提升数据安全防护能力。建立数据安全管理角色至关重要:数据资产管理员、数据库管理员、安全审计员、安全检测工程师、数据运维工程师、权限管理员等。
数据制度不完善问题,主要体现在如下两个方面:
数据管理制度通过数据安全咨询规划建立一套切实可行的制度规范,同时制定出数据安全管控措施与SLA评价指标,避免由于缺少稽核手段,导致数据安全管理部门无法及时掌握执行情况。
数据交换管理混乱问题,主要体现在如下两个方面:
数据会向外部、内部和合作伙伴进行交换共享,随着开放的接口越来越多,交换关系越来越复杂,将交换共享的方式和接口标准化,将会避免出现功能重复、调用复杂、多点登录等现象,且不会影响数据应用的发展。
安全技术措施零散问题,主要体现在如下两个方面:
数据安全能力的建设也会以组织为单位开展,避免各组织分散建设,从数据生命周期的统一建立防御体系。
数据审计能力不足问题,主要体现在如下两个方面:
可通过审计对攻击的操作轨迹和规律从而发现安全隐患,建立相关动态信任机制。
组织管理建设
结合自身企业的组织架构从上而下,定义管理层、业务部门、实施部门、合规监控和审计部门、运营部门等的相关职责。
标准制度和规范建设
建设或完善数据防泄漏的总体策略、管理办法、应急方法以及具体操作流程。从制度体系上支撑数据防泄漏工作。
技术工具建设
采用专业、成熟的技术,落地管理层认可的细化策略,通过平台实现数据外泄行为,并记录、告警以及阻断。从技术上实现防泄漏目标。
整体实现核心技术
数据资产管理,分类分级,数据权限管理和审计,KMS+CA,零信任,数据安全网关,数据画像,DLP,区块链隐私,水印,TEE,联邦学习,同态加密。
结合自身企业的组织架构从上而下,定义管理层、业务部门、实施部门、合规监控和审计部门、运营部门等的相关职责。
标准制度和规范建设
建设或完善数据防泄漏的总体策略、管理办法、应急方法以及具体操作流程。从制度体系上支撑数据防泄漏工作。
技术工具建设
采用专业、成熟的技术,落地管理层认可的细化策略,通过平台实现数据外泄行为,并记录、告警以及阻断。从技术上实现防泄漏目标。
整体实现核心技术
数据资产管理,分类分级,数据权限管理和审计,KMS+CA,零信任,数据安全网关,数据画像,DLP,区块链隐私,水印,TEE,联邦学习,同态加密。