CDH数仓项目(三) —— Kerberos安全认证和Sentry权限管理

本文详细介绍了如何在CDH数仓项目中搭建Kerberos安全认证,包括Kerberos的概念、安装配置、主体认证以及在不同节点上的应用。接着,文章讨论了Sentry权限管理在Hadoop生态中的作用,以及如何在Hive和Impala中集成Sentry进行权限控制。通过实例展示了如何创建用户角色、分配权限,并通过HUE和命令行进行权限测试,确保安全环境下的数据操作。

0 说明

本文基于《CDH数仓项目(一) —— CDH安装部署搭建详细流程》《CDH数仓项目(二) —— 用户行为数仓和业务数仓搭建》和搭建CDH数仓。本章节主要介绍基于CDH数仓的Kerberos认证和Sentry权限管理

1 Kerberos安全认证

1.1 Kerberos概述

Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。

1.2 Kerberos概念

Kerberos中有以下一些概念需要了解:
1)KDC:密钥分发中心,负责管理发放票据,记录授权。
2)Realm:Kerberos管理领域的标识。
3)principal:当每添加一个用户或服务的时候都需要向kdc添加一条principal,principl的形式为:主名称/实例名@领域名。
4)主名称:主名称可以是用户名或服务名,表示是用于提供各种网络服务(如hdfs,yarn,hive)的主体。
5)实例名:实例名简单理解为主机名。

1.3 Kerberos认证原理

在这里插入图片描述

2 Kerberos安装

2.1 server节点安装kerberos相关软件

server节点只需安装一个节点即可,这里安装在chen102节点上

yum install -y krb5-server krb5-workstation krb5-libs

查看安装结果

rpm -qa | grep krb5

在这里插入图片描述

2.2 client节点安装

client节点可以安装多个

yum install -y krb5-workstation krb5-libs

在这里插入图片描述

2.3 配置Kerberos

需要配置的文件有两个为kdc.conf和krb5.conf , kdc配置只是需要Server服务节点配置,即chen102.
1) kdc配置

vim /var/kerberos/krb5kdc/kdc.conf

在这里插入图片描述
说明:

CHEN.COM:realm名称,Kerberos支持多个realm,一般全用大写。
acl_file:admin的用户权。
admin_keytab:KDC进行校验的keytab。
supported_enctypes:支持的校验方式,注意把aes256-cts去掉,JAVA使用aes256-cts验证方式需要安装额外的jar包,所有这里不用

2) krb5文件配置

vim /etc/krb5.conf

在这里插入图片描述

修改内容同步到集群其他节点

default_realm:默认的realm,设置 Kerberos 应用程序的默认领域,必须跟要配置的realm的名称一致。
ticket_lifetime:表明凭证生效的时限,一般为24小时。
renew_lifetime : 表明凭证最长可以被延期的时限,一般为一个礼拜。当凭证过期之后,对安全认证的服务的后续访问则会失败。
udp_preference_limit= 1:禁止使用 udp,可以防止一个 Hadoop 中的错误。
realms:配置使用的 realm,如果有多个领域,只需向 [realms] 节添加其他的语句。
domain_realm:集群域名与Kerberos realm的映射关系,单个realm的情况下,可忽略。

2.4 生成Kerberos数据库

在server节点执行

 kdb5_util create -s

创建完成后/var/kerberos/krb5kdc目录下会生成对应的文件

ls /var/kerberos/krb5kdc/

在这里插入图片描述

2.5 赋予Kerberos管理员所有权限

vim /var/kerberos/krb5kdc/kadm5.acl
#修改为以下内容:
*/admin@CHEN.COM      *

说明:
*/admin:admin实例的全部主体
@HADOOP.COM:realm
*:全部权限
这个授权的意思:就是授予admin实例的全部主体对应CHEN.COM领域的全部权限。也就是创建Kerberos主体的时候如果实例为admin,就具有CHEN.COM领域的全部权限,比如创建如下的主体user1/admin就拥有全部的CHEN.COM领域的权限。

2.6 启动Kerberos服务(server节点执行)

启动krb5kdc

systemctl start krb5kdc

启动kadmin

 systemctl start kadmin

在这里插入图片描述

设置开机自启

systemctl enable krb5kdc
systemctl enable kadmin

查看是否设置为开机自启

systemctl is-enabled krb5kdc
systemctl is-enabled kadmin

注:启动失败时可以通过/var/log/krb5kdc.log和/var/log/kadmind.log来查看。
在这里插入图片描述

2.7 创建管理员主体/实例

kadmin.local -q "addprinc admin/admin"

在这里插入图片描述

2.8 kinit管理员验证

kinit admin/admin
klist

在这里插入图片描述
其他节点尝试
在这里插入图片描述

2.9 Kerberos数据库操作

2.9.1 登录kerberos数据库

1)本地登录(无需认证)

kadmin.local

在这里插入图片描述

2)远程登录(需进行主体认证,先认证刚刚创建的管理员主体)

kadmin

在这里插入图片描述

2.9.2 创建kerberos主体

kadmin.local -q "addprinc test/test"

2.9.3 修改主体密码

kadmin.local -q "cpw test/test"

在这里插入图片描述

2.9.4 查看所有主体


                
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值