限制主题创建/更改

时间:2017-07-06 19:21:49

标签: 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,。

后重新启动了代理
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吗?

1 个答案:

答案 0 :(得分:2)

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

ACL:http://kafka.apache.org/documentation.html#security_authz

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

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