1.介绍
本文档描述如何在安全模式下配置Hadoop的身份验证。当Hadoop配置为以安全模式运行时,每个Hadoop服务和每个用户必须通过Kerberos进行身份验证。
必须正确配置所有服务主机的正向和反向主机查找,以允许服务彼此进行身份验证。可以使用DNS或/ etc / hosts文件配置主机查找。
Hadoop的安全特性包括认证,服务级别授权,Web控制台认证和数据机密性。
2.认证
2.1最终用户帐户
当启用服务级别身份验证时,最终用户必须在与Hadoop服务交互之前进行身份验证。最简单的方法是让用户使用Kerberos kinit命令进行交互式身份验证。当使用kinit的交互式登录不可行时,可以使用使用Kerberos keytab文件的程序化身份验证。
2.2Hadoop守护程序的用户帐户
确保HDFS和YARN后台驻留程序作为不同的Unix用户运行,例如hdfs和yarn。此外,请确保MapReduce JobHistory服务器以不同的用户身份运行,例如mapred。
建议他们共享一个Unix群组,例如hadoop。另请参阅“从用户映射到组”以进行组管理。
User:Group | Daemons |
---|---|
hdfs:hadoop | NameNode, Secondary NameNode, JournalNode, DataNode |
yarn:hadoop | ResourceManager, NodeManager |
mapred:hadoop | MapReduce JobHistory Server |
2.3Hadoop守护程序的Kerberos主体
每个Hadoop服务实例必须配置其Kerberos主体和keytab文件位置。
服务主体的一般格式为ServiceName/_HOST@REALM.TLD。例如dn/_HOST@EXAMPLE.COM。
Hadoop通过允许将服务主体的主机名组件指定为_HOST通配符,简化了配置文件的部署。每个服务实例将在运行时用_HOST替换其自己的完全限定主机名。这允许管理员在所有节点上部署同一组配置文件。但是,keytab文件将不同。
HDFS
每个NameNode主机上的NameNode keytab文件应如下所示:
$ klist -e -k -t /etc/security/keytab/nn.service.keytab
Keytab name: FILE:/etc/security/keytab/nn.service.keytab
KVNO Timestamp Principal
4 07/18/11 21:08:09 nn/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 nn/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 nn/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
该主机上的Secondary NameNode keytab文件应如下所示:
$ klist -e -k -t /etc/security/keytab/sn.service.keytab
Keytab name: FILE:/etc/security/keytab/sn.service.keytab
KVNO Timestamp Principal
4 07/18/11 21:08:09 sn/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 sn/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 sn/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
每个主机上的DataNode keytab文件应如下所示:
$ klist -e -k -t /etc/security/keytab/dn.service