rest - 保护对 Kafka Connect 的 REST API 的访问

标签 rest apache-kafka apache-kafka-connect

Kafka Connect 的 REST API 没有得到保护和验证。
由于未经过身份验证,因此任何人都可以轻松访问连接器或任务的配置。由于这些配置可能包含关于如何访问源系统 [在 SourceConnector 的情况下] 和目标系统 [在 SinkConnector 的情况下],是否有标准方法来限制对这些 API 的访问?

最佳答案

在 Kafka 2.1.0 中,可以为 Kafka Connect 的 REST 接口(interface)配置 http 基本身份验证,而无需编写任何自定义代码。

由于 REST 扩展机制的实现,这成为现实(参见 KIP-285)。

简而言之,配置过程如下:

  • 将扩展类添加到工作配置文件:
  • rest.extension.classes = org.apache.kafka.connect.rest.basic.auth.extension.BasicAuthSecurityRestExtension
    
  • 为应用程序名称“KafkaConnect”创建 JAAS 配置文件(即 connect_jaas.conf):
  • KafkaConnect {
       org.apache.kafka.connect.rest.basic.auth.extension.PropertyFileLoginModule required
                 file="/your/path/rest-credentials.properties";
    };
    
  • 创建 rest-credentials.properties上述目录中的文件:
  • user=password
    
  • 最后,通知 java 你的 JAAS 配置文件,例如,通过向 java 添加命令行属性:
  • -Djava.security.auth.login.config=/your/path/connect_jaas.conf 
    

    重新启动 Kafka Connect 后,您将无法在没有基本身份验证的情况下使用 REST API。

    请记住,使用的类只是示例而不是生产就绪功能。

    链接:
  • Connect configuratin
  • BasicAuthSecurityRestExtension
  • JaasBasicAuthFilter
  • PropertyFileLoginModule
  • 关于rest - 保护对 Kafka Connect 的 REST API 的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45250575/

    相关文章:

    node.js - Twiml POST 请求上的参数为空

    json - POST 请求负载的内容类型

    python - Paypal Rest API 不断返回格式错误的 json 错误

    javascript - 无法从选择列表中选择值

    apache-kafka - UnsatisfiedLinkError 向 kafka 发送压缩(snappy)消息时出现 UnsatisfiedLinkError

    python - 使用 confluence-kafka-python 时 Kafka 错误 INVALID_ARG 无此类配置属性 sasl.mechanisms

    apache-spark - 组中的一个 Kafka 消费者始终拒绝协调器,但仅当 Spark 和 Kafka 都在 EC2 中时

    maven - 从maven部署到nexus时指定版本

    java - 回复kafka模板连接 header (CorrelationId)未发送到Google pub sub

    git - Publisher 如何将消息发布到 Apache Kafka 中的主题?