Apache kafka 限制主题创建/更改

Apache kafka 限制主题创建/更改,apache-kafka,Apache Kafka,我有一个3节点的不安全kafka(v0.10.2.1)集群,主题自动创建和删除被禁用,在server.properties auto.create.topics.enable=false delete.topic.enable=true 然后使用bin/kafka Topics.sh在集群上创建/更改主题。但是,似乎任何人都可以在知道结束点后在集群上创建主题 有没有办法锁定特定主机的主题创建/更改以防止滥用 编辑1: 由于建议使用ACL,我试图限制主题创建,以使用kafka acls.sh选

我有一个3节点的不安全kafka(v0.10.2.1)集群,主题自动创建和删除被禁用,在
server.properties

auto.create.topics.enable=false
delete.topic.enable=true
然后使用
bin/kafka Topics.sh
在集群上创建/更改主题。但是,似乎任何人都可以在知道结束点后在集群上创建主题

有没有办法锁定特定主机的主题创建/更改以防止滥用


编辑1
由于建议使用ACL,我试图限制主题创建,以使用
kafka acls.sh
选择主机

在将以下内容添加到
server.properties
之后,我重新启动了代理

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer                                           
allow.everyone.if.no.acl.found=true
我尝试了以下方法来限制在localhost上创建主题

 bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:* --cluster --operation Create --allow-host 127.0.0.1
但是,我仍然能够使用带有正确端点的
kafka topics.sh
从其他主机创建主题。是否在没有身份验证的情况下不能使用ACL



您需要使用访问控制列表(ACL)来限制此类操作,这意味着知道调用方是谁,因此您首先需要使用身份验证机制来保护kafka

ACL:

可以使用SSL或SASL或插入自定义提供程序来完成身份验证,请参阅同一文档的前面部分


禁用自动创建不是一种访问控制机制,它只意味着尝试生成或使用某个主题不会自动创建该主题。

根据您的建议更新了该问题,Michal您是否掌握了窍门?似乎kafka允许您创建主题,尽管有ACL,但随后会限制您对其进行管理