ldap + sentry架构的相关结论的验证

一、环境

ldap跟hdfs、hive整合,kerberos、sentry安装并启用。

二、验证

1. 验证1:kerberos的认证、sentry的授权不关心用户的来源(ldap,linux),是独立于linxu和ldap的,可以不在linux创建对应用户。

kerberos、sentry只接收相关服务(hdfs、hive、impala)的认证、授权委托。验证用户是否认证、授权,用户是由服务提交的,至于用户最终映射到哪里(ldap、linux),kerberos、sentry并不关心

{1} 在ldap中添加一个linux中没有的entry(用户),先不赋sentry权限,查看这个用户是否可以访问hive。然后sentry再授权,查看访问情况

[1] 创建在linux中没有的ldap用户

创建组vim /opt/ldap-groups/testgroup.ldif
ldap + sentry架构的相关结论的验证
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/ldap-groups/testgroup.ldif -hnode105 -p389
ldap + sentry架构的相关结论的验证
创建用户vim /opt/ldap-users/testuser.ldif
ldap + sentry架构的相关结论的验证
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/ldap-users/testuser.ldif -hnode105 -p389
ldap + sentry架构的相关结论的验证
id testuser
ldap + sentry架构的相关结论的验证

[2] 进行krb认证

ldap + sentry架构的相关结论的验证
ldap + sentry架构的相关结论的验证

[3] 访问hdfs

kinit testuser
在testuser认证的情况下,可以访问hdfs
ldap + sentry架构的相关结论的验证
如果kdestory,则不能访问
ldap + sentry架构的相关结论的验证

[4] sentry未授权的情况下访问hive

beeline -u “jdbc:hive2://node105:10000/;principal=hive/[email protected]
无法访问对应表。
ldap + sentry架构的相关结论的验证
此时testuser用户所在组testgroup没有任何角色:
ldap + sentry架构的相关结论的验证

[4] 赋予表sentry的权限,查看是否可以访问hive

  1. 切换到超级用户dcdcdc: kinit dcdcdc
    ldap + sentry架构的相关结论的验证

  2. beeline -u “jdbc:hive2://node105:10000/;principal=hive/[email protected]

  3. show roles; dcdcdc当然是可以获取的,testuser直接报错,因为没权限
    ldap + sentry架构的相关结论的验证

  4. show current roles;
    ldap + sentry架构的相关结论的验证

  5. 用超级用户给testuser授权
    创建role:create role testgrouprole;
    show roles;
    ldap + sentry架构的相关结论的验证
    将dctest库的权限付给testgrouprole: grant all on database dctest to ROLE testgrouprole;
    ldap + sentry架构的相关结论的验证
    将角色testgrouprole分配给testgroup组: GRANT ROLE testgrouprole TO GROUP testgroup;
    ldap + sentry架构的相关结论的验证

  6. 退出beeline,重新用testuser认证
    ldap + sentry架构的相关结论的验证
    beeline -u “jdbc:hive2://node105:10000/;principal=hive/[email protected]
    show current roles;会发现相比上一节,多了role
    ldap + sentry架构的相关结论的验证
    再次查询select * from dctest.test limit 10;会发现能查到dctest库中的数据。
    ldap + sentry架构的相关结论的验证

2. 验证2:整合ldap后,不在ldap但在linux的用户是否仍可以访问hive

kinit hive/hive, 发现可以访问
ldap + sentry架构的相关结论的验证
ldap + sentry架构的相关结论的验证