3

您知道从 Kafka 中删除所有可用 ACL 的任何命令吗?如果您将文字 ACL 添加到 Kafka,当您想要删除它时,您不能使用前缀或 ...(它与文字 ACL 不匹配)。

谢谢。

4

3 回答 3

3

您可以使用--removekafka-acl 工具的标志,它会删除所有应用于主题的 acl。只需在所有主题中循环命令即可。

对于 topicList 中的每个 TOPIC:

./kafka-acls --authorizer kafka.security.auth.SimpleAclAuthorizer \
--authorizer-properties zookeeper.connect=$ZOOKEEPER \
--topic $TOPIC --remove
于 2020-11-20T22:40:48.370 回答
1

您可以使用kafka-acls --bootstrap-server kafka:9092 --remove --topic *. --topics参数接受通配符:

--topic <String: topic>                  topic to which ACLs should be added or 
                                           removed. A value of * indicates ACL  
                                           should apply to all topics.
于 2021-05-05T12:49:43.817 回答
0

建议的解决方案对我不起作用,除非它们完全匹配,否则不会删除 ACL。

我的解决方法是直接使用 AdminClient:

        try (AdminClient adminClient = AdminClient.create(props)) {
            adminClient.deleteAcls(
                    List.of(new AclBindingFilter(ResourcePatternFilter.ANY, AccessControlEntryFilter.ANY)));
        }
于 2022-02-23T11:39:36.997 回答