100.如何用OpenLDAP的用户进行Sentry授权

100.1 演示环境介绍

  • OpenLDAP:2.4.44
  • CM和CDH版本:5.13.1
  • OS为Redhat:7.3
  • 已启用Kerberos
  • OpenLDAP服务和CDH各个服务已安装和集成

100.2 操作演示

1.OpenLDAP环境描述

  • 主节点IP地址
    • 186.31.24.169
  • 主节点HOSTNAME
    • ip-186-31-24-169.ap-southeast-1.compute.internal
  • 备节点IP地址
    • 186.31.16.68
  • 备节点HOSTNAME
    • ip-186-31-16-68.ap-southeast-1.compute.internal
  • 主节点和备节点均OpenLDAP已安装

2.创建和验证OpenLDAP

  • 编辑testsentry.ldif文件:
[root@ip-186-31-24-169 ldap]# vim testsentry.ldif
#添加用户默认组
dn: cn=testsentry,ou=Group,dc=fayson,dc=com
objectClass: posixGroup
objectClass: top
cn: testsentry
userPassword: {SSHA}KYgsfyI/uny0dKPNeMRNG54BdwV6KlWA
gidNumber: 2999
#添加用户
dn: uid=testsentry,ou=People,dc=fayson,dc=com
uid: testsentry
cn: testsentry
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {SSHA}KYgsfyI/uny0dKPNeMRNG54BdwV6KlWA
shadowLastChange: 17493
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 2999
gidNumber: 2999
homeDirectory: /home/testsentry
  • 执行如下命令导入testsentry用户
ldapadd -D "cn=Manager,dc=fayson,dc=com" -W -x -f testsentry.ldif
  • 验证OpenLDAP是否成功添加testsentry用户
ldapsearch -D "cn=Manager,dc=fayson,dc=com" -W  |grep testsentry
  • 验证CDH集群所有节点已同步该testsentry用户
[root@ip-186-31-16-68 shell]# sh ssh_do_all.sh node.list "id testsentry"

3.Kerberos账号的创建

  • 在kadmin所在服务器上执行如下命令创建Kerberos账号
[root@ip-186-31-16-68 ~]# kadmin.local 
Authenticating as principal hbase/admin@FAYSON.COM with password.
kadmin.local:  addprinc testsentry@FAYSON.COM
WARNING: no policy specified for testsentry@FAYSON.COM; defaulting to no policy
Enter password for principal "testsentry@FAYSON.COM": 输入账号密码
Re-enter password for principal "testsentry@FAYSON.COM": 输入账号密码
Principal "testsentry@FAYSON.COM" created.
kadmin.local:  
  • 测试Kerberos账号是否可以使用
    • 注意:用户名需与OpenLDAP一致
[root@ip-186-31-16-68 ~]# kinit testsentry@FAYSON.COM
Password for testsentry@FAYSON.COM: 
[root@ip-186-31-16-68 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: testsentry@FAYSON.COM
Valid starting       Expires              Service principal
04/12/2018 22:17:45  04/13/2018 22:17:45  krbtgt/FAYSON.COM@FAYSON.COM
        renew until 04/19/2018 22:17:45
[root@ip-186-31-16-68 ~]# 

4.Hue授权OpenLDAP用户组

  • 进入Security授权界面
    • 注意:需使用hive的超级管用登录Hue
  • 把tpcds_text_2库的所有权限授权给testsentry用户
    • 添加tpcds_role角色
  • 如下即为创建成功

5.授权验证

  • 使用testsentry用户登录Hue,验证授权是否正确
  • 在命令行执行
[root@ip-186-31-16-68 ~]# beeline 
beeline> !connect jdbc:hive2://localhost:10000
Enter username for jdbc:hive2://localhost:10000: testsentry
Enter password for jdbc:hive2://localhost:10000: ******

使用hadoop命令浏览授权库的数据目录

[root@ip-186-31-16-68 ~]# kinit testsentry
Password for testsentry@FAYSON.COM: 
[root@ip-186-31-16-68 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: testsentry@FAYSON.COM
Valid starting       Expires              Service principal
04/12/2018 23:12:26  04/13/2018 23:12:26  krbtgt/FAYSON.COM@FAYSON.COM
        renew until 04/19/2018 23:12:26
[root@ip-186-31-16-68 ~]# hadoop fs -ls /tmp/tpcds-generate/2/customer
Found 1 items
-rwxrwx--x+  3 hive hive   19084888 2018-03-17 04:01 /tmp/tpcds-generate/2/customer/data-m-00001
[root@ip-186-31-16-68 ~]# 

6.总结

  • OpenLDAP中的用户中与Linux中的用户是一致的
  • Sentry授权是针对用户组的,所以在需要在Hue中授权的用户组名与OpenLDAP中的用户组名称一致
  • 如果集群启用了Kerberos则需要创建OpenLDAP相应用户的Kerberos账号,否则LDAP用户无法访问授权的表的HDFS数据目录

大数据视频推荐:
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值