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
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
-Djava.security.auth.login.config=/your/path/connect_jaas.conf
重新启动 Kafka Connect 后,您将无法在没有基本身份验证的情况下使用 REST API。
请记住,使用的类只是示例而不是生产就绪功能。
链接:
关于rest - 保护对 Kafka Connect 的 REST API 的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45250575/