zookeeper、kakfa添加用户加密

背景

zookeeper无权限访问到根目录

步骤

  1. 在kafka/config 目录中创建

    vi config/zookeeper_jaas.conf
    
  2. 在zookeeper_jaas.conf中添加

    Server {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="12345"
    user_admin="12345";
    };
    #user_{username}="{password}"
    
  3. zookeeper.properties最后添加配置

    #auth
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthScheme=sasl
    jaasLoginRenew=3600000
    
  4. 在zookeeper-server-start.sh中添加配置

    根据不同的目录位置进行修改-Djava.security.auth.login.config=/opt/kafka_2.13-3.5.1/config/zookeeper_jaas.conf

    if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport KAFKA_HEAP_OPTS="-Xmx512M -Xms512M -Djava.security.auth.login.config=/opt/kafka_2.13-3.5.1/config/zookeeper_jaas.conf"
    fi
    
  5. 启动zookeeper

    ./zookeeper-server-start.sh -daemon ../config/zookeeper.properties
    
  6. 下面开始设置ACL配置

    1. 登录zookeeper192.168.6.42:2181IP地址根据自己的进行调整

      ./zookeeper-shell.sh 192.168.6.42:2181
      
    2. 添加用户

      addauth digest admin:12345
      addauth digest kafka:12345
      
    3. 设置ACLip:192.168.6.42:cdrwa根据自己的ip地址进行修改

      setAcl / ip:192.168.4.235:cdrwa,ip:127.0.0.1:cdrwa,auth:kafka:cdrwa,auth:admin:cdrwa
      setAcl /consumers ip:192.168.4.235:cdrwa,ip:127.0.0.1:cdrwa,auth:kafka:cdrwa,auth:admin:cdrwa
      
      cdrwa:create: 你可以创建子节点。read: 你可以获取节点数据以及当前节点的子节点列表。write: 你可以为节点设置数据。delete: 你可以删除子节点。admin: 可以为节点设置权限
      
    4. 查看是否配置正确

      getAcl /
      getAcl /consumers 
      
  7. 添加kafka的配置

    vim config/kafka_server_jaas.conf
    
  8. 添加内容

    KafkaServer {org.apache.kafka.common.security.plain.PlainLoginModule requiredusername="admin"password="12345"user_admin="12345";
    };Client {org.apache.kafka.common.security.plain.PlainLoginModule requiredusername="admin"password="12345";
    };
    
  9. 修改config/server.properties

    # AUTHsecurity.inter.broker.protocol=SASL_PLAINTEXT
    sasl.mechanism.inter.broker.protocol=PLAIN
    sasl.enabled.mechanisms=PLAINauthorizer.class.name=kafka.security.authorizer.AclAuthorizer
    allow.everyone.if.no.acl.found=true
    listeners=SASL_PLAINTEXT://0.0.0.0:9092
    advertised.listeners=SASL_PLAINTEXT://:9092#将zookeeper.connect改成zookeeper的地址
    zookeeper.connect=192.168.6.42:2181
    
  10. 调整kafka的启动脚本 kafka-server-start.sh-Djava.security.auth.login.config=/opt/kafka_2.13-3.5.1/config/kafka_server_jaas.conf根据自己的地址进行配置

    if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport KAFKA_HEAP_OPTS="-Xmx1G -Xms1G -Djava.security.auth.login.config=/opt/kafka_2.13-3.5.1/config/kafka_server_jaas.conf"
    fi
  11. 启动kafka

    ./kafka-server-start.sh -daemon ../config/server.properti
    
  12. 测试

    进入kafka目录,在config目录下创建kafka_client_jaas.conf文件,并写入如下内容。

    KafkaClient {  
    org.apache.kafka.common.security.plain.PlainLoginModule required  username="admin"  password="admin";  
    };
    
  13. 配置提供者认证,修改提供者启动脚本,vi bin/kafka-console-producer.sh

    if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport KAFKA_HEAP_OPTS="-Xmx512M -Djava.security.auth.login.config=/opt/kafka_2.13-3.5.1/config/kafka_client_jaas.conf"
    fi
    exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleProducer "$@"                        
    
  14. 启动消费者

    ./kafka-console-producer.sh --broker-list 192.168.4.235:9092 --topic testTopic --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN
    
  15. 配置消费者认证,修改提供者启动脚本,vi bin/kafka-console-consumer.sh

    if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport KAFKA_HEAP_OPTS="-Xmx512M -Djava.security.auth.login.config=/opt/kafka_2.13-3.5.1/config/kafka_client_jaas.conf"
    fiexec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleConsumer "$@"
    
  16. 启动消费者

    ./kafka-console-consumer.sh --bootstrap-server 192.168.4.235:9092 --topic testTopic --from-beginning --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN
    

    有消息输出即为成功

  17. springboot的配置

    spring:kafka:# docker http://192.168.2.202:8080bootstrap-servers: http://192.168.6.42:9092# 配置用户名密码producer:properties:sasl:mechanism: PLAINsecurity:protocol: SASL_PLAINTEXTconsumer:properties:sasl:mechanism: PLAINsecurity:protocol: SASL_PLAINTEXT
    
  18. 在相关的kafkaConfig中增加相关配置

       @Beanpublic KafkaTemplate kafkaTemplate() {Map<String, Object> configs = new HashMap<>();configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrap_servers_config);configs.put(ProducerConfig.RETRIES_CONFIG, pro_retry_config);configs.put(ProducerConfig.BATCH_SIZE_CONFIG, batch_size_config);configs.put(ProducerConfig.ACKS_CONFIG, acks_config);configs.put(ProducerConfig.LINGER_MS_CONFIG, linger_ms_config);configs.put(ProducerConfig.BUFFER_MEMORY_CONFIG, buffer_memory_config);configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,key_serializer_config);configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,value_serializer_config);configs.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, compression_type_config);if (Boolean.valueOf(auth_enabled)) {configs.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SASL_PLAINTEXT.name());configs.put(SaslConfigs.SASL_MECHANISM, sasl_mechanism);}DefaultKafkaProducerFactory  producerFactory = new DefaultKafkaProducerFactory(configs);return new KafkaTemplate(producerFactory);}
    
  19. 最后在启动脚本中新增一个配置

-Djava.security.auth.login.config=客户端登录文件所在的位置
#eg:
-Djava.security.auth.login.config=/opt/kafka/config/kafka_client_jaas.conf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/27900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

温泉镇旅游微信小程序的设计与实现(论文+源码)_kaic

摘要 旅游业随着经济的快速发展呈现出一派欣欣向荣的景象&#xff0c;尤其是近两年来&#xff0c;各个行业运用科技以及因特网来促进旅游迅速发展&#xff0c;逐渐都显示出了的问题&#xff0c;特别突出的是在线上推广&#xff0c;其缺点也是特别明显。尽管在新冠肺炎的冲击下&…

uni-app前端,社区团购系统搭建部署

目录 前言&#xff1a; 一、社区团购模式&#xff1a; 二、社区团购系统功能&#xff1a; 三、总结&#xff1a; 前言&#xff1a; 区团购系统是一种利用互联网技术和组织力量&#xff0c;通过线上线下结合的方式&#xff0c;为社区居民提供方便快捷的商品和服务采购平台。…

制作一个超小的docker镜像

在制作docker镜像我们都希望能够制作一个超小的镜像&#xff0c;那么该怎么做呢&#xff0c;网上有很多优化镜像大小的方法&#xff0c;今天就不在重复了&#xff0c;今天给大家分享一个从源头控制大小的方案。 Docker Scratch镜像是一个特殊的Docker镜像&#xff0c;它不基于任…

案例学习-存量更新规划实施探索(武汉)

案例学习-存量更新规划实施探索&#xff08;武汉&#xff09; 武汉市在早期旧城更新实践中发现零散化的更新往往导致资源配置分散、城市建设破碎化等弊病&#xff0c;特别是由于过于强调项目自身“经济平衡”&#xff0c;在实施过程中也逐步暴露出住宅占比过大、强度偏高、公服…

JS:获取鼠标点击位置

一、获取鼠标在目标元素中的点击位置 getClickPos.ts: export const getClickPos (e: MouseEvent) > {return {x: e.offsetX,y: e.offsetY,}; };二、获取鼠标在页面中的点击位置 getClickPos.ts: export const getPageClickPos (e: MouseEvent) > {return {x: e.pa…

算法day32

第一题 207. 课程表 步骤一&#xff1a; 通过下图的课程数组,首先画出DAG图&#xff08;有向无环图&#xff09; 步骤二&#xff1a; 其次我们按照DAG图&#xff0c;来构建该图的拓扑排序&#xff0c;等有效的点都按照规则排完序后&#xff0c;观察是否有剩下的点的入度不为0&…

MAC M1系统编译ffmpeg-gl-transition

MAC M1系统编译ffmpeg-gl-transition 1. 本人系统2. 编译&#x1f4b0;系统准备2.1. 下载【ffmpeg-gl-transition】到用户家目录下&#xff0c;并解压2.2 下载ffmpeg源码2.3. brew安装GLEW glfw32.4 复制vf_gltransition.c文件到ffmpeg2.5 修改ffmpeg源码文件2.6 设置库目录和…

qmt量化交易策略小白学习笔记第32期【qmt编程之获取行业概念数据--如何获取迅投行业成分股数据】

qmt编程之获取迅投行业成分股数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 感谢关注&#xff0c;咨询免费开通量化回测与获取实盘权限&#xff0c;欢迎和博主联系&#xff01; 获取迅投…

日常排查问题技巧小结

文章目录 1. 写在最前面1.1 关于程序突然消失这件事 2. 排查消失的程序2.1 程序崩溃2.2 系统强杀程序2.2 迁移服务误拉任务2.3 真相 3. 碎碎念4. 参考资料 1. 写在最前面 「焦虑、烦躁解决不了任何问题&#xff0c;只会让问题变得更加难严重」。工作越久&#xff0c;对于工作的…

大模型日报2024-06-15

大模型日报 2024-06-15 大模型资讯 新技术提升大型语言模型推理能力 摘要: 一种新技术使得像GPT-4这样的大型语言模型能够通过编写Python代码&#xff0c;更准确地解决数值或符号推理任务。 大型语言模型革命性提升蛋白质序列理解 摘要: 研究人员将蛋白质序列与自然语言进行类比…

查看队列资源限额和使用情况

查看队列资源限额和使用情况 背景 LSF中的 limits 配置模块允许管理员很方便地设置集群资源限额&#xff0c;可以在队列、主机对、应用维度对用户使用的资源如slot/core,、任务数/jobs、内存/mem、交换区/swap&#xff0c;以及自定义资源比如许可证进行限制。 问题 在实际工…

JAVA学习01

8个二进制位代表1字节 不能超出这个范围 文档注释 生成api文档 编码&#xff1a;保存数据的过程 解码&#xff1a;读数据 notic&#xff1a; 编码解码遵循的规范是一样的 gbk&#xff1a;中文 ansi代表gbk - 一个中文字占两个字节 udf-8 一个汉字占三个字节

一文了解Spark引擎的优势及应用场景

Spark引擎诞生的背景 Spark的发展历程可以追溯到2009年&#xff0c;由加州大学伯克利分校的AMPLab研究团队发起。成为Apache软件基金会的孵化项目后&#xff0c;于2012年发布了第一个稳定版本。 以下是Spark的主要发展里程碑&#xff1a; 初始版本发布&#xff1a;2010年开发…

2024全新仿麻豆视频苹果cms源码v10影视模板

下载地址&#xff1a;2024全新仿麻豆视频苹果cms源码v10影视模板 高端大气的设计&#xff0c;适合做电影、连续剧、综艺、动漫、微电影、纪录片、海外剧等视频网站

N3 中文文本分类

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊# 前言 前言 前面学习了相关自然语言编码&#xff0c;这周进行相关实战 导入依赖库和设置设备 import torch import torch.nn as nn import torchvision fro…

虚函数机制-动态绑定的应用

虚函数使得程序在运行的时候根据指针指向对象的类型来确定调用哪个函数。 下图中&#xff1a;都为静态绑定。因为在编译器就确定了可以调用的函数 此时当基类指针指向派生类对象时&#xff0c;因为没有virtual关键字&#xff0c;所以在编译阶段就根据指针类型确定了要指向的函…

秋招突击——第四弹——Java的SSN框架快速入门——Maven

文章目录 引言Maven分模块开发与设计分模块开发的过程 依赖管理可选依赖与排除依赖 继承与聚合聚合继承 属性和版本管理属性扩大集中管理的范围版本管理 多环境开发多环境开发 私服简介安装私服资源操作流程分析上传和下载 总结 引言 前一个部分花了太多时间&#xff0c;后续得…

vue2 + echats树状图 点击按钮 展开所有节点/收起所有节点

vue2 echats树状图 点击按钮 展开所有节点/收起所有节点 <template><div><button click"expandAll(isExpanded)">{{ isExpanded ? 一键收起 : 一键展开 }}</button><div ref"echartsTree" style"width: 600px; height:…

【Pandas驯化-02】pd.read_csv读取中文出现error解决方法

【Pandas】驯化-02pd.read_csv读取中文出现error解决方法 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 相关内容文档获取 微信公众号 &…