我们有一个基于Kafka的系统,以及正在使用该系统的大量开发人员。我们仍处于开发和测试阶段,尚未投入生产。对于大多数本地开发人员测试,我们不需要使用Kafka消息,但是我们需要与QA环境中的数据库和其他应用程序进行交互,因此开发人员在运行其应用程序时将使用QA配置文件属性(这些是Java Spring Boot)应用)。
问题在于,当开发人员使用QA配置文件在本地运行应用程序时,本地应用程序会消耗来自QA环境的消息并破坏测试。我们还有一个更大的担忧,那就是当我们投入生产时,开发人员可能会运行生产配置文件,以便能够查看一些生产数据,并无意间消耗了生产消息,从而导致严重的问题。
是否可以将Kafka配置为仅允许某些主机/ IP消费其消息?
答案 0 :(得分:2)
您需要配置Authorisation using ACL。
如何启用ACL:
在您的server.properties
文件中,您需要通过添加以下行来创建Authorizer
:
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
现在,您需要按照文档进行操作,以根据用例正确配置ACL。
添加ACL
现在一切就绪,我们假设您有一个名为testTopic
的主题,您只想向IP为{{1}的主机授予名为Bob
的用户读写权限}:
197.5.6.1