Kafka配置2--Windows下配置Kafka的SASL-PLAIN身份验证
Kafka配置4--Windows下配置Kafka的SSL证书
Kafka配置5--Windows下配置Kafka的集群+SASL+SSL
Kafka配置6--Windows下设置和增加SASL用户或用户权限
在前面的文章中,我们给Zookeeper和Kafka设置了登录验证账户,分别在zk_server_jaas.conf和kafka_server_jaas.conf文件中设置了相应的账户,如下所示。
单纯的只是在这2个文件中设置是不起作用的,客户端在使用的时候是没有任何权限的,所以接下来我们还需要通过Kafka的命令设置每个账户的主题、读和写等权限,这样在客户端(如C#)使用某账户时才有相应的操作权限。
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin123456"
user_quber="quber123456"
user_quber1="quber123456"
user_quber2="quber123456"
user_scyjTestUser1="quber123456"
user_scyjTestUser2="quber123456"
user_scyjTestUser3="quber123456";
};
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin123456"
user_admin="admin123456"
user_quber="quber123456"
user_quber1="quber123456"
user_quber2="quber123456"
user_scyjTestUser1="quber123456"
user_scyjTestUser2="quber123456"
user_scyjTestUser3="quber123456";
};
注意:
以下所有命令执行,都是在CMD窗口中执行的,不管Kafka是配置的单机模式还是集群模式,只需要将CMD窗口随便定位到其中一个Kafka的安装目录即可。
1、查询主题和用户权限
1.1、查询主题
查询192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183这3个集群的主题
.\bin\windows\kafka-topics.bat --zookeeper 192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --list
1.2、查询权限
查询192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183这3个集群的用户权限,一下命令为查询在主题TestTopic1下有哪些用户权限
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --list --topic TestTopic1
2、全新配置
我们在前面的文章中提到了D:\Net_Program\Net_KafkaConfig目录下有zk_server_jaas.conf和kafka_server_jaas.conf文件,这2个文件就是存储用户和密码的,如果是新配置或者中途新增加用户,都需要在这2个文件中先配置增加好
2.1、创建主题
创建一个集群主题,名称为TestTopic1
.\bin\windows\kafka-topics.bat --create --zookeeper 192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --replication-factor 1 --partitions 1 --topic TestTopic1
2.1、设置用户quber的读和写权限
设置quber的主题权限为TestTopic1,读取的分组权限为TestGroup1
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:quber --operation Read --operation Write --topic TestTopic1
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:quber --operation Read --group TestGroup1
2.2、设置quber1的读权限
设置quber1的主题权限为TestTopic1,读取的分组权限为TestGroup2
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:quber1 --operation Read --topic TestTopic1
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:quber1 --operation Read --group TestGroup2
2.3、设置quber2的写权限
设置quber2的主题权限为TestTopic1
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:quber2 --operation Write --topic TestTopic1
2.4、重启Kafka服务
在设置完毕后需要重启Kafka服务才生效
3、中途新增加用户
首先需要我们在D:\Net_Program\Net_KafkaConfig目录中的zk_server_jaas.conf和kafka_server_jaas.conf文件中增加需要增加的用户和密码,然后才使用下列命令设置增加用户的权限
scyjTestUser1:读和写,主题:SCYJ-TEST-TOPIC1,读的分组:SCYJ-TEST-GROUP1
scyjTestUser2:读,主题:SCYJ-TEST-TOPIC1,读的分组:SCYJ-TEST-GROUP2
scyjTestUser3:写,主题:SCYJ-TEST-TOPIC1
3.1、创建主题
.\bin\windows\kafka-topics.bat --create --zookeeper 192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --replication-factor 1 --partitions 1 --topic SCYJ-TEST-TOPIC1
3.2、设置用户scyjTestUser1的读和写权限
设置scyjTestUser1的主题权限为SCYJ-TEST-TOPIC1,读取的分组权限为SCYJ-TEST-GROUP1
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:scyjTestUser1 --operation Read --operation Write --topic SCYJ-TEST-TOPIC1
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:scyjTestUser1 --operation Read --group SCYJ-TEST-GROUP1
3.3、设置scyjTestUser2的读权限
设置scyjTestUser2的主题权限为SCYJ-TEST-TOPIC1,读取的分组权限为SCYJ-TEST-GROUP2
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:scyjTestUser2 --operation Read --topic SCYJ-TEST-TOPIC1
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:scyjTestUser2 --operation Read --group SCYJ-TEST-GROUP2
3.4、设置scyjTestUser3的写权限
设置scyjTestUser3的主题权限为SCYJ-TEST-TOPIC1
.\bin\windows\kafka-acls.bat --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183 --add --allow-principal User:scyjTestUser3 --operation Write --topic SCYJ-TEST-TOPIC1
3.5、重启Kafka服务
在设置完毕后需要重启Kafka服务才生效
到此,整个Kafka的用户权限就设置完毕了