hive的三种Authentication认证机制配置和使用

hive的三种Authentication认证机制配置和使用_第1张图片

技术层面3A+1E: Authentication 认证,Authorization 鉴权,和Audit 审计; Encrption 加密

hive身份认证的三种方式

  • NONE:即不做身份校验;

  • LDAP: 使用基于 LDAP/AD 的用户身份校验;

  • KERBEROS: 使用 Kerberos/GSSAPI 做身份校验;

hive.server2.authentication = none

  1. 不做任何校验,登陆时可以不配置用户名密码,在服务端hive会显示匿名用户anonymous

  2. 若登录指定了用户名、密码,在服务端huive会显示正常的用户密码

hive.server2.authentication = ldap

  1. 用户身份管理使用ldap协议,具体实现有微软的ActiveDirectory,也有openLdap、ApacheDS等开源实现。

  2. 客户端登录 ldap 认证的 hiveserver2 时,需要提供用户名和密码,hiveserver2 会到ldap中验证用户名和密码,只有验证通过后才能正常登录;

  3. 以 beeline 登录为例,其命令格式如下:beeline -u jdbc:hive2://xx.xx.xx.xx:10000/default -n hs_cic -p xyzabc;

hive.server2.authentication = kerberos

  1. 在开启了kerberos安全认证的大数据集群环境中,需要经过kdc认证获得了ticket凭证后,才能进行正常交互,所以在大数据集群环境中,一旦基础服务hdfs/yarn/zookeeper等开启了kerberos安全认证,需要与 hdfs/yarn/zk 这些基础组件交互的各个上层组件,如 hive/hbase/spark/flink 等,都需要配置使用相应的 kerberos principal,只有在经过 kdc 验证获得 ticket 后,才能与 hdfs/yarn/zk 进行交互;

开启kerberos大数据环境,hive采用kerberos认证方式

  1. cli等客户端,通过kinit方式认证

  2. 程序代码通过UserGroupInformation认证,会在后台定时刷新

  3. 客户端在获取业务用户ticket成功后,才能通过jdbc链接登陆到指定的hiveserver2

  4. hiveserver2 的url的格式,其格式推荐使用:jdbc:hive2://xx.xx.xx.xx:10000/default;principal=hive/[email protected]:principal部分,推荐使用三段式来指定,包含pincipal, host 和 realm;pincipal 必须指定为系统用户hive,而不能是业务用户如 dap,xyz等(本质上是因为,hive-site.xml 中配置的hive系统用户是hive);host部分,推荐指定为_HOST,此时在底层使用时会替换为 hiveserver2 节点的hostname (当然也可以直接指定为 hiveserver2 节点的具体的 hostname);realm 部分,需要根据实际配置情况进行指定(可以查看配置文件 /etc/krb5.conf);

开启kerberos大数据环境,hive采用LDAP认证方式

  1. cli等客户端,通过kinit方式认证

  2. 程序代码通过UserGroupInformation认证,会在后台定时刷新

  3. 客户端登录 ldap 认证的 hiveserver2 时,需要提供用户名和密码,hiveserver2 会到ldap中验证用户名和密码,只有验证通过后才能正常登录;

  4. 以 beeline 登录为例,其命令格式如下:beeline -u jdbc:hive2://xx.xx.xx.xx:10000/default -n hs_cic -p xyzabc;

各大数据平台发行版本,hive认证方式的差异

  1. CDH/TDH/CDP中,在CDH5.7以后,在集群启用了kerberos后,即时hive服务端配置了ldap,客户端也可以通过url制定使用kerberos认证方式来登录

  2. TDH中,集群用了kerberos,hive配置了ldap,需要双认证.

  • hive-site.xml中,相关参数有:

    • hive.server2.authentication

    • hive.server2.authentication.kerberos.keytab

    • hive.server2.authentication.kerberos.principal

    • hive.server2.authentication.spnego.keytab

    • hive.server2.authentication.spnego.principal

    • hive.server2.authentication.ldap.url

    • hive.server2.authentication.ldap.baseDN

    • hive.server2.authentication.ldap.Domain

    • hive.server2.enable.doAs

    • hive.metastore.kerberos.keytab.file

    • hive.metastore.kerberos.principalhive的三种Authentication认证机制配置和使用_第2张图片

      关注公众号IT转型指北,回复【经典书籍】,可获取高质量大数据电子书

你可能感兴趣的:(hive,big,data,hadoop)