当前位置: 首页 > 知识库问答 >
问题:

保护对Kafka Connect的REST API的访问

步浩壤
2023-03-14

Kafka Connect的REST API没有经过安全保护和身份验证。由于没有经过身份验证,连接器或任务的配置很容易被任何人访问。由于这些配置可能包含如何访问源系统[在SourceConnector的情况下]和目标系统[在SinkConnector的情况下],是否有一种标准的方法来限制对这些API的访问?

共有3个答案

李意致
2023-03-14

从Kafka 1.1.0开始,您可以为Kafka Connect REST API设置SSL和SSL客户端身份验证。详见KIP-208。

傅琦
2023-03-14

这是一个已知的领域,将来需要改进,但现在你应该在Kafka Connect机器上使用防火墙和API管理工具(Apigee等)或反向代理(haproxy,nginx等)来确保HTTPS在可以配置访问控制规则的endpoint终止,然后让防火墙只接受来自安全代理的连接。对于某些产品,防火墙、访问控制和 SSL/TLS 终止功能都可以在少数数量的产品中完成。

段恩
2023-03-14

在Kafka 2.1.0中,可以为Kafka Connect的REST接口配置超文本传输协议基本身份验证,而无需编写任何自定义代码。

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

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

    < li >将扩展类添加到工作配置文件:
rest.extension.classes = org.apache.kafka.connect.rest.basic.auth.extension.BasicAuthSecurityRestExtension
KafkaConnect {
   org.apache.kafka.connect.rest.basic.auth.extension.PropertyFileLoginModule required
             file="/your/path/rest-credentials.properties";
};
user=password
-Djava.security.auth.login.config=/your/path/connect_jaas.conf 

重启Kafka Connect后,如果没有基本认证,将无法使用REST API。

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

链接:

  • 连接配置
  • BasicAuthSecurityRestExtension
  • JaasBasicAuthFilter
  • 属性文件登录模块
 类似资料:
  • 我想知道人们在使用Spring Cloud Config时是如何处理安全方面的。我计划将Spring Cloud Config Server和Client与Spring Boot一起使用。从实现的角度来看,这是非常直接的,但是您如何处理向每个开发人员披露密码/访问权限的风险。例如,您运行一个包含所有环境配置的中央配置服务器。在配置客户端应用程序的中,您必须配置/才能访问配置服务器。到目前为止还不错

  • 问题内容: 我想了解以下示例中的情况(通过包从子类外部访问受保护的成员)。 我知道对于包外部的类,子类只能通过继承才能看到受保护的成员。 有两个包:和。 : : : 可以理解,中的方法可以访问,因为受保护的成员只能通过继承来访问。 我的问题是,为什么是方法,通过在基准访问时,工作正常的方法 ,但 将无法正常工作 通过访问时的参考? 问题答案: 该类中的代码被允许通过type的引用访问受保护的成员。

  • 问题内容: 我有两节课。 类具有受保护的方法,是的实例。 Class 与class在同一包中。 我正在尝试访问,但正在获取… 怎么了? 问题答案: 编译器应该捕获这样的错误。当您显然在运行时得到此消息时,发生了一些奇怪的事情。可能您已更改了源代码,但已完全重新编译。 另一个潜在但晦涩的问题是通过不同的类加载器加载类。即使包名称相同,从不同的类加载器加载的类也将位于不同的包中(以与由不同的类加载器加

  • 问题内容: 我有一个可通过HTTP访问的简单Web API,一些相应的移动应用程序正在读取该数据。现在有人反编译了一个应用程序/嗅探了HTTP流量,将URL转到了我的Web API,并建立了自己的客户端,就像我的客户端一样。 如何确保仅我自己的客户对API的访问权限?即使想到有人在反编译我的应用程序。 服务器和客户端代码更改是一个选择! 问题答案: 服务器和客户端代码更改是一个选择! 首先,您无法

  • 这个问题和这个问题相似: 开发API-如何使其安全? 我想要的是针对服务器上的RESTAPI开发一个基于jQuery的查询,以检索一些数据以显示在网页上。 我希望网页和jQuery的授权用户能够访问这些数据,但不希望其他人能够复制该jQuery并将其放在他们的网站上以任何方式访问这些数据。明确地说,这一切都发生在浏览器的客户端——没有任何服务器端代码参与... 如果可能的话,实现这一目标的正确策略

  • 问题内容: 我在理解Java(或其背后的设计)中的受保护的访问修饰符时遇到了一些麻烦。我认为这意味着程序包访问和通过继承包含抽象成员的类的对象的访问。 我编写了以下示例代码。我看到,如果未注释,注释掉的行会产生编译错误。为什么我可以通过Second中的Second对象而不是Second中的First对象访问pro? 问题答案: 该网页链接@MadProgrammer给出了一个体面的解释: “ pr