美文网首页
KAFKA SASL

KAFKA SASL

作者: EdgeE | 来源:发表于2021-03-22 21:04 被阅读0次

适用于kafka_2.11-1.1.1版本
第1步
将kafka_client_jaas.conf/kafka_server_jaas.conf/kafka_zoo_jaas.conf三个文件放入kafka的config文件夹中,文件中配置用户,admin用户必须配置。

kafka_client_jaas.conf内容如下
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};
kafka_server_jaas.conf内容如下
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin"
user_test="test#2018";
};
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};

Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};
kafka_zoo_jaas.conf内容如下
ZKServer{
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin";
};
第2步
修改kafka的bin文件夹中的zookeeper-server-start.sh,
添加:
export KAFKA_OPTS=" -Djava.security.auth.login.config=/data/application/kafka_2.11-1.1.1/config/kafka_zoo_jaas.conf -Dzookeeper.sasl.serverconfig=ZKServer"

第3步
修改kafka的bin文件夹中的kafka-server-start.sh,
添加:
export KAFKA_OPTS=" -Djava.security.auth.login.config=/data/application/kafka_2.11-1.1.1/config/kafka_server_jaas.conf"

第4步
修改kafka的bin文件夹中的kafka-console-producer.sh
添加:
export KAFKA_OPTS=" -Djava.security.auth.login.config=/data/application/kafka_2.11-1.1.1/config/kafka_client_jaas.conf"

第5步
修改kafka的bin文件夹中的kafka-console-consumer.sh
添加:
export KAFKA_OPTS=" -Djava.security.auth.login.config=/data/application/kafka_2.11-1.1.1/config/kafka_client_jaas.conf"

第6步
修改kafka的config文件夹中的consumer.properties
添加:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
第7步
修改kafka的config文件夹中的producer.properties
添加:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
第8步
修改kafka的config文件夹中的zookeeper.properties
添加:

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
第9步
修改kafka的config文件夹中的server.properties
修改:
listeners=SASL_PLAINTEXT://192.168.1.115: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

delete.topic.enable=true
auto.create.topics.enable=false
第10步
启动zookeeper服务
执行
sh bin/zookeeper-server-start.sh config/zookeeper.properties

第11步
启动kafka服务
执行
sh bin/kafka-server-start.sh config/server.properties

第12步
查看topic列表
执行
sh bin/kafka-topics.sh --list --zookeeper localhost:2181

第13步
创建新的topic
执行
sh bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 16 --topic test

第14步
给admin用户授权
执行
sh bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:admin --group=* --topic=*

第15步
给用户test授予某个topic的读写的权限
执行
sh bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:test --operationRead --operationWrite --topic test --group=*
说明:
控制读写:–operationRead–operationWrite
控制消费组:不控制组 --group=*,指定消费组 --grouptest-comsumer-group

第16步
移除权限
执行
sh bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --remove --allow-principal User:test --allow-host 192.168.1.101 --operationRead --operationWrite --topic test

第17步
列出topic为test的所有权限账户
执行
sh bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --list --topic test

第18步
测试启动消费者
执行
sh bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.115:9092 --topic test --from-beginning --consumer.config config/consumer.properties

第19步
测试启动生产者
执行
sh bin/kafka-console-producer.sh --broker-list 192.168.1.115:9092 --topic test --producer.config config/producer.properties

第20步
启用kafka-manager,需要使用最新版本1.3.3.21,

链接:https://pan.baidu.com/s/1H6rMOdKrEJ59pivgCkSdjg
提取码:vreq
第21步
将my-jaas.conf移到kafa-manager的conf文件夹中
my-jaas.conf内容如下:

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

Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};
第22步
修改kafa-manager的conf文件夹中的consumer.properties,

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
第23步
修改kafa-manager的conf文件夹中的application.conf
kafka-manager.consumer.properties.file=(上面修改的consumer.properties)

第24步
启动kafka-manager
bin/kafka-manager -Djava.security.auth.login.config=conf/my-jaas.conf -Dconfig.file=conf/application.conf

相关文章

网友评论

      本文标题:KAFKA SASL

      本文链接:https://www.haomeiwen.com/subject/aduthltx.html