apache-kafka - 只允许特定主机/IP的消费者访问kafka主题

标签 apache-kafka kafka-consumer-api apache-kafka-security

我们有一个基于 Kafka 的系统,以及一个致力于该系统的大型开发团队。我们仍处于开发和测试阶段,尚未投入生产。对于大多数本地开发测试,我们不需要使用 Kafka 消息,但我们确实需要在 QA 环境中与数据库和其他应用程序进行交互,因此开发人员在运行其应用程序时将使用 QA 配置文件属性(这些是 Java Spring Boot)应用)。

问题是,当开发人员使用 QA 配置文件在本地运行应用程序时,本地应用程序会消耗来自 QA 环境的消息并中断测试。我们还有一个更大的担忧,当我们投入生产时,开发人员可能会使用生产配置文件运行以便能够查看一些生产数据,并无意中消耗生产消息,从而导致严重问题。

有没有办法将 Kafka 配置为仅允许某些主机/IP 消费其消息?

最佳答案

您需要配置Authorisation using ACL

如何启用 ACL:

在您的 server.properties 文件中,您需要通过添加以下行来创建 Authorizer:

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer

现在您需要遵循文档,以便根据您的用例正确配置 ACL。

添加 ACL

现在,一切就绪后,假设您有一个名为 testTopic 的主题,您只想向主机上名为 Bob 的用户授予读写访问权限IP 197.5.6.1:

bin/kafka-acls \
  --authorizer-properties zookeeper.connect=localhost:2181 \
  --add \
  --allow-principal User:'Bob' --allow-host '197.5.6.1' \
  --operation Read --operation Write \
  --topic testTopic \

关于apache-kafka - 只允许特定主机/IP的消费者访问kafka主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62092743/

相关文章:

apache-kafka - 是否可以创建具有动态分区计数的kafka主题?

apache-kafka - Kafka-对数结束偏移(LEO)与高水印(HW)之间的差异

apache-kafka - Kafka 消费者订阅与分配的分区

ssl - 启用 SSL 加密和身份验证后,Kafka Avro 控制台消费者无法正常工作

java - Kafka Avro 使用模式注册表序列化/反序列化为具体类型失败

java - Kafka 流消费为 CSV

java - 如何修复 'Offset commit failed on partition com.application.iot.measure.stage-0 at offset 1053078427: The request timed out.'

java - 如何获取 kafka 主题分区的最后/结束偏移量?

apache-kafka - 在 'Server' 中找不到名为 '/kafka/kafka_2.12-2.3.0/config/zookeeper_jaas.conf' 的 JAAS 配置节

ssl - Apache kafka 消费者 java.security.cert.CertificateException : No subject alternative names present