我有一个 3 节点不安全的 kafka(v0.10.2.1) 集群,禁用了主题自动创建和删除功能,如下所示server.properties
auto.create.topics.enable=false
delete.topic.enable=true
然后使用以下命令在集群上创建/更改主题bin/kafka-topics.sh
。然而,看起来任何人一旦知道端点就可以在集群上创建主题。
有没有办法将主题创建/更改锁定到特定主机以防止滥用?
Edit 1:
由于建议使用 ACL,我尝试使用以下命令将主题创建限制为选择主机kafka-acls.sh
.
添加以下内容后我重新启动了代理server.properties
, .
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=true
我尝试了以下方法来限制本地主机上的主题创建。
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 的安全。
ACLs: http://kafka.apache.org/documentation.html#security_authz http://kafka.apache.org/documentation.html#security_authz
可以使用 SSL 或 SASL 或通过插入自定义提供程序来完成身份验证,请参阅同一文档的前面部分。
禁用自动创建不是一种访问控制机制,它仅意味着尝试从主题生产或消费不会自动创建它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)