hadoop kerberos官方配置详解(3)

在MapReduce JobHistory Server主机上的keytab文件,应该看起来像这样:

$ klist -e -k -t /etc/security/keytab/jhs.service.keytab Keytab name: FILE:/etc/security/keytab/jhs.service.keytab KVNO Timestamp Principal 4 07/18/11 21:08:09 jhs/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC) 4 07/18/11 21:08:09 jhs/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC) 4 07/18/11 21:08:09 jhs/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) 映射Kerberos principals到操作系统用户账号

Hadoop使用被hadoop.security.auth_to_local指定的规则来映射kerberos principals到操作系统(系统)用户账号。这些规则使用和在 Kerberos configuration file (krb5.conf)中的auth_to_local相同的方式工作。另外,hadoop auth_to_local映射支持/L标志来是返回的名字小写。

默认会取principal名字的第一部分作为系统用户名如果realm匹配defaul_realm(通常被定义在/etc/krb5.conf)。比如:默认的的规则映射principal host/full.qualified.domain.name@REALM.TLD到系统用户host。默认的规则可能对大多数的集群都不合适。

在一个典型的集群中,HDFS和YARN服务将分别由hdfs和yarn用户启动。hadoop.security.auth_to_local可以被配置成这样:

<property> <name>hadoop.security.auth_to_local</name> <value> RULE:[2:$1@$0](nn/.*@.*REALM.TLD)s/.*/hdfs/ RULE:[2:$1@$0](jn/.*@.*REALM.TLD)s/.*/hdfs/ RULE:[2:$1@$0](dn/.*@.*REALM.TLD)s/.*/hdfs/ RULE:[2:$1@$0](nm/.*@.*REALM.TLD)s/.*/yarn/ RULE:[2:$1@$0](rm/.*@.*REALM.TLD)s/.*/yarn/ RULE:[2:$1@$0](jhs/.*@.*REALM.TLD)s/.*/mapred/ DEFAULT </value> </property>

自定义规则可以使用Hadoop kerbname命令测试,这个命令运行你指定一个principal并应用Hadoop当前的auth_to_local规则设置。

系统用户到系统组的映射机制可以通过hadoop.security.group.mapping配置。更多细节查看。

实际上,你需要在Hadoop安全模式中使用Kerberos with LDAP管理SSO(单点登录)环境。

代理用户

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d9d246ed39d4b7719eccfada3af60d5c.html