3.kerberos 和 sentry 部署

教程 阿布都的都 ⋅ 于 2023-01-06 17:17:18 ⋅ 1189 阅读

1 kerberos部署

1.1 kerberos部署

选择服务端:选择worker1节点作为kerberos服务端

#安装kerberos软件
yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation

#安装sasl工具,impala启用kerberos时需要sasl工具
yum -y install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5

修改/etc/krb5.conf文件,这里要修改的几个关键点,kerberos.example.com和example.com替换为kerberos服务端的hostname,EXAMPLE.COM替换为自己公司的域名

#注释掉如下行,打开会引起错误:[Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
# default_ccache_name = KEYRING:persistent:%{uid}

cp -n /etc/krb5.conf /etc/krb5.conf.bak && \
sed -i 's/#//g' /etc/krb5.conf && \
sed -i 's/EXAMPLE.COM/HAINIU.COM/g' /etc/krb5.conf && \
sed -i 's/kerberos.example.com/worker-1/g' /etc/krb5.conf && \
sed -i 's/example.com/worker-1/g' /etc/krb5.conf && \
sed -i 's/ default_ccache_name/# default_ccache_name/g' /etc/krb5.conf && \
sed -i 's/ Configuration/# Configuration/g' /etc/krb5.conf
# 查看修改前和修改后的文件对比
diff /etc/krb5.conf.bak /etc/krb5.conf

修改后查看:

file

​ 修改/var/kerberos/krb5kdc/kdc.conf文件,修改EXAMPLE.COM为自己公司的域名。

cp -n /var/kerberos/krb5kdc/kdc.conf /var/kerberos/krb5kdc/kdc.conf.bak && \
sed -i 's/EXAMPLE.COM/HAINIU.COM/g' /var/kerberos/krb5kdc/kdc.conf
diff /var/kerberos/krb5kdc/kdc.conf.bak /var/kerberos/krb5kdc/kdc.conf

​ 修改/var/kerberos/krb5kdc/kadm5.acl文件,修改EXAMPLE.COM为自己公司的域名。

cp -n /var/kerberos/krb5kdc/kadm5.acl /var/kerberos/krb5kdc/kadm5.acl.bak && \
sed -i 's/EXAMPLE.COM/HAINIU.COM/g' /var/kerberos/krb5kdc/kadm5.acl
diff /var/kerberos/krb5kdc/kadm5.acl.bak /var/kerberos/krb5kdc/kadm5.acl

1.2 配置kerberos服务

生成kerberos数据库,设置密码为:12345678

/usr/sbin/kdb5_util create -s

为cdh创建cloudera-scm/admin用户,设置密码为:12345678

# 开启kerberos管理界面
kadmin.local
   # 添加认证主体, 主体名: cloudera-scm/admin  密码: 12345678
   addprinc cloudera-scm/admin

   12345678

   12345678
   # 退出kerberos管理界面
   exit

file

修改krbtgt/HAINIU.COM@HAINIU.COM的Maximum renewable life参数为90天(其默认值为0天),解决在CDH启用kerberos时,Hue角色Kerberos Ticket Renewer启动异常问题

kadmin.local

   modprinc -maxrenewlife 90day krbtgt/HAINIU.COM@HAINIU.COM

   getprinc krbtgt/HAINIU.COM@HAINIU.COM

   exit

1.3 启动kerberos服务

#启动kerberos服务并添加为开机启动
systemctl enable krb5kdc 
systemctl enable kadmin
systemctl start krb5kdc
systemctl start kadmin
systemctl status krb5kdc
systemctl status kadmin

file

1.4 kerberos客户端安装

多节点时执行,单节点不需要执行

#从节点安装kerberos客户端软件
yum -y install krb5-libs krb5-workstation

#从主节点复制配置文件到从节点
scp /etc/krb5.conf root@worker-2:/etc/krb5.conf
scp /etc/krb5.conf root@worker-3:/etc/krb5.conf

ssh root@worker-2 cat /etc/krb5.conf
ssh root@worker-3 cat /etc/krb5.conf

1.5 kerberos认证测试

#客户端执行
#获取票据
kinit cloudera-scm/admin
   12345678
#查看票据
klist
#销毁票据
kdestroy

file

1.6 CDH集成kerberos

​ 集群启用kerberos,进入cm界面,在集群右边选择下拉选项,选择启用kerberos。或者在cm界面,点击管理,点击安全,选择启用kerberos。

file

然后按照如下操作进行

  • 页面1,检查提示

file

  • 页面2,配置kerberos服务端信息

    KDC Type: MIT KDC

    Kerberos Security Realm: HAINIU.COM

    KDC Server Host: worker-1

    KDC Admin Server Host: worker-1

    Kerberos Encryption Types: rc4-hmac

    Maximum Renewable Life for Principals: 5

  • 页面3,不要勾选该项(Manage krb5.conf through Cloudera Manager),直接继续

file

  • 页面4,cloudera-scm/admin账号、密码

    cloudera-scm/admin

    12345678

file

  • 页面5,页面6 Continue

  • 页面7,确认HDFS特权端口,并选择重启集群(此过程需要十几分钟)

    Yes, I am ready to restart the cluster now.

  • 其余页面按提示操作

重启后,在管理--> 安全,查看kerberos 已经启用

file

2 sentry 部署

2.1 cdh添加sentry服务

sentry也是Cloudera公司开源给Apache的,直接在cm页面配置即可。

  • 添加服务

    依次点击Cloudera Manager -> Cluster 1 -> Add Service -> Sentry

file

  • 节点选择

    选择Sentry Server所在服务器,Gatway可以不选。

file

  • 填写元库信息

    填写元数据库信息: sentry sentry sentrydemima,这个元库信息是在cdh部署时cm元库创建时的信息。

file

安装时如果由于缺少mysql jdbc驱动报错,请复制jdbc驱动到以下目录

cp /tmp/cloudera/mysql-connector-java-5.1.35.jar /opt/cloudera/parcels/CDH/lib/sentry/lib/

file

如上,服务添加完成。

2.2 hive集成sentry

1)开启hive的sentry权限管理

依次点击Clusters -> Hive -> Configuration -> 搜索: sentry,选择hive组件,点击配置,搜索senty,然后Sentry Service [勾选] Sentry。

file

2)关闭所有HiveServer2的Impersonation

在hive的配置项中搜索:Impersonation,[去除勾选] HiveServer2

file

3)启用数据库存储通知

在hive配置中搜索:Hive Metastore Server Default Group,然后[勾选] Hive Metastore Server Default Group

file

4)保存并重启hive服务

2.3 impala集成sentry

点击impala组件,点击配置,在搜索栏中搜多:Sentry,然后Sentry Service [勾选] Sentry

file

保存并重启Impala服务

2.4 hue集成sentry

点击hue服务,点击配置,在搜索栏中搜索:Sentry,然后Sentry Service [勾选] Sentry

file

保存并重启Hue服务

2.5 hdfs集成sentry

点击hdfs组件,点击配置,在搜索框中搜索:"启用访问控制列表"或者"dfs.namenode.acls.enabled",然后[勾选] HDFS (Service-Wide);

在搜索框中搜索:"acl",然后[勾选] HDFS (Service-Wide)

file

保存并重启HDFS服务

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-阿布都的都,http://hainiubl.com/topics/76031
成为第一个点赞的人吧 :bowtie:
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter