数仓之用户认证
数仓框架版本选型
Kerberos
Kerberos
Kerberos是一种计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。
Kerberos术语
1)KDC(Key Distribute Center):密钥分发中心,负责存储用户信息,管理发放票据。
2)Realm:Kerberos所管理的一个领域或范围,称之为一个Realm。
3)Rrincipal:Kerberos所管理的一个用户或者一个服务,可以理解为Kerberos中保存的一个账号,其格式通常如下:primary/instance@realm
4)keytab:Kerberos中的用户认证,可通过密码或者密钥文件证明身份,keytab指密钥文件。
Kerberos 认证原理
选择集群中的一台主机作为Kerberos服务端,安装KDC,所有主机都需要部署Kerberos客户端。
Kerberos认证操作
1.密码认证
2.密钥文件认证
以下使用说明均基于普通用户,安全集群对用户有以下要求:
1)集群中的每个节点都需要创建该用户
2)该用户需要属于hadoop用户组
3)需要创建该用户对应的Kerberos主体。
安全环境实战
Hadoop启用Kerberos安全认证之后,之前的非安全环境下的全流程调度脚本和即席查询引擎均会遇到认证问题,故需要对其进行改进。
此处统一将数仓的全部数据资源的所有者设为hive用户,全流程的每步操作均认证为hive用户。
Presto集群开启Kerberos认证可只配置Presto Coordinator和Presto Cli之间进行认证,集群内部通讯可不进行认证。Presto Coordinator和Presto Cli之间的认证要求两者采用更为安全的HTTPS协议进行通讯。
若Presto对接的是Hive数据源,由于其需要访问Hive的元数据和HDFS上的数据文件,故也需要对Hive Connector进行Kerberos认证。
从Kylin的架构,可以看出Kylin充当只是一个Hadoop客户端,读取Hive数据,利用MR或Spark进行计算,将Cube存储至HBase中。所以在安全的Hadoop环境下,Kylin不需要做额外的配置,只需要具备一个Kerberos主体,进行常规的认证即可。
但是Kylin所依赖的HBase需要进行额外的配置,才能在安全的Hadoop环境下正常工作。
2022-01-01