Apache kafka 限制主题创建/更改
我有一个3节点的不安全kafka(v0.10.2.1)集群,主题自动创建和删除被禁用,在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选
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,但随后会限制您对其进行管理