当前位置: 首页 > news >正文

Kafka-配置SASL/SCRAM认证

1.      创建admin用户

如果选择SCRAM机制,首先需要创建用户凭证。假设要创建一个用户名为admin,密码为admin的用户。

# 进入Kafka的安装目录

cd /usr/local/kafka-3.7.0

bin/kafka-configs.sh --bootstrap-server  hadoop01:9092 --alter --add-config 'SCRAM-SHA-256=[password=admin]' --entity-type users --entity-name admin

 

2.      创建JAAS配置文件

Kafka使用JAAS(Java Authentication and Authorization Service)文件进行安全配置。

创建一个JAAS配置文件(例如  /usr/local/kafka-3.7.0/config/kafka_server_jaas.conf),内容如下。这个文件包含了所有合法的用户及其密码。

KafkaServer {

    org.apache.kafka.common.security.scram.ScramLoginModule required

    username="admin"

    password="admin";

};

注意

(1). KafkaServer:这部分配置用于Broker进程自身的认证,以及验证来自客户端的连接。

(2). username和password是Broker之间通信的凭证,应与第一步创建的用户凭证一致。

(3). user_用户名="密码"的格式用于定义客户端用户。务必妥善保管此文件,并设置严格的文件权限。

(4). 如果Zookeeper也配置了SASL认证,你还需要在此文件中添加Client部分,用于Broker与Zookeeper之间的认证。 

                                                                                                   

3.      修改Kafka Broker配置

cd /usr/local/kafka-3.7.0/config

编辑Kafka的 server.properties 配置文件,主要修改或添加以下参数:

# 监听器配置为SASL_PLAINTEXT

listeners=SASL_PLAINTEXT://192.168.80.131:9092

advertised.listeners=SASL_PLAINTEXT://192.168.80.131:9092

# 指定Broker间通信使用的安全协议和SASL机制

security.inter.broker.protocol=SASL_PLAINTEXT

sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256

# 启用SASL机制

sasl.enabled.mechanisms=SCRAM-SHA-256

# (可选但推荐)启用ACL授权,并设置超级用户

authorizer.class.name=kafka.security.authorizer.AclAuthorizer

allow.everyone.if.no.acl.found=false

super.users=User:admin

 

4.      指定JAAS文件并启动Kafka Broker

(1)在启动Kafka时,需要通过环境变量指定JAAS配置文件的路径。

修改/etc/profile文件,将上面内容添加进去:

export KAFKA_OPTS="-Djava.security.auth.login.config=${KAFKA_HOME}/config/kafka_server_jaas.conf"

 

使环境变量生效

source /etc/profile

 

(2)启动Kafka

/usr/local/kafka-3.7.0/bin/kafka-server-start.sh -daemon /usr/local/kafka-3.7.0/config/server.properties

 

5.      配置SASL客户端

客户端(生产者和消费者)也需要进行相应配置才能连接上已启用SASL的Kafka。

在客户端的配置文件中指定以下参数:

vi kafka_client_jaas

security.protocol=SASL_PLAINTEXT

sasl.mechanism=SCRAM-SHA-256

sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin";

 

6.      使用admin用户查询所有topic

/usr/local/kafka-3.7.0/bin/kafka-topics.sh --bootstrap-server 192.168.80.131:9092  --command-config  /usr/local/kafka-3.7.0/config/kafka_client_jaas.conf   --list

 

7.      使用admin用户删除topic 

/usr/local/kafka-3.7.0/bin/kafka-topics.sh --bootstrap-server 192.168.80.131:9092  --command-config  /usr/local/kafka-3.7.0/config/kafka_client_jaas.conf   --delete --topic zgy-tjg-fsy ;

 

8.      使用admin用户创建新用户iot

bin/kafka-configs.sh --bootstrap-server  hadoop01:9092 --alter --add-config 'SCRAM-SHA-256=[password=Iot@123]' --entity-type users --entity-name iot –command-config config/kafka_client_jaas.conf

 

9.      使用iot用户查看topic

在客户端的配置文件中指定以下参数:

vi kafka_client_iot_jaas

security.protocol=SASL_PLAINTEXT

sasl.mechanism=SCRAM-SHA-256

sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="iot" password="Iot@123";

 

使用iot用户查看topic,发现查看不到

/usr/local/kafka-3.7.0/bin/kafka-topics.sh --bootstrap-server 192.168.80.131:9092  --command-config  /usr/local/kafka-3.7.0/config/kafka_client_iot_jaas.conf   --list

 

10.  使用admin用户给iot设置ACL权限

# 首先授予主题读取权限

/usr/local/kafka-3.7.0/bin/kafka-acls.sh --bootstrap-server 192.168.80.131:9092   --add --allow-principal User:iot   --operation Read --operation Describe   --topic zgy-tjg-rcms  --command-config  /usr/local/kafka-3.7.0/config/kafka_client_jaas.conf ;

 

 

# 然后授予消费组权限

/usr/local/kafka-3.7.0/bin/kafka-acls.sh --bootstrap-server 192.168.80.131:9092   --add --allow-principal User:iot   --operation Read --operation Describe   --group iot-group  --command-config  /usr/local/kafka-3.7.0/config/kafka_client_jaas.conf ;

 

 

11.  使用iot用户查询所有topic

/usr/local/kafka-3.7.0/bin/kafka-topics.sh --bootstrap-server 192.168.80.131:9092  --command-config  /usr/local/kafka-3.7.0/config/kafka_client_iot_jaas.conf   --list

 

12.  使用iot用户进行消费

方式一: 使用配置文件(推荐)

在原来的命令中通过 --consumer.config 参数来指定这个配置文件。

/usr/local/kafka-3.7.0/bin/kafka-console-consumer.sh  --bootstrap-server  hadoop01:9092  --topic  zgy-tjg-rcms --consumer.config  /usr/local/kafka-3.7.0/config/kafka_client_iot_jaas.conf  --group  iot-group  --from-beginning

 

方式二:通过命令行参数直接传递。

如果你只是想做一次快速测试,也可以将认证参数直接作为属性在命令中传递。

/usr/local/kafka-3.7.0/bin/kafka-console-consumer.sh  --bootstrap-server hadoop01:9092 --topic zgy-tjg-rcms \

  --consumer-property security.protocol=SASL_PLAINTEXT \

  --consumer-property sasl.mechanism=SCRAM-SHA-256 \

  --consumer-property "sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username=\"iot\" password=\"Iot@123\";" \

  --group  iot-group \

  --from-beginning

 

 

http://www.jsqmd.com/news/43747/

相关文章:

  • 2025年潜水泵厂家实力榜:轴流水泵、潜水轴流泵、轴流潜水泵、卧式混流水泵、品类五家企业凭技术与口碑出圈
  • QT中groupbox填满整个页面
  • 视频编辑的新成果!港科大蚂蚁集团提出Ditto框架刷新SOTA!
  • 2025年气体减压阀厂家实力榜:大流量气体减压阀,不锈钢氮气减压阀,不锈钢泄压阀,实验室气体减压阀、多品类阀门企业凭技术与口碑出圈
  • 2025年市场朋友圈计划平台榜单top10:权威解析与推荐
  • sub-1G收发芯片DP4330A低成本解决方案OOK /(G)FSK 等多种调制方式远距离 - 动能世纪
  • 2025年惠州青少年素质教育机构权威推荐榜单:青少年专门教育/感恩教育/沉迷游戏矫正源头机构精选
  • jQuery的.each()方法中return的坑
  • 深入解析:文本描述驱动的可视化工具在IDE中的应用与实践
  • 模型训练场景5090和4090的算力比较
  • 2025年羊毛地毯品牌口碑推荐榜单
  • 01.入门篇-体验AI编程
  • cocos creator开发斗地主(包含server)
  • 2025年羊毛地毯品牌口碑推荐榜单:甄选优质手工艺术与健康生活
  • 活动预告|IvorySQL 诚邀您参加2025开放原子开发者大会
  • 2025 年 11 月护栏厂家推荐排行榜,桥梁防撞护栏,道路护栏,景观护栏,河道护栏,不锈钢复合管护栏公司推荐
  • 2025年评价高的羊毛地毯制造企业排行
  • GYM106191E-Leaf
  • WebSocket使用教程 整合springboot
  • 【C++】哈希表 - 详解
  • linux apache配置文件
  • 2025年隔离器厂家实力榜:细胞治疗隔离器、无菌粉体原料药隔离器、负压隔离器、多类型隔离器五家企业凭技术与口碑出圈
  • 论文大纲模版怎么用?看完这篇全明白!
  • 2025年国内产品认证机构权威评测:昆明英格尔管理咨询有限公司蝉联榜首
  • [题解]P2340 [USACO03FALL] Cow Exhibition G
  • 基于模型预测控制的主蒸汽温度单步预测MATLAB实现
  • 2025年自动化绕线机订制厂家权威推荐:电机自动绕线机/小型自动绕线机/全自动电机绕线机源头厂家精选
  • 屏幕信息网站
  • 2025年知名的储气罐定制厂家权威推荐榜单:可靠的储气罐/质量好的储气罐/专业的储气罐源头厂家精选
  • Kubernetes 调度器开发方法概述