kafka动态权限认证(SASL SCRAM + ACL)

创建三个测试用户

bin/kafka-configs.sh --zookeeper 192.168.x.x:2181 --alter --add-config ‘SCRAM-SHA-256=[iterations=8192,password=admin],SCRAM-SHA-512=[password=admin]’ --entity-type users --entity-name admin

PS:用户 admin 这里配置admin用户用于实现broker间的通讯。

测试用户 writer
bin/kafka-configs.sh --zookeeper 192.168.x.x:2181 --alter --add-config ‘SCRAM-SHA-256=[iterations=8192,password=writer],SCRAM-SHA-512=[password=writer]’ --entity-type users --entity-name writer

测试用户 reader
bin/kafka-configs.sh --zookeeper 192.168.x.x:2181 --alter --add-config ‘SCRAM-SHA-256=[iterations=8192,password=reader],SCRAM-SHA-512=[password=reader]’ --entity-type users --entity-name reader

查看创建用户信息

bin/kafka-configs.sh --zookeeper 192.168.2.6:2181 --describe --entity-type users (可以单独指定某个用户–entity-name writer)

创建配置文件kafka-broker-jaas.conf

保存至 /opt/kafka/config 下 (每台主机)
KafkaServer {
org.apache.kafka.common.security.scram.ScramLoginModule required
username=“admin”
password=“admin”;
};

配置broker端的server.properties

启用ACL
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
#设置本例中admin为超级用户
super.users=User:admin
启用SCRAM机制,采用SCRAM-SHA-512算法
sasl.enabled.mechanisms=SCRAM-SHA-512
#为broker间通讯开启SCRAM机制,采用SCRAM-SHA-512算法
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-512
#broker间通讯使用PLAINTEXT
security.inter.broker.protocol=SASL_PLAINTEXT
#配置listeners使用SASL_PLAINTEXT
listeners=SASL_PLAINTEXT://n6.aa-data.cn:9092(指定当前主机)
#配置advertised.listeners
advertised.listeners=SASL_PLAINTEXT://n6.aa-data.cn:9092(指定当前主机)

配置环境变量,引入jaas

export KAFKA_OPTS=’-Djava.security.auth.login.config=/opt/kafka/config/kafka-broker-jaas.conf’

生产

创建 producer.conf

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

给writer 提供写权限

bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.6:2181 --add --allow-principal User:writer --operation Write --topic testcon


生产消息

bin/kafka-console-producer.sh --broker-list n6.aa-data.cn:9092 --topic testcon --producer.config /opt/kafka/config/producer.conf

消费

创建 consumer.conf

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

给reader 提供读取权限

bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.6:2181 --add --allow-principal User:reader --operation Read --topic testcon


给reader 添加访问consumer group的权限
bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=n6.aa-data.cn:2181 --add --allow-principal User:reader --operation Read --group test


消费 testcon消息
bin/kafka-console-consumer.sh --bootstrap-server 192.168.2.6:9092 --topic testcon --from-beginning --consumer.config /opt/kafka/config/consumer.conf

动态添加 生成用户

测试用户 writer1

bin/kafka-configs.sh --zookeeper 192.168.2.6:2181 --alter --add-config ‘SCRAM-SHA-256=[iterations=8192,password=writer],SCRAM-SHA-512=[password=writer1]’ --entity-type users --entity-name writer1

测试用户 reader1
bin/kafka-configs.sh --zookeeper 192.168.2.6:2181 --alter --add-config ‘SCRAM-SHA-256=[iterations=8192,password=reader],SCRAM-SHA-512=[password=reader1]’ --entity-type users --entity-name reader1



赋予权限
bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.6:2181 --add --allow-principal User:writer1 --operation Write --topic testcon

bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.6:2181 --add --allow-principal User:reader1 --operation Read --topic testcon

bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=n6.aa-data.cn:2181 --add --allow-principal User:reader --operation Read --group test1

删除原来的用户
bin/kafka-configs.sh --zookeeper 192.168.2.6:2181 --alter --delete-config ‘SCRAM-SHA-256’ --entity-type users --entity-name writer
bin/kafka-configs.sh --zookeeper 192.168.2.6:2181 --alter --delete-config ‘SCRAM-SHA-512’ --entity-type users --entity-name writer

Ps:用户删除后 需修改 producer.conf consumer.conf

kafka动态权限认证(SASL SCRAM + ACL)相关推荐

  1. Kafka动态认证SASL/SCRAM配置+整合springboot配置

    记录: zookeeper启动命令: [root@master-yzjgxh2571705819-1651919082731-99-0727183 bin]# ./zkServer.sh start ...

  2. Kafka安装配置(SASL/SCRAM动态认证)

    SASL/SCRAM验证方法可以在Kafka服务启动之后,动态的新增用户分并配权限,在业务变动频繁,开发人员多的情况下比SASL/PLAIN方法更加灵活. Zookeeper:3.4.13,kafka ...

  3. Kafka集群搭建及SASL/SCRAM,ACL权限控制

    Kafka集群搭建及SASL/SCRAM,ACL权限控制 环境 部署zookeeper集群及安全认证 部署kafka集群及安全认证 环境 系统版本:Centos7.4 kafka版本:kafka_2. ...

  4. Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制

    文章目录 SASL_SCRAM+ACL实现动态创建用户及权限控制 使用SASL / SCRAM进行身份验证 1. 创建SCRAM Credentials 创建broker建通信用户(或称超级用户) 创 ...

  5. Kafka动态认证SASL/SCRAM验证

    一.目的 配置SASL/PLAIN验证,实现了对Kafka的权限控制.但SASL/PLAIN验证有一个问题:只能在JAAS文件KafkaServer中配置用户,一但Kafka启动,无法动态新增用户.S ...

  6. kafka windows环境搭建 SASL_PLAINTEXT/SCRAM

    kafka windows环境搭建 SASL_PLAINTEXT/SCRAM acl认证记录 一.kafka 下载参考地址 https://kafka.apache.org/downloads 二.环 ...

  7. 玩转SpringCloud Security OAuth2资源授权动态权限扩展

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/new_com/article/ details/104731154 在Spring Cloud Security 中,认证和授 ...

  8. Kafka SASL/SCRAM动态认证集群部署

    Kafka SASL/SCRAM动态认证集群部署 目的:配置SASL/PLAIN验证,实现了对Kafka的权限控制.但SASL/PLAIN验证有一个问题:只能在JAAS文件KafkaServer中配置 ...

  9. kafka集群搭建+权限认证(SASL/SCRAM)+整合springboot

    本文介绍的的是kafka集群搭建.kafka权限认证(SASL/SCRAM).整合springboot项目. 1.创建kafka日志和zookeeper文件目录: /data/kafka/kafka- ...

最新文章

  1. 深度学习遇上稀缺数据就无计可施?这里有几个好办法
  2. centos redis 自动重启脚本
  3. 宁波网络推广介绍几点容易被优化人员忽略的图片优化技巧!
  4. 洛谷 - P4717 【模板】快速莫比乌斯/沃尔什变换 (FMT/FWT)
  5. java arraylist 字符串_Java ArrayList、string、string[]之间的转换
  6. 功率谱 幅值谱_疲劳损伤谱(FDS)的基本原理
  7. 幼小衔接语言教案上c册_关于幼小衔接,这里有你最想要的解答
  8. 【Clickhouse】Clickhouse 访问控制和账号管理
  9. 什么是IEC 61508?
  10. 数据分析:使用Imblearn处理不平衡数据(过采样、欠采样)
  11. SQL SERVER2008查询分析器的使用
  12. php ziparchive类,PHP Zip ZipArchive 类_编程学问网
  13. 已删除的QQ好友聊天记录怎么查看
  14. 自定义MySQL实用的函数和存储过程(持续更新)
  15. 微信发朋友圈功能测试点小结
  16. halcon模板匹配快速入门
  17. MySQL 5.7新特性:并行复制原理(MTS)
  18. mysql 切分_MySQL切分查询用法分析
  19. ubuntu显卡的参数说明
  20. 微信服务号自定义菜单添加扫码功能

热门文章

  1. 大数据时代下的个人隐私
  2. Mysql内核查询成本计算
  3. 移动端软盘遮盖输入框的解决方案
  4. 四川大学计算机学院人工智能专业排名,人工智能专业大学排名
  5. Python微信点赞
  6. 给服务器写一个简单的断网重连shell脚本
  7. 配色那么差,还不‘哥屋恩’去看电影!
  8. WPF设备无关单位(DIU)
  9. DIY主机:华硕B450m+AMD2600x
  10. 用Rust实现区块链 - 3 持久化