kafka密码SASL认证配置及SpringBoot配置加密后的Kafka参数

kafka密码SASL认证配置及SpringBoot配置加密后的Kafka参数

Kafka密码认证配置

1.修改server.properties

[root@localhost kafka]# vim config/server.properties 
############################# Socket Server Settings #############################

# The address the socket server listens on. It will get the value returned from 
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://:9092

###找到这个并把下方所有配置覆盖###
#listeners=SASL_PLAINTEXT://127.0.0.1:9092
listeners=SASL_PLAINTEXT://你的ip:9092
security.inter.broker.protocol=SASL_PLAINTEXT  
sasl.enabled.mechanisms=PLAIN  
sasl.mechanism.inter.broker.protocol=PLAIN  

2.添加kafka_server_jaas.conf和kafka_client_jaas.conf配置文件

在kafka的config文件夹下添加kafka_server_jaas.conf文件 文件内容如下:

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="123456"
    user_admin="123456"
    user_cxy="654321";
    
};

在kafka的config文件夹下添加kafka_client_jaas.conf文件 文件内容如下:

KafkaClient {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="cxy"
        password="654321";
};

注:用户名密码和上方kafka_server_jaas自定义的用户名密码一致

3.kafka启动脚本配置信息

bin/kafka-server-start.sh文件添加如下代码:

if [ "x$KAFKA_OPTS"  ]; then
    export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka-2.12/config/kafka_server_jaas.conf"
fi

​ 注:必须在 exec $base_dir/kafka-run-class.sh E X T R A A R G S k a f k a . K a f k a " EXTRA_ARGS kafka.Kafka " EXTRAARGSkafka.Kafka"@" 之前添加

kafka-console-producer.shkafka-console-consumer.sh文件添加如下代码:

if [ "x$KAFKA_OPTS"  ]; then
    export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka-2.12/config/kafka_client_jaas.conf"
fi

​ 注:必须在 exec $(dirname 0 ) / k a f k a − r u n − c l a s s . s h k a f k a . t o o l s . C o n s o l e X X X " 0)/kafka-run-class.sh kafka.tools.ConsoleXXX " 0)/kafkarunclass.shkafka.tools.ConsoleXXX"@" 之前添加

4.验证生产者和消费者开启成功

#新建名为topicTest的主题,要求分区数1,副本数1
bin/kafka-topics.sh --create --topic topicTest --partitions 1 --replication-factor 1 --zookeeper localhost:2181
#查看topic
bin/kafka-topics.sh -list -zookeeper localhost:2181
#开启消费者
bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.1:9092 --topic topicTest --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN --from-beginning
#开启生产者
bin/kafka-console-producer.sh --broker-list 192.168.0.1:9092 --topic topicTest --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN

SpringBoot配置SASL加密认证Kafka

在springboot的yml文件添加如下配置信息:

kafka:
    bootstrap-servers: 你的ip:9092  #此处必须与server.properties的ip一致
    #生产者配置
    producer:
      #每次批量发送消息的数量
      batch-size: 16
      #缓存容量
      buffer-memory: 33554432
      #设置大于0的值,则客户端会将发送失败的记录重新发送
      retries: 0
      #指定消息key和消息体的编解码方式 UTF-8
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
      #kafka加密配置
      properties:
        sasl.mechanism: PLAIN
        security.protocol: SASL_PLAINTEXT
        sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username='cxy' password='654321';  
    #消费者配置
    consumer:
      group-id: test
      enable-auto-commit: true
      auto-commit-interval: 1000
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
      auto-offset-reset: latest
      max-poll-records: 100
      #kafka加密配置
      properties:
        sasl.mechanism: PLAIN
        security.protocol: SASL_PLAINTEXT
        sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username='cxy' password='654321';  
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
在Flink中使用Kafka时启用SASL_PLAINTEXT身份验证,需要进行以下配置: 1. 在Flink的配置文件中添加以下Kafka相关的配置: ``` # Kafka security protocol security.protocol=SASL_PLAINTEXT # SASL mechanism sasl.mechanism=PLAIN # Kerberos service name sasl.kerberos.service.name=kafka # JAAS configuration file path sasl.jaas.config=/path/to/jaas.conf ``` 其中,`security.protocol`指定了使用SASL_PLAINTEXT协议进行安全连接,`sasl.mechanism`指定了使用PLAIN机制进行身份验证,`sasl.kerberos.service.name`指定了Kafka使用的Kerberos服务名称,`sasl.jaas.config`指定了JAAS配置文件的路径。 2. 在JAAS配置文件中添加以下内容: ``` KafkaClient { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="/path/to/keytab" storeKey=true useTicketCache=false serviceName="kafka" principal="user@EXAMPLE.COM"; }; ``` 其中,`KafkaClient`是JAAS配置文件中的一个应用程序名称,`com.sun.security.auth.module.Krb5LoginModule`指定了使用Kerberos认证,`useKeyTab`指定了使用keytab文件进行认证,`keyTab`指定了keytab文件的路径,`storeKey`指定了是否将加密后的密钥存储在缓存中,`useTicketCache`指定了是否缓存Kerberos票据,`serviceName`指定了Kafka使用的Kerberos服务名称,`principal`指定了用于Kerberos认证的用户主体名称。 3. 在Flink应用程序中使用Kafka时,需要在Kafka相关的配置添加以下内容: ``` Properties properties = new Properties(); properties.setProperty("bootstrap.servers", "kafka:9092"); properties.setProperty("security.protocol", "SASL_PLAINTEXT"); properties.setProperty("sasl.mechanism", "PLAIN"); properties.setProperty("sasl.kerberos.service.name", "kafka"); properties.setProperty("sasl.jaas.config", "/path/to/jaas.conf"); ``` 其中,`bootstrap.servers`指定了Kafka的启动服务器地址,其他配置项与上述步骤中的配置相同。 完成以上配置后,即可在Flink中使用Kafka进行SASL_PLAINTEXT身份验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值