EasyMR 安全架构揭秘:如何管理 Hadoop 数据安全
近年来,数据安全正在快速成为当今信息化时代一个备受关注的话题。在数字化快速发展的今天,各个领域都离不开数据的支撑,而数据安全问题也随之成为了一项重要的任务。企业、政府、学术机构等各种组织和个人都需要保护自己的数据免于泄露、丢失、篡改或被滥用等风险。
Hadoop 作为进入大数据领域的必备技术,由于自身的业务特点,一般都是部署在用户内网中,所以在早期设计的时候不是太注重安全方面的设计,而更多的专注于实现业务的功能。
作为领先的数字化基础软件与应用服务商袋鼠云,一直以来也高度重视数据安全问题,2022 年 12 月,在自研的大数据计算引擎 EasyMR 上新增了一站式大数据应用安全防控以及数据权限管控能力。
基于此,EasyMR 可以实现一键部署安全管控服务,一键开启大数据集群组件的安全认证、用户管理以及权限管控服务。
本文就为大家展开介绍一下 EasyMR 具体是如何管理 Hadoop 数据安全的。
Hadoop 的安全问题
最早部署 Hadoop 集群时并没有考虑安全问题,未开启安全认证时,Hadoop 是以客户端提供的用户名作为用户凭证, 一般就是发起任务的 Unix 用户。线上机器部署服务通常会采用统一账号,当以统一账号部署集群时,所有执行 Hadoop 任务的用户都是集群的超级管理员,非常容易发生误操作。
即便是以管理员账号部署集群,恶意用户在客户端仍然可以冒充管理员账号执行。随着集群的不断扩大, 各部门对集群的使用需求增加,集群安全问题就显得颇为重要。Hadoop 的安全问题,一般包括以下两个方面:
· 用户认证(Authentication) 即是对用户身份进行核对, 确认用户是其声明的身份, 这里包括用户和服务的认证。
· 用户授权(Authorization) 即是权限控制,对特定资源,特定访问用户进行授权或拒绝访问,用户授权是建立在用户认证的基础上, 没有可靠的用户认证谈不上用户授权。
EasyMR 如何接管 Hadoop 安全
EasyMR Hadoop 的安全认证是基于 Kerberos 实现的,集成 LDAP 用户体系。 Kerberos 是一个网络身份验证协议,用户只需输入身份验证信息,验证通过获取票据即可访问多个接入 Kerberos 的服务,机器的单点登录也可以基于此协议完成。
Hadoop 本身并不创建用户账号,而是使用 Kerberos 协议来进行用户身份验证,从 Kerberos 凭证中的用户信息获取用户账号, 这样一来就跟实际用户运行的账号无关。
EasyMR 接管 Hadoop 安全主要使用以下两种账号管理方式:
集群账号管理
原先我们使用单一账号作为集群管理员,且这一账号为线上统一登录账号, 这存在极大的安全隐患,我们需要使用特殊账号来管理集群。这里涉及的问题是,我们需要几个运维账号呢? 一种简单的做法是使用一个特殊运维账号, CDH 和 Apache 官方也都推荐按服务划分账号来启动集群。
考虑到精细化控制可以有效避免误操作,EasyMR 遵循官方的建议使用多账号,使用 Hadoop 作为同一用户组,每个组件使用单独的用户。如果是从单一运维账号迁移到多个账号部署时,则需要考虑相关文件权限问题,包括本地以及 HDFS 两部分,可以在安全部署上线时完成相应改动。
EasyMR 组件服务运行的用户信息可以配置在产品包服务层级下,下图以服务 hdfs_namenode 为例:
用户账号管理
考虑到每个团队下会有不同的小组,每个小组都有使用 Hadoop 来进行大数据处理需求,所以需要一定程度的多租户环境, 这里主要考虑其中的数据和操作的权限问题,EasyMR 集成了 LdapServer 目录服务系统,其功能优势具体体现如下:
• LdapServer 能够减少用户账户管理人员在面对用户数量大、增长快等问题的情况下对账号的创建、回收、权限管理、安全审计等一系列复杂而繁琐工作的压力。
• LdapServer 能够解决多层次、多类型系统、数据库的安全访问难题,所有与账号相关的管理策略均配置在服务端,实现了账号的集中维护和管理。
• LdapServer 能够充分继承和利用平台组织中现有的账户管理系统的身份认证功能,并实现了账户管理与访问控制管理的分离,提高了大数据平台访问认证的安全性。
EasyMR 如何部署 Hadoop 安全
EasyMR 可以支持 Hadoop,Hive,Spark,Ranger 组件开启 Kerberos 功能,每个组件的开启操作基本一致。下面以开启Hadoop Kerberos 功能为例为大家介绍 EasyMR 具体是如何部署 Hadoop 安全的。
准备产品包
安装产品包
● 安装 zookeeper、openldap、kdc、Hadoop 服务
以安装 Hadoop 服务为例,选中需要安装的服务,点击下一步;
指定每个服务需要部署的节点,点击执行部署;
部署完成后,可以在节点检查目录的权限及组件的启动用户。
开启 Kerberos 安全
部署完服务后,需要按照 Kerberos 开启顺序依次开启。
● zookeeper 开关
首先在服务页面,选择 zookeeper 服务,在部署配置里面找到 Switch 开关项,切换开关状态,等待开关开启结果。
● Hadoop 开关
在服务页面,选择 hadoop pkg 服务,在部署配置里面找到 Switch 开关项,切换开关状态,等待开关开启结果,开启成功后,hadoop Kerberos 功能就成功启用了。
应用授权
授权一般来说是由应用来决定的,通过在 LDAP 数据库中配置一些属性可以让应用程序来进行授权判断。EasyMR 在部署完 LdapServer 后,平台管理里面将会自动关联 LdapServer 的连接信息,用户只需选中对应的 LdapServer 连接,在对应的用户下点击下载票据即可。
《数据治理行业实践白皮书》下载地址:https://fs80.cn/380a4b
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szinfoq
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术 qun」,交流最新开源技术信息,qun 号码:30537511,项目地址:https://github.com/DTStack
版权声明: 本文为 InfoQ 作者【袋鼠云数栈DTinsight】的原创文章。
原文链接:【http://xie.infoq.cn/article/3fa86b86578f6384c76b555f0】。文章转载请联系作者。
评论