【问题标题】:How to secure kafka Topic with username and password from CLI/command line?如何使用 CLI/命令行中的用户名和密码保护 kafka 主题?
【发布时间】:2020-02-19 10:25:16
【问题描述】:

我已经在我的 Windows 10 上安装了 Docker,还安装了 Kafka。我在 Kafka 集群中创建了一个“test”主题。现在我想用一个简单的用户名和密码来保护主题。我对 Kafka 非常陌生,任何帮助都将不胜感激。

要运行 Kafka 命令,我使用的是 Windows“Power Shell”。

我尝试在命令行上运行一些命令

创建主题:- kafka-topics --create --topic test --partitions 1 --replication-factor 1 --if-not-exists --zookeeper zookeeper:2181

为了保护主题,我使用了命令: kafka-acls --topic test --producer --authorizer-properties --zookeeper zookeeper:2181 --add --allow-principal User:alice

不幸的是,它说“bash: afka-acl: command not found

我需要在 Kafka 配置文件中包含任何内容吗?或者是否可以只从 power shell 运行命令并保护主题?

用用户名和密码保护与ACL相同还是不同?

【问题讨论】:

    标签: apache-kafka kafka-consumer-api apache-kafka-connect kafka-producer-api apache-kafka-security


    【解决方案1】:

    Kafka 支持使用

    对来自客户端(生产者和消费者)的代理连接进行身份验证

    SSL

    SASL (Kerberos) 和 SASL/PLAIN

    这需要对代理和客户端进行配置更改。 你所要求的似乎是简单的 SASL。但是,如上所述,这不能通过 CLI 完成,并且需要进行配置更改。如果您按照文档链接中的步骤进行操作,则非常简单。

    ACL 是一种授权,它定义了哪些用户可以访问哪些主题。看到这个link

    【讨论】:

    • @asolanki --- 感谢您提供简洁明了的信息。但是我可以在哪个文件中为 SASL/PLAIN 添加这个配置?我只是指这里提供的这个例子:docs.confluent.io/current/quickstart/ce-docker-quickstart.html#
    • 在他们要求添加的 SASL 文档中:-"Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf" 文件到每个代理,但我必须在哪里添加它。
    • 可能您已经解决了它,但如果有人仍然想知道,您可能需要将其添加到/etc/systemd/system/kafka.service。将您的配置添加到 [Service] 行下方Environment="KAFKA_OPTS=-Djava.security.auth.login.config=path/jaas.conf" 然后重新启动 kafka 服务
    猜你喜欢
    • 2011-06-20
    • 2016-10-03
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 1970-01-01
    相关资源
    最近更新 更多