一种hadoop的身份认证机制构建方法

文档序号:7819625阅读:275来源:国知局
一种hadoop的身份认证机制构建方法
【专利摘要】本发明公开一种hadoop的身份认证机制构建方法,包括以下步骤:构建密钥分配中心(KDC)服务器;分别为hadoop集群内所有节点创建hdfs principal、mapred principal及HTTP principal;创建包含hdfs principal和HTTP principal的hdfs.keytab文件;创建包含mapred principal和HTTP principal的mapred.keytab文件。本发明公开的hadoop的身份认证机制构建方法,能够解决现有技术中hadoop访问控制不安全,集群节点可能被冒充的问题。
【专利说明】 一种hadoop的身份认证机制构建方法

【技术领域】
[0001]本发明涉及身份认证领域,尤其涉及一种hadoop的身份认证机制构建方法。

【背景技术】
[0002]大数据时代为hadoop提供了诸多机会。hadoop凭借其在海量数据的良好扩展性、高效的读写以及处理能力,受到了重视。然而,在众多机遇的背后,hadoop也面临着很多挑战。如何保证hadoop的安全性自然就成了一个绕不开的话题,没有访问控制,存储其中的数据可以被随意访问甚至执行删改等误操作,会造成很多潜在的风险。因此,hadoop的访问控制,就成为了一个很重要的需求。
[0003]在不含身份认证的hadoop环境中,用户与hadoop分布式文件系统(HDFS)或者M/R进行交互时并不需要进行验证,恶意用户可以伪装成真正的用户或者服务器入侵hadoop集群,恶意提交mapreduce作业,更改JobTracker状态,修改HDFS上的数据等。
[0004]目前HDFS增加了文件和目录的权限认证,但是这些只能对偶然的数据丢失起保护作用。恶意用户可以轻易的伪装成其他用户来修改权限,致使权限设置形同虚设,不能够对hadoop集群起到安全保障。
[0005]Kerberos协议主要用于计算机网络的身份鉴别(Authenticat1n),其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SS0(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。


【发明内容】

[0006]本发明提供一种hadoop的身份认证机制构建方法,用来解决现有技术中hadoop访问控制不安全,集群节点可能被冒充的问题。
[0007]为了解决上述技术问题,本发明提供一种hadoop的身份认证机制构建方法,包括以下步骤:构建密钥分配中心(KDC)服务器;分别为hadoop集群内所有节点创建hdfsprincipal、mapred principal 及 HTTP principal ;创建包含 hdfs principal 和 HTTPprincipal 的 hdfs.keytab 文件;创建包含 mapred principal 和 HTTP principal 的mapred.keytab 文件。
[0008]进一步地,所述hadoop的身份认证机制是通过kerberos协议完成的。
[0009]进一步地,所述hadoop的身份认证机制构建方法,还包括以下步骤:使用合并后的hdfs.keytab文件和mapred.keytab文件获取证书,并部署hdfs.keytab文件和mapred.keytab文件,以使hdfs和mapred用户可以访问。
[0010]本发明所提供的hadoop的身份认证机制构建方法为hadoop集群提供了基于kerberos协议的可靠、高效且操作简单的身份认证机制,确保恶意用户无法伪装成真正的用户或者服务器入侵hadoop集群,提交mapreduce作业,更改JobTracker状态,修改HDFS上的数据等恶意操作,极大地确保了 hadoop集群的可靠安全性。

【专利附图】

【附图说明】
[0011]图1所示为根据本发明较佳实施例提供的hadoop的身份认证机制构建方法的流程图。

【具体实施方式】
[0012]下面结合附图及具体实施例方式对本发明作进一步详细描述。
[0013]以如下的现有环境为例进行说明:一个可用的系统包yum源(本地、网络均可);一个可用的三个节点的hadoop集群环境,且三个节点的主机名分别为:node01.test, com、node02.test.com、node03.test, com。
[0014]如图1所示,具体步骤描述如下。
[0015]于步骤SI,安装kerberos服务所需的安装包,并修改相关配置文件,构建密钥分配中心(KDC)服务器。具体而言,所有节点安装krb5_workstat1n、krb5_workstat1n及其依赖包,KDC节点另外安装krb5_server。
[0016]于步骤S2,仓Il建新的principal数据库为hadoop集群使用。其中,principal表示参加kerberos认证的基本实体(例如,客户端或服务器端)。
[0017]于步骤S3,更改kerberos的相关配置,创建kerberos远程管理的管理员。具体如下:更改配置文件 /etc/krb5.conf ;更改配置文件 /var/kerberos/krb5kdc/kdc.conf ;更改配置文件/var/kerberos/krb5kdc/kadm5.acl ;并将/etc/krb5.conf 拷贝到其他节点的相同目录替换。
[0018]于步骤S4,分别为hadoop集群内所有节点创建principal。其中,包括创建hdfsprincipal、mapred principal 及 HTTP principal。
[0019]其中,仓丨」建hdfs principal的方式如下:
[0020]#kadmin.local
[0021]Kadmin:addprinc-randkey hdfs/nodeOl.test.com@HAD00P
[0022]Kadmin:addprinc-randkey hdfs/node02.test.com@HAD00P
[0023]Kadmin:addprinc-randkey hdfs/node03.test.com@HAD00P
[0024]创建mapred principal 的方式如下:
[0025]#kadmin.local
[0026]Kadmin:addprinc-randkey mapred/nodeOl.test.com@HAD00P
[0027]Kadmin:addprinc-randkey mapred/node02.test.com@HAD00P
[0028]Kadmin:addprinc-randkey mapred/node03.test.com@HAD00P
[0029]创建HTTP principal的方式如下:
[0030]#kadmin.local
[0031]Kadmin:addprinc-randkey HTTP/nodeOl.test.com@HAD00P
[0032]Kadmin:addprinc-randkey HTTP/node02.test.com@HAD00P
[0033]Kadmin:addprinc-randkey HTTP/node03.test.com@HAD00P
[0034]于步骤S5,创建相应的keytab。于此,创建包含hdfs principal和HTTPprincipal 的 hdfs.keytab 文件,及创建包含 mapred principal 和 HTTP principal 的mapred.key tab 文件。
[0035]创建包含hdfs principal 和 HTTP principal 的 hdfs.keytab 文件,如下:
[0036]kadmin:xst-norandkey-k hdfs.keytab hdfs/nodeOl.test.com@HAD00P HTTP/nodeOl.test.com@HAD00P
[0037]kadmin:xst-norandkey-k hdfs.keytab hdfs/node02.test.com@HAD00P HTTP/node02.test.com@HAD00P
[0038]kadmin:xst-norandkey-k hdfs.keytab hdfs/node03.test.comOHADOOPHTTP/node03.test.com@HAD00P
[0039]创建包含mapred principal 和 HTTP principal 的 mapred.keytab 文件,如下:
[0040]kadmin:xst-norandkey-k mapred.keytab mapred/nodeOl.test.com@HAD00PHTTP/nodeOl.test.com@HAD00P
[0041]kadmin:xst-norandkey-k mapred.keytab mapred/node02.test.com@HAD00PHTTP/node02.test.com@HAD00P
[0042]kadmin:xst-norandkey-k mapred.keytab mapred/node03.test.com@HAD00PHTTP/node03.test.com@HAD00P
[0043]于步骤S6,使用合并后的keytab获取证书,方式如下:
[0044]#kinit - k - t hdfs.keytab hdfs/nodeOl.1nspur.com@HAD00P
[0045]#kinit - k - t mapred.keytab mapred/nodeOl.1nspur.com@HAD00P
[0046]于步骤S7,部署kerberos keytab文件,使其可以被hdfs和mapred用户访问。具体而言,将步骤S5中生成的hdfs.keytab移动到$HAD00P—HOME/conf下,将步骤S5中生成的 mapred.keytab 移动到 $HAD00P—HOME/conf 下
[0047]于步骤S8,添加kerberos自启动及重启服务。
[0048]于步骤S9,停止hadoop集群所有服务。
[0049]于步骤S10,更改hadoop相关配置文件,使得hadoop集群使用kerberos协议进行身份认证。
[0050]具体而言,在$HAD00P—HOME/core-site.xml中添加或修改以下内容:
[0051]〈property〉
[0052]<name>hadoop.security.authenticat1n</name>
[0053]<value>kerberos</value〉
[0054]</property)
[0055]〈property〉
[0056]<name>hadoop.security.authorizat1n</name>
[0057]<value>true</value〉
[0058]</property)
[0059]在$HAD00P—HOME/conf/hdfs-site.xml 中添加以下内容:
[0060]〈property〉
[0061]<name>dfs.namenode.keytab.file〈/name>
[0062]〈value>$HAD00P—HOME/conf/hdfs.keytab</value>
[0063]</property)
[0064]〈property〉
[0065]<name>dfs.namenode.kerberos.principal〈/name>
[0066]<value>hdfs/_H0ST@HAD00P</value>
[0067]</property)
[0068]〈property〉
[0069]<name>dfs.namenode.kerberos.1nternal, spneg0.principal〈/name>
[0070]<value>HTTP/_H0ST@HAD00P</value>
[0071 ]</property)
[0072]〈property〉
[0073]<name>dfs.secondary, namenode.keytab.file〈/name>
[0074]〈value>$HAD00P—HOME/conf/hdfs.keytab</value>
[0075]</property)
[0076]〈property〉
[0077]<name>dfs.secondary, namenode.kerberos.principal〈/name>
[0078]<value>hdfs/_H0ST@HAD00P</value>
[0079]</property)
[0080]〈property〉
[0081]<name>dfs.secondary, namenode.kerberos.1nternal, spneg0.principaK/name>
[0082]<value>HTTP/_H0ST@HAD00P</value>
[0083]</property)
[0084]〈property〉
[0085]<name>dfs.datanode.keytab.file〈/name>
[0086]〈value>$HAD00P—HOME/conf/hdfs.keytab</value>
[0087]</property)
[0088]〈property〉
[0089]<name>dfs.datanode.kerberos.principal〈/name>
[0090]<value>hdfs/_H0ST@HAD00P</value〉
[0091 ]</property)
[0092]〈property〉
[0093]<name>dfs.datanode.kerberos.1nternal, spneg0.principal〈/name>
[0094]<value>HTTP/_H0ST@HAD00P</value>
[0095]</property)
[0096]在$HAD00P—HOME/conf/mapred-site.xml 中添加以下内容:
[0097]〈property〉
[0098]<name>mapreduce.jobtracker.kerberos.principal〈/name>
[0099]<value>mapred/_H0ST@HAD00P</value〉
[0100]</property)
[0101]〈property〉
[0102]<name>mapreduce.jobtracker.kerberos.https.principal〈/name>
[0103]<value>host/_H0ST@HAD00P</value>
[0104]</property)
[0105]〈property〉
[0106]<name>mapreduce.jobtracker.keytab.file〈/name>
[0107]〈value>$HAD00P—HOME/conf/mapred.keytab〈/value〉
[0108]</property)
[0109]〈property〉
[0110]<name>mapreduce.tasktracker.kerberos.principal〈/name>
[0111]<value>mapred/_H0ST@HAD00P</value〉
[0112]</property)
[0113]〈property〉
[0114]<name>mapreduce.tasktracker.kerberos.https.principal〈/name>
[0115]<value>host/_H0ST@HAD00P</value〉
[0116]</property)
[0117]〈property〉
[0118]<name>mapreduce.tasktracker.keytab.file〈/name>
[0119]〈value>$HAD00P—HOME/conf/mapred.keytab</value>
[0120]</property)
[0121]并拷贝$HAD00P—HOME 下 core-site.xml、hdfs-site.xml、mapred-site.xml、hdfs.keytab λ mapred.keytab到其他节点对应目录。
[0122]于步骤11,重启hadoop集群,验证所有功能是否正常。若启动成功,则hadoop的身份认证机制构建成功。
[0123]以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
【权利要求】
1.一种hadoop的身份认证机制构建方法,其特征在于,包括以下步骤: 构建密钥分配中心(KDC)服务器; 分别为hadoop集群内所有节点创建hdfs principal、mapred principal及HTTPprincipal ; 创建包含 hdfs principal 和 HTTP principal 的 hdfs.keytab 文件; 创建包含 mapred principal 和 HTTP principal 的 mapred.keytab 文件。
2.如权利要求1所述的hadoop的身份认证机制构建方法,其特征在于:所述hadoop的身份认证机制是通过kerberos协议完成的。
3.如权利要求1所述的hadoop的身份认证机制构建方法,其特征在于,还包括以下步骤:使用合并后的hdfs.keytab文件和mapred.keytab文件获取证书,并部署hdfs.keytab文件和mapred.keytab文件,以使hdfs和mapred用户可以访问。
【文档编号】H04L9/32GK104363095SQ201410645216
【公开日】2015年2月18日 申请日期:2014年11月12日 优先权日:2014年11月12日
【发明者】宗栋瑞, 郭美思, 宋立伟 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1