Kafka的认证
创始人
2024-03-28 15:50:41
0

Kafka支持基于SSL和基于SASL的安全认证机制。

基于SSL的认证主要是指Broker和客户端的双路认证。即客户端认证broker的证书,broker也认证客户端的证书。

Kafka还支持通过SASL做客户端认证。SASL是提供认证和数据安全服务的框架。Kafka支持的SASL机制有5种:
1.GSSAPI:也就是 Kerberos 使用的安全接口。
2.PLAIN:是使用简单的 用户名/密码 认证的机制。(不能动态的增减kafka用户,必须重启 Kafka 集群才能令变更生效,因为认证用户信息全部保存在静态文件中)
3.SCRAM:主要用于解决PLAIN机制安全问题的新机制。
4.OAUTHBEARER:是基于 OAuth2 认证框架的新机制。
5.Delegation Token:补充现有SASL机制的轻量级认证机制。



KAFKA认证步骤:

SASL/SCRAM-SHA-256 配置实例

创建用户:

./kafka-configs.sh --bootstrap-server 192.168.1.10:9192 --alter --add-config 'SCRAM-SHA-256=[password=admin],SCRAM-SHA-512=[password=admin]' --entity-type users --entity-name admin./kafka-configs.sh --bootstrap-server 192.168.1.10:9192 --alter --add-config 'SCRAM-SHA-256=[password=reader],SCRAM-SHA-512=[password=reader]' --entity-type users --entity-name reader./kafka-configs.sh --bootstrap-server 192.168.1.10:9192 --alter --add-config 'SCRAM-SHA-256=[password=write],SCRAM-SHA-512=[password=write]' --entity-type users --entity-name write


查看创建的用户:

bin/kafka-configs.sh --zookeeper 192.168.1.10:2181 --describe --entity-type users  --entity-name write


创建JAAS文件:(为每个broker都需要创建)

KafkaServer {org.apache.kafka.common.security.scram.ScramLoginModule requiredusername="admin"password="admin";
};
KafkaClient {org.apache.kafka.common.security.scram.ScramLoginModule requiredusername="admin"password="admin";
};

修改server.properties 文件

sasl.enabled.mechanisms=SCRAM-SHA-256
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
security.inter.broker.protocol=SASL_PLAINTEXT
listeners=SASL_PLAINTEXT://192.168.1.10:9092


启动kafka:
修改kafka-run-class.sh (大致219行)

if [ -z "$KAFKA_OPTS" ]; thenKAFKA_OPTS="-Djava.security.auth.login.config=/zb/kafka/kafka_2.12-2.7.2-test1/broker.jaas"
fi

启动:
nohup bin/kafka-server-start.sh config/server.properties &


测试:


发送消息:
创建一个producer.conf配置文件:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="writer" password="writer";

启动生产者:

bin/kafka-console-producer.sh --broker-list 192.168.1.10:9192,192.168.1.10:9292,192.168.1.10:9392 --topic kl-test1 --producer.config /zb/kafka/kafka_2.12-2.7.2-test1/producer.conf

消费消息:
创建一个consumer.conf 的脚本

security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="reader" password="reader";

启动消费者:

bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.10:9192,192.168.1.10:9292,192.168.1.10:9392 --topic kl-test1 --from-beginning --consumer.config /zb/kafka/kafka_2.12-2.7.2-test1/consumer.conf 


查看topic,创建管理者认证:
创建一个admin配置文件:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
./bin/kafka-topics.sh --bootstrap-server 192.168.1.10:9192 --command-config /zb/kafka/kafka_2.12-2.7.2-test1/admin_sals.conf --list

动态增减用户:

删除用户

bin/kafka-configs.sh --zookeeper 192.168.1.10:2181 --alter --delete-config 'SCRAM-SHA-256' --entity-type users --entity-name writer
bin/kafka-configs.sh --zookeeper 192.168.1.10:2181 --alter --delete-config 'SCRAM-SHA-512' --entity-type users --entity-name writer

添加新用户 

bin/kafka-configs.sh --bootstrap-server 192.168.1.10:9192 --alter --add-config 'SCRAM-SHA-256=[iterations=8192,password=new_writer]' --entity-type users --entity-name new_writer


 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...