保护对kafka connect的restapi的访问

bvjveswy  于 2021-06-08  发布在  Kafka
关注(0)|答案(3)|浏览(338)

kafka connect的rest api未得到保护和验证。由于没有经过身份验证,任何人都可以轻松访问连接器或任务的配置。由于这些配置可能包含关于如何访问源系统[在sourceconnector的情况下]和目标系统[在sinkconnector的情况下]的信息,有没有标准的方法来限制对这些API的访问?
谢谢和问候。普拉巴

oxf4rvwz

oxf4rvwz1#

这是一个未来需要改进的已知领域,但目前您应该在kafka connect计算机上使用防火墙,并使用api管理工具(apigee等)或反向代理(haproxy、nginx、,等)以确保https在您可以配置访问控制规则的端点处终止,然后让防火墙仅接受来自安全代理的连接。对于某些产品,防火墙、访问控制和ssl/tls终止功能都可以在数量较少的产品中完成。

hwazgwia

hwazgwia2#

从kafka 1.1.0开始,您可以为kafka connect rest api设置ssl和ssl客户端身份验证。详见kip-208。

ztmd8pv5

ztmd8pv53#

在kafka2.1.0中,可以为kafkaconnect的rest接口配置http基本身份验证,而无需编写任何自定义代码。
由于rest扩展机制的实现,这一点成为现实(参见kip-285)。
简而言之,配置过程如下:
将扩展类添加到辅助进程配置文件:

rest.extension.classes = org.apache.kafka.connect.rest.basic.auth.extension.BasicAuthSecurityRestExtension

创建jaas配置文件(即。 connect_jaas.conf )对于应用程序名称“kafkaconnect”:

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后,如果没有基本身份验证,您将无法使用restapi。
请记住,使用的类是示例,而不是产品级特性。
链接:
连接配置
基本安全性扩展
JAASBASICAUTH过滤器
属性FileLoginModule

相关问题