资讯专栏INFORMATION COLUMN

大数据开发系列五:kafka& zookeeper 配置kerberos认证

不知名网友 / 5100人阅读
大数据开发系列五:kafka& zookeeper 配置kerberos认证
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
今天我们继续实践在已安装的kerberos服务基础上对kafka与zookeeper  组件进行kerberos认证配置。

环境依赖


zookeeper认证配置

2.1 创建principle添加用户
kadmin.local -q "addprinc -randkey zookeeper/bigdata-05@HADOOP.COM"
kadmin.local -q "addprinc -randkey zookeeper/bigdata-01@HADOOP.COM"
kadmin.local -q "addprinc -randkey zookeeper/data01@HADOOP.COM"
kadmin.local -q "listprincs"  验证添加用户信息
2.2 创建keytab密码文件
kadmin.local -q "xst -k /root/keytabs/kerberos/zookeeper.keytab zookeeper/bigdata-05@HADOOP.COM"
kadmin.local -q "xst -k /root/keytabs/kerberos/zookeeper.keytab zookeeper/bigdata-01@HADOOP.COM"
kadmin.local -q "xst -k /root/keytabs/kerberos/zookeeper.keytab zookeeper/data01@HADOOP.COM"
验证密钥文件:
klist -kt /root/keytabs/kerberos/zookeeper.keytab
将生成的zookeeper.keytab 复制到三台zk主机器/etc/security/keytabs/ 目录下,同时将/etc/krb5.conf 也复制到三台zk主机器/etc/目录下。
2.3 配置zookeeper.conf
在所有zk主机器上 /etc/security/keytabs/目录下新建zookeeper.jaas 内容如下:
Server{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
principal="zookeeper/bigdata-05@HADOOP.COM"
userTicketCache=false;
};
Client{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
principal="zookeeper/bigdata-05@HADOOP.COM"
userTicketCache=false;
};
红色内容需按zk所在主机名称进行修改。
2.4 zoo.cfg 配置修改
etc/zoo.cfg 新增内容:
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
2.5 配置环境变量java.env
etc/java.env
export JVMFLAGS="-Djava.security.auth.login.config=/etc/security/keytabs/zooke
eper.jaas -Djava.security.krb5.conf=/etc/krb5.conf"
2.6 启动zookeeper
bin/zkServer.sh start
检查日志信息。
2.7 验证认证情况
找一个zk节点利用zk客户端进行操作,./zkCli.sh -server 192.168.199.244:2183 ,当出现如下信息的时,说明客户端认证成功


kafka认证配置

3.1 创建principle添加用户
kadmin.local -q "addprinc -randkey kafka/bigdata-03@HADOOP.COM"
kadmin.local -q "addprinc -randkey kafka/bigdata-05@HADOOP.COM"
kadmin.local -q "listprincs"  验证添加用户信息
3.2 创建keytab密码文件
kadmin.local -q "xst -k /root/keytabs/kerberos/kafka.keytab kafka/bigdata-03@HADOOP.COM"
kadmin.local -q "xst -k /root/keytabs/kerberos/kafka.keytab kafka/bigdata-05@HADOOP.COM"
验证密钥文件:
klist -kt /root/keytabs/kerberos/kafka.keytab
将生成的kafka.keytab 复制到两台zk主机器/etc/security/keytabs/ 目录下,同时将/etc/krb5.conf 也复制到两台kafka主机器/etc/目录下。
3.3 配置kafka.jaas
在所有kafka主机器上 /etc/security/keytabs/目录下新建kafka.jaas 内容如下:
KafkaServer{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
serviceName="kafka"
keyTab="/etc/security/keytabs/kafka.keytab"
principal="kafka/bigdata-03@HADOOP.COM";
};
红色内容需按kafka所在主机名称进行修改。
3.4 配置kafka.jaas
在所有kafka主机器上 /etc/security/keytabs/目录下新建kafka.jaas 内容如下:
KafkaServer{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
serviceName="kafka"
keyTab="/etc/security/keytabs/kafka.keytab"
principal="kafka/bigdata-03@HADOOP.COM";
};
红色内容需按kafka所在主机名称进行修改。
3.5 修改kafka server.properties
新增或者修改:
listeners=SASL_PLAINTEXT://192.168.199.102:9098
advertised.listeners=SASL_PLAINTEXT://192.168.199.102:9098

security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=GSSAPI
sasl.enabled.mechanisms=GSSAPI
sasl.kerberos.service.name=kafka //需要跟principal的名称相同
3.6 修改kafka kafka-server-start.sh
在脚本倒数第二行新增:
export KAFKA_OPTS="-Dzookeeper.sasl.client=true -
Dzookeeper.sasl.client.username=zookeeper -
Djava.security.krb5.conf=/etc/krb5.conf -
Djava.security.auth.login.
config=/etc/security/keytabs/kafka.jaas"
zookeeper 开启 Kerberos 认证,需要将zookeeper.sasl.client 设为 true,并配置访问zk 用户凭证信息。
3.7 验证认证情况
kafka 加入认证后,利用kafka 命令查看所有的topic名称列。
1)在所有kafka主机器上 /etc/security/keytabs/目录下新建kafka-client-jaas.conf 和kafka_client.properties  
内容如下:
kafka-client-jaas.conf:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/kafka.keytab"
storeKey=true
useTicketCache=false
principal="kafka/bigdata-03@HADOOP.COM";
};
kafka_client.properties:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka //需要跟principal的名称相同
2)在 kafka-topics.sh 倒数第行新增认证配置项
export KAFKA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf -
Djava.security.auth.login.config=/etc/security/keytabs/kafka-client-jaas.conf"
3)查看所有的topic列表名称
./kafka-topics.sh --list --bootstrap-server 192.168.199.102:9098 --command-config 
/etc/security/keytabs/kafka_client.properties
需要加入command-config 参数才能果出所有topic 列表,同时观察server.log 日志信息。


本文作者:长研架构小组(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129095.html

相关文章

  • 新东方的Kubernetes实践:从服务化ES到Kafka和Redis

    摘要:年,新东方开始了利用容器化手段将中间件业务服务化的探索,基于使用年,新东方再次开始了扩大了中间件的业务服务化,基于使用和。本文将分享新东方在中间件服务化上的尝试。到了年,新东方的容器建设再次进化,最终全面转向了。 2017年,新东方开始了利用容器化手段将中间件业务服务化的探索,基于Rancher 1.6使用ES;2019年,新东方再次开始了扩大了中间件的业务服务化,基于Kubernet...

    Neilyo 评论0 收藏0
  • 数据安全: Hadoop安全模型的演进

    摘要:是最流行的大数据处理平台之一。的兴起也招致了很多批判,并且随着安全专家不断指出其潜在的安全漏洞及大数据的安全风险,使得一直在改进其安全性。自对安全性进行重新设计以来,的安全模型大体上没发生什么变化。 本文译者:吴海星  敏感信息的安全和保护是当今人们最关心的问题之一。进入大数据时代,很多组织都在从各种源头收集数据,进行分析,并基于对海量数据集的分析做出决 策,因此这一过程中的安全问题变得愈发...

    nemo 评论0 收藏0
  • 《从0到1学习Flink》—— Flink 配置文件详解

    摘要:相关文章从到学习介绍从到学习上搭建环境并构建运行简单程序入门从到学习配置文件详解从到学习介绍从到学习如何自定义从到学习介绍从到学习如何自定义 showImg(https://segmentfault.com/img/remote/1460000016930071?w=1920&h=1275); 前面文章我们已经知道 Flink 是什么东西了,安装好 Flink 后,我们再来看下安装路径...

    superw 评论0 收藏0
  • 《从0到1学习Flink》—— Flink 配置文件详解

    摘要:相关文章从到学习介绍从到学习上搭建环境并构建运行简单程序入门从到学习配置文件详解从到学习介绍从到学习如何自定义从到学习介绍从到学习如何自定义 showImg(https://segmentfault.com/img/remote/1460000016930071?w=1920&h=1275); 前面文章我们已经知道 Flink 是什么东西了,安装好 Flink 后,我们再来看下安装路径...

    brianway 评论0 收藏0
  • 记一次 Kafka 排错

    摘要:环境信息使用默认配置单独启动不使用自带的和在同一台主机上均为单节点问题现象使用测试队列正常代码无法正常接收队列消息相关代码日志 环境信息 CentOS 7.3Kafka 使用默认配置, 单独启动 Zookeeper , 不使用自带的 zk ,Kafka 和 Zookeeper 在同一台主机上, 均为单节点 问题现象 使用 kafka 测试队列正常, Java 代码无法正常接收队列消息...

    Barrior 评论0 收藏0

发表评论

0条评论

不知名网友

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<