kafka 认证
来源:互联网 发布:大话西游手游藕丝数据 编辑:程序博客网 时间:2024/05/21 23:33
简介
kafka从0.9版本开始引入安全体系
(1)支持brokers和client之间的连接认证。使用SSL或者SASL
SASL/GSSAPI (Kerberos) - starting at version 0.9.0.0SASL/PLAIN - starting at version 0.10.0.0SASL/SCRAM-SHA-256 and SASL/SCRAM-SHA-512 - starting at version 0.10.2.0
(2)broker和zookeeper之间的连接认证
(3)数据传输加密,使用SSL
(4)客户端的读写权限授权
(5)授权是可插拔的,并且支持和外部授权服务集成
本文主要关注SASL/PLAIN的认证。其余的有兴趣可以详见kafka官网。
kafka authentication (认证)
ps:需要注意,启用认证后,kafka旧的生产者和消费者api将无法使用,必须用新的api
一.broker 配置
1.kafka_server_jaas.conf
KafkaServer { org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret" user_admin="admin-secret" user_alice="alice-secret"; };
说明:username和password是broker之间建立连接使用。user_用户=”密码”,定义了clinet和broker通信的用户名和密码。
假设我把这个文件放置到/etc/kafka目录下。
2.修改kafka-server-start.sh,将-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf添加到启动命令。
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf kafka.Kafka "$@"
3.修改server.properties,设置参数
listeners=SASL_PLAINTEXT://hostname:9092security.inter.broker.protocol=SASL_PLAINTEXTsasl.mechanism.inter.broker.protocol=PLAINsasl.enabled.mechanisms=PLAIN
二.客户端配置
1.kafka_client_jaas.conf
KafkaClient { org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="alice-secret";};
假定我将将文件放置到/etc/kafka目录下
2.生产者和消费者配置添加参数,可以在自定义的程序中配置properties
security.protocol=SASL_PLAINTEXTsasl.mechanism=PLAIN
3.生产者和消费者启动的时候,需要在启动命令中指定 -Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf
部署:
直接以官方示例代码为例说明java生产者如何指定:
kafka.examples.Producer
public Producer(String topic, Boolean isAsync) { //可以通过system.setProperty来指定验证文件,可以作为调试将环境使用,正式环境可以使用-Djava.security.auth.login.config来指定 System.setProperty("java.security.auth.login.config","D:\\Mtimeworkstation\\Intellij\\kafkatest\\src\\main\\resources\\kafka_client_jaas.conf"); Properties props = new Properties(); props.put("bootstrap.servers", "mtime-bigdata03:9092"); props.put("client.id", "DemoProducer"); props.put("key.serializer", "org.apache.kafka.common.serialization.IntegerSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); //配置文件设置sasl_plaintext认证 props.put("security.protocol","SASL_PLAINTEXT"); props.put("sasl.mechanism","PLAIN"); producer = new KafkaProducer<>(props); this.topic = topic; this.isAsync = isAsync; }
阅读全文
0 0
- kafka认证
- kafka 认证
- kafka权限认证
- Kafka JAAS 安全认证流程
- Kafka JAAS Plain SASL 安全认证配置
- 集群Kafka配置SASL用户名密码认证
- 集群Kafka配置SASL用户名密码认证
- 建kafka gradle工程解决证书认证问题
- Kafka使用SASL_PLAINTEXT实现简易的用户认证及权限
- 单机节点Kafka配置SASL用户名密码认证
- 单机节点Kafka配置SASL用户名密码认证
- Kafka安全认证SASL下附带工具的配置使用
- Kafka安全认证SASL下附带工具的配置使用
- Kafka配置SASL身份认证及权限实现文档
- kafka增加SSL认证的Producer客户端代码示例
- Java Api Consumer 连接启用Kerberos认证的Kafka
- Kafka加Kerberos认证后,执行命令行报:Authentication failure
- Kafka 0.10.0 SASL/PLAIN身份认证及权限实现
- Python 必须凑够3个线程,才一起执行
- 转]SpringMVC Controller介绍及常用注解
- spring web应用的异常处理
- 欢迎使用CSDN-markdown编辑器
- Sublime Text3 3143 注册码
- kafka 认证
- java变量类型之间的转换关系
- java使用socket实现一个多线程web服务器
- Mysql 绑定内部IP的设置方法
- nodejs使用body-parser解析表单数据
- UVALive
- C++之--拷贝(复制)构造函数
- Error: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually.
- 调用相机,相册,剪裁完成的代码