游侠和 Kerberos

Ranger and Kerberos

我有一个安装了 Kerberos 和 Ranger 的三节点集群。

对于我作为普通用户 (tom) 使用的一个用例,我只是有点困惑。我的 /home/tom 中有 hdfs.headless.keytabhbase.headless.keytab 文件,所以我可以使用

[tom@master keytabs]$ ls /home/tom -l
total 8
-r--r----- 1 tom tom 373 Oct 26 02:32 hbase.headless.keytab
-r--r----- 1 tom tom 368 Nov  8 18:59 hdfs.headless.keytab

所以如果我想写入 HDFS,我总是可以通过以上文件启动 Kerberos 票证:

[tom@master root]$ klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_500)
[tom@master keytabs]$ kinit -kt /home/tom/hdfs.headless.keytab hdfs-bazargani_lab@BAZARGANI.COM
[tom@master keytabs]$ klist
Ticket cache: FILE:/tmp/krb5cc_500
Default principal: hdfs-bazargani_lab@BAZARGANI.COM

Valid starting     Expires            Service principal
11/08/18 19:12:10  11/09/18 19:12:10  krbtgt/BAZARGANI.COM@BAZARGANI.COM
        renew until 11/08/18 19:12:10

现在我要激活HBase的工单:

[tom@master keytabs]$ kinit -kt /home/tom/hbase.headless.keytab hbase-bazargani_lab@BAZARGANI.COM
[tom@master keytabs]$ klist
Ticket cache: FILE:/tmp/krb5cc_500
Default principal: hbase-bazargani_lab@BAZARGANI.COM

Valid starting     Expires            Service principal
11/08/18 19:30:01  11/09/18 19:30:01  krbtgt/BAZARGANI.COM@BAZARGANI.COM
        renew until 11/08/18 19:30:01

现在,当我 运行 下面的命令(写入 HDFS)时,我得到:

[tom@master keytabs]$ hdfs dfs -mkdir /tom
mkdir: Permission denied: user=hbase, access=WRITE, inode="/tom":hdfs:hdfs:drwxr-xr-x

我不确定为什么我不能执行上述操作,因为我已经在 HBase 之前初始化了 HDFS 的票证,当我写入 HDFS 时也为 tom 初始化了票证,它现在将其视为 HBase 用户并且不会让我写到 HDFS..我不能 su 到 hdfs 因为我不知道密码..有人可以解释我如何设置一个名为 tom 的主体,它可以同时执行 HBase 和 HDFS 票证操作吗?

据我所知,您可以做的更好的方法是创建一个名为 "tom.headless.keytab" 的密钥选项卡和主体 "tom@bozxxx" 我假设用户 tom 已经在 Ranger 上可用,如果没有,您可以同步用户(基于 Ranger 的配置方式,无论是配置为从文件读取还是从 Unix 用户或 Ldap 读取)或者快捷方式只是创建来自 Ranger UI 的用户 "tom"。用户创建后,授予用户 tom 在 HDFS 和 HBASE 上的访问权限。然后执行 Kinit 然后你可以 运行 你的命令