安装目录/conf/zoo.cfg添加以下配置
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider requireClientAuthScheme=sasl jaasLoginRenew=3600000
同目录下新建文件zk_server_jaas.conf
Server { org.apache.zookeeper.server.auth.DigestLoginModule required username="admin" password="passwd1" user_admin="passwd1"; user_kafka="passwd2" };
这里的user_指的是配置访问用户及其密码。
win 修改zkServer.cmd,在启动命令行call %JAVA%···后增加启动参数"-Djava.security.auth.login.config=%~dp0…confzk_server_jaas.conf"
linux修改zkServer.sh,在启动命令行nohup “$JAVA” $ZOO_DATADIR_AUTOCREATE “····后增加启动参数”-Djava.security.auth.login.config=/zookeeper安装地址/conf/zk_server_jaas.conf"
2. kafka自带的zookeeper配置修改kafka安装目录/config/zookeeper.properties,增加
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider requireClientAuthScheme=sasl jaasLoginRenew=3600000
在同目录下新增文件kafka_zookeeper_jaas.conf
Server { org.apache.zookeeper.server.auth.DigestLoginModule required username="admin" password="passwd1" user_admin="passwd1"; };
修改启动脚本。脚本都在bin目录下。
win修改zookeeper-server-start.bat,将启动参数加在KAFKA_HEAP_OPTS后面,例如:
set KAFKA_HEAP_OPTS=-Xmx512M -Xms512M -Djava.security.auth.login.config=file:%~dp0../../config/kafka_zookeeper_jaas.conf
linux修改zookeeper-server-start.sh
export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M -Djava.security.auth.login.config=file:/kafka安装目录/config/kafka_zookeeper_jaas.conf"二. kafka配置
修改kafka安装目录/config/server.properties,增加
#身份安装配置 listeners=SASL_PLAINTEXT://127.0.0.1:9092 #advertised.listeners=SASL_PLAINTEXT://127.0.0.1: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=true #超级管理员权限用户 super.users=User:admin
同目录下新建kafka_server_jaas.conf
KafkaServer { org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="passwd1" user_admin="passwd1" user_producer="passwd2" user_consumer="passwd3"; }; Client { org.apache.zookeeper.server.auth.DigestLoginModule required username="admin" password="上面配置的zookeeper访问密码"; };
这边的user_也是一样的,后面跟的是设置的用户名和其密码。
修改启动脚本。bin目录下。
win启动脚本kafka-server-start.bat:
set KAFKA_HEAP_OPTS=-Xmx512M -Xms512M -Djava.security.auth.login.config=file:%~dp0../../config/kafka_server_jaas.conf
linux启动脚本kafka-server-start.sh:
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G -Djava.security.auth.login.config=file:/kafka安装目录/config/kafka_server_jaas.conf"
启动:kafka-server-start.bat … …configserver.properties
三. kafka tool 配置要注意是否在hosts配置ip和host的映射。建议直接用ip。
org.apache.kafka.common.security.plain.PlainLoginModule required username=“admin” password=“passwd”;
四. spring boot配置yml文件里的配置:
spring: kafka: bootstrap-servers: localhost:9092 template: default-topic: topic # 生产者 producer: key-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.apache.kafka.common.serialization.StringSerializer # 消费者 consumer: group-id: foo1 auto-offset-reset: earliest enable-auto-commit: true auto-commit-interval: 1000 key-deserializer: org.apache.kafka.common.serialization.StringDeserializer value-deserializer: org.apache.kafka.common.serialization.StringDeserializer properties: security: protocol: SASL_PLAINTEXT sasl: mechanism: PLAIN jaas: config: 'org.apache.kafka.common.security.plain.PlainLoginModule required username="username" password="password";'
注: 以上例子kafka使用的是SASL/PLAIN认证,如果要使用SASL/SCRAM认证(可配合ACL实现动态创建用户及权限控制),需做以下配置调整。
首先为连接用户,如admin创建 SCRAM 证书
.kafka-configs.bat --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=PASSWD],SCRAM-SHA-512=[password=PASSWD]' --entity-type users --entity-name admin
查看证书
.kafka-configs.bat --zookeeper localhost:2181 --describe --entity-type users --entity-name admin
然后修改jaas配置文件,kafka_server_jaas.conf,
org.apache.kafka.common.security.plain.PlainLoginModule #修改为 org.apache.kafka.common.security.scram.ScramLoginModule
修改server.properties文件
sasl.enabled.mechanisms=PIAIN sasl.mechanism.inter.broker.protocol=PLAIN #修改为 sasl.enabled.mechanisms=SCRAM-SHA-256 sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
然后关闭所有连接kafka的进程,包括kafka tool,然后按重启kafka。
再用kafka tool连接时,修改连接配置:Advanced->SASL Mechanism 为SCRAM-SHA-256,JAAS Config配置改为org.apache.kafka.common.security.scram.ScramLoginModule required username=“admin” password=“PASSWD”;
同样的,spring boot配置文件中也将spring.kafka.propertites.sasl.mechanism配置项改为SCRAM-SHA-256,将jaas.config改为org.apache.kafka.common.security.scram.ScramLoginModule required username=“admin” password=“PASSWD”;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)