首页 > 其他分享 >Kafka开启SASL认证 【windowe详细版】

Kafka开启SASL认证 【windowe详细版】

时间:2022-09-21 16:13:05浏览次数:57  
标签:password admin 配置 broker server kafka SASL Kafka windowe

一、JAAS配置


Zookeeper配置JAAS

zookeeper环境下新增一个配置文件,如zk_server_jass.conf,内容如下:

Server {
	org.apache.kafka.common.security.plain.PlainLoginModule required
	username="admin"
	password="admin"
	user_admin="admin";
};

其作用是:在改zookeeper节点创建了一个Server节点,其中

  • org.apache.kafka.common.security.plain.PlainLoginModule required 是加密机制为PLAIN的处理类。在kafka-client包下
  • usernamepassword是zookeeper之间通讯的用户名和密码,
  • user_admin="admin"的结构是user_[username]=[password],定义kafka-broker(zookeeper客户端)连接到zookeeper时用的用户名和密码。

注意jaas配置都要以结尾


Kafka-Broker配置JAAS

在kafka-broker环境下新增配置,如kafka_server_jaas.conf,内容如下:

# 用于broker和zookeeper之间的认证,对应zk_server_jass.conf中的【user_admin="admin"】配置
Client {
	org.apache.kafka.common.security.plain.PlainLoginModule required
	username="admin"
	password="admin";
};

# 定义kafka客户端与broker的认知信息
KafkaServer {
	org.apache.kafka.common.security.plain.PlainLoginModule required
	username="admin"
	password="admin"
	user_admin="admin"
	user_alice="alice";
};
  • Client:用于broker和zookeeper之间的认证,对应zk_server_jass.conf中的【user_admin="admin"】配置
  • KafkaServer:集群中,broker之间用节点中的username,password进行通讯
  • KafkaServerkafka客户端(producer,consumer)连接broker时,用该配置下user_[username]=[password]结构配置的账号密码登录

Kafka-Producer配置JAAS

在kafka-broker环境下新增配置,如kafka_producer_jaas.conf,内容如下:

Client {
	org.apache.kafka.common.security.plain.PlainLoginModule required
	username="admin"
	password="admin";
};

Client:客户端登录服务端认证信息,对应broker配置中user_[username]=[password]定义的配置


Kafka-Consumer配置JAAS

新增kafka_consumer_jaas.conf,配置同producer

从以上配置可以得出结论:

  • username="admin" password="admin"配置格式有两种场景

1、是用于服务端集群之间的认证信息,定义在Server节点里

2、用户登录服务端的认证信息,定义在Client节点里

  • user_[username]=[password]配置定义在Server节点里,用于提供给客户端登录。

以上关系是:Zookeeper:Kafka-Broker关系里,Zookeeper是服务端,Kafka-Broker是客户端;Kafka-Broker:Kafka-Producer、Kafka-Consumer关系里,Kafka-Broker是服务端,Kafka-Producer、Kafka-Consumer是客户端


二、SASL配置


zookeeper的sasl配置

zookeeper.properties配置文件新增:

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

修改zookeeper-server-start.bat,新增一个配置KAFKA_OPTS

SetLocal

set KAFKA_OPTS=-Djava.security.auth.login.config=【zk_server_jass.conf路径】
......

EndLocal

broker新增sasl配置

server.properties新增配置

listeners=SASL_PLAINTEXT://localhost:9092
#使用的认证协议
security.inter.broker.protocol=SASL_PLAINTEXT
#SASL机制 
sasl.enabled.mechanisms=PLAIN  
sasl.mechanism.inter.broker.protocol=PLAIN   
# 完成身份验证的类 
#authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer 
# 如果没有找到ACL(访问控制列表)配置,则允许任何操作。 
allow.everyone.if.no.acl.found=false
#超级管理员权限用户
super.users=User:admin
advertised.listeners=SASL_PLAINTEXT://localhost:9092

修改kafka-server-start.bat ,新增一个配置KAFKA_OPTS:

SetLocal

set KAFKA_OPTS=-Djava.security.auth.login.config=【kafka_server_jass.conf路径】
......

EndLocal

producer的sasl配置

producer.properties新增配置

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin";
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

producer的sasl配置

consumer.properties新增配置

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin";
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

三、启动命令【示例】

zk:

.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

broker:

.\bin\windows\kafka-server-start.bat .\config\server.properties

producer:

.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092  --topic testTopic  --producer.config  .\config\producer.properties

consumer:

.\bin\windows\kafka-console-consumer.bat --bootstrap-server  localhost:9092 --topic testTopic --consumer.config .\config\consumer.properties

标签:password,admin,配置,broker,server,kafka,SASL,Kafka,windowe
From: https://www.cnblogs.com/acelin/p/16715931.html

相关文章

  • Flink-状态一致性(如何保证exactly-once、flink+kafka端到端保证exactly-once)
    当在分布式系统中引入状态时,自然也引入了一致性问题。一致性实际上是"正确性级别"的另一种说法,也就是说在成功处理故障并恢复之后得到的结果,与没有发生任何故障时得到的结......
  • Kafka本地单实例安装
    下载安装从国内镜像站点下载并安装Kafka安装包,以下载并安装v3.2.3版本为例。$tar-xzfkafka_2.12-3.2.3.tgz$cdkafka_2.12-3.2.3启动服务如下命令均在Kafka安装......
  • 大数据面试每日一题-Kafka为什么这么快?
    Kafka为什么这么快?1.kafka是基于partition 分区技术实现的,分布式提高Kafka的并发量2.KafKa的稀疏索引机制,kafka每4kb插入一个索引,索引在查询时候,可以比较高的效率查到到......
  • Kafka为什么性能这么快?4大核心原因详解
    Kafka的性能快这是大厂Java面试经常问的一个话题,下面我就重点讲解Kafka为什么性能这么快的4大核心原因@mikechen1、页缓存技术Kafka是基于操作系统的页缓存(pagecach......
  • kafka--Producer知识
    Producer发送模式同步发送异步发送异步发送回调Producer源码讲解Producer发送流程:1.构建对象2.发送消息KafkaProducer构建clientId,为了给metricConfig(上报......
  • 14 张图详解 Zookeeper + Kafka on K8S 环境部署
    转载自:https://www.cnblogs.com/liugp/p/16706192.html一、概述ApacheZooKeeper 是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务,ZooKeeper致......
  • kafka-03-主题分区副本
    搭建一个主题,两个分区,三个副本环境搭建一个主题:1.创建topicexec-it先进入kafka容器,然后在/opt/kafka/bin目录下执行命令:用kafka的bin目录下的脚本:(往192.168.56.12......
  • kafka相关命令
    1,创建Topic2,往Topic写入数据命令:kafka-producer-perf-test--topicck_test111--num-records1000--record-size2000--throughput1000--producer-propsbootstrap......
  • 在consumer producer运行时停止kafka服务端会怎样
    结论服务端停止时,客户端程序会报错;服务端启动后,客户端程序能继续运行。也就是,消费者线程并未异常退出。实验步骤(1)停止后,consumer和producer会报错。消费者:.___......
  • Kakfa系列丛书推荐之《深入理解Kafka:核心设计与实践原理》
    编者推荐本书从Kafka的基本概念入手,主要从生产端、消费端、服务端等3个方面进行全面的陈述,主要内容包括Kafka的基本使用方式、生产者客户端的使用、消费者客户端的使用......