关于kafka的topic的授权和消费的问题汇总

关于kafka的topic的授权问题的汇总

在具有kerberos的集群上对其他用户相应的topic授权的时候主要有以下几点
如果超级用户为kafka这时候需要切换到kafka安装的一个节点上,进行kinit验证的操作
例如:kinit –kt /etc/kafka/conf/kafka.keytab kafka
需要创建要对topic进行操作的用户(读,写或者读和写都具备)
1.1添加的一个普通用户:

在管理员的状态下使用addprinc,delprinc,modprinc,listprincs命令。使用?可以列出所有的命令。

kadmin.local:  addprinc –pw 111111 user01
kadmin.local:  delprinc user01
kadmin.local:  listprincs

说明:
addprinc :生成kerberos用户,语法为addprinc –pw 密码用户名
delprinc:删除kerberos用户,语法为delprinc 用户名
listprincs : 查看kerberos用户列表

1.2 生成keytab文件:使用xst命令或者ktadd命令
kadmin.local:	ktadd -kt /xxx/xxx/user01.keytab –norandeky user01
kadmin.local:	xst -k /xxx/xxx/user01.keytab –norandeky  user01

注意:加上–norandeky表示生成keytab后,原用户密码不失效,否则密码失效

1.3 创建需要授权的topic如果topic已经存在这时候不需要创建
创建topic的时候先认证到kafka的超级用户
kinit –kt /etc/kafka/conf/kafka.keytab  kafka
接下来进行topic的创建
kafka-topics --create --zookeeper node01:2181/kafka --replication-factor 1 --partitions 2 --topic test01
随后对用户user01对test01的topic授予读写的权限
kafka-acls --authorizer-properties zookeeper.connect=node01:2181/kafka --add --allow-principal User:use01  --operation Read  --topic test01
对用户user01对test01的topic授予group读权限
kafka-acls --authorizer-properties zookeeper.connect=node01:2181/kafka --add --allow-principal User:user01  --group=* --operation Read --topic  test01
1.4 命令行生产数据
kinit user01
kafka-console-producer --broker-list node01:9092 --topic topic1 --producer.config /etc/kafka/conf/producer.properties
1.5 命令行消费数据
kafka-console-consumer --bootstrap-server node01:9092 --topic test01 --new-consumer --from-beginning --consumer.config /etc/kafka/conf/consumer.properties
1.6 查看所有消费组的信息的命令
./kafka-consumer-groups.sh --bootstrap-server node01:9092 --command-config ../config/consumer.properties  --new-consumer  --list
1.7 查看消费组的情况的命令
./kafka-consumer-groups.sh --bootstrap-server node01:9092 --new-consumer --command-config ../config/consumer.properties --group test01  --describe

版权声明:本文为weixin_43865381原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。