在CDP平台上安全的使用Kafka Connect

这篇具有很好参考价值的文章主要介绍了在CDP平台上安全的使用Kafka Connect。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在这篇文章中,将演示如何将 Kafka Connect 集成到 Cloudera 数据平台 (CDP) 中,从而允许用户在 Streams Messaging Manager 中管理和监控他们的连接器,同时还涉及安全功能,例如基于角色的访问控制和敏感信息处理。如果您是将数据移入或移出 Kafka 的开发人员、管理员或安全专家,那么这篇文章适合您。但在我介绍细节之前,让我们先从基础开始。

Kafka Connect

就本文而言,知道 Kafka Connect 是一个强大的框架就足够了,它可以大规模地将数据传入和传出 Kafka,同时需要最少的代码,因为 Connect 框架已经处理了连接器的大部分生命周期管理。事实上,对于最流行的源和目标系统,已经开发了可以使用的连接器,因此不需要代码,只需要配置。

核心构建块是:连接器,它协调单个源和单个目标(其中一个是 Kafka)之间的数据移动;负责实际数据移动的任务;以及管理所有连接器生命周期的工作人员。

Kafka 允许本地支持部署和管理连接器,这意味着在启动 Connect 集群后提交连接器配置和/或管理已部署的连接器可以通过 Kafka 公开的 REST API 完成。Streams Messaging Manager (SMM) 建立在此之上,并提供了一个用户友好的界面来替换 REST API 调用。

Streams Messaging Manager(SMM)

免责声明:本文中的描述和屏幕截图是使用 CDP 7.2.15 制作的,因为 SMM 正在积极开发中;支持的功能可能会因版本而异(例如可用的连接器类型)。

SMM 是 Cloudera 用于监控 Kafka 及相关服务并与之交互的解决方案。SMM UI 由多个选项卡组成,每个选项卡都包含不同的工具、功能、图表等,您可以使用它们来管理和获得有关 Kafka 集群的清晰见解。本文重点介绍 Connect 选项卡,该选项卡用于与 Kafka Connect 进行交互和监控。

创建和配置连接器

在进行任何监控之前,第一步是使用右上角的 New Connector 按钮创建一个连接器,该按钮导航到以下视图:

在CDP平台上安全的使用Kafka Connect

左上角显示了两种类型的连接器模板:在CDP平台上安全的使用Kafka Connect     将数据摄取到的源和从 Kafka 中提取数据的接收器。默认情况下,源模板选项卡处于选中状态,因此会显示我们集群中可用的源连接器模板。请注意,此页面上的卡片并不代表部署在集群上的连接器实例,而是表示可用于部署在集群上的连接器类型。例如,有一个 JDBC Source 连接器模板,但这并不意味着当前有一个 JDBC Source 连接器将数据移动到 Kafka,它只是意味着所需的库已经到位以支持部署 JDBC Source 连接器。

选择连接器后,将显示连接器表单。

在CDP平台上安全的使用Kafka Connect

连接器 表单用于配置您的连接器。CDP 中默认包含的大多数连接器都附带示例配置以简化配置。模板中包含的属性和值取决于所选的连接器。通常,每个示例配置都包含连接器工作最可能需要的属性,并且已经存在一些合理的默认值。如果模板可用于特定连接器,则在您选择连接器时它会自动加载到连接器表单中。上面的示例是 Debezium Oracle Source 连接器的预填充表单。

让我们看看连接器表单在配置连接器时提供的功能数量。

添加、删除和配置属性

表单中的每一行代表一个配置属性及其值。可以通过使用属性名称及其配置值填充可用条目来配置属性。可以使用加号/垃圾箱图标添加和删除新属性。

在CDP平台上安全的使用Kafka Connect

查看和编辑大型配置值

您为某些属性配置的值可能不是短字符串或整数;一些值可以变得相当大。例如,无状态 NiFi 连接器需要flow.snapshot属性,其值是 JSON 文件的全部内容(想想:数百行)。可以通过单击“编辑”按钮在模式窗口中编辑此类属性。在CDP平台上安全的使用Kafka Connect

隐藏敏感值

默认情况下,属性以明文形式存储,因此任何有权访问 SMM 并具有适当授权的人都可以看到它们。在CDP平台上安全的使用Kafka Connect

配置中可能存在用户不想从系统中泄露的密码和访问密钥等属性;为了保护系统中的敏感数据,可以使用 Lock 图标将这些数据标记为机密**,**这可以实现两件事:

  • 该属性的值将隐藏在 UI 上。

  • 该值将被加密并以安全的方式存储在后端。

注意:标记为机密的属性无法使用“编辑”按钮进行编辑。

稍微深入了解一下技术细节,不仅对值进行了简单的加密,而且用于加密值的加密密钥也用全局加密密钥包装,以增加一层保护。即使全局加密密钥泄露,加密的配置也可以很容易地重新加密,用 Cloudera 提供的工具替换旧的全局密钥。有关更多信息,请参阅Kafka Connect Secrets 存储。

导入和增强配置

如果您已经准备好本机 的Kafka Connect 配置,则可以使用 Import Connector Configuration 按钮复制和粘贴它,或者使用模式窗口从文件系统中浏览它。在CDP平台上安全的使用Kafka Connect

此功能对于将 Kafka Connect 工作负载迁移到 CDP 中特别有用,因为只需单击一个按钮即可导入现有的连接器配置。

在导入时,甚至可以使用“ 导入和增强”按钮来增强配置。增强将添加最可能需要的属性,例如:

  • 与示例配置相比缺少的属性。

  • StatelessNiFi 连接器的 flow.snapshot 的属性。

在CDP平台上安全的使用Kafka Connect

验证配置

在右上角,您可以看到“验证”按钮。在部署连接器之前验证配置是强制性的。如果您的配置有效,您将看到“配置有效”消息,并且 将启用下一步按钮以继续进行连接器部署。如果没有,错误将在连接器表单中突出显示。通常,您会遇到四种类型的错误:

  • 一般配置错误与特定属性无关的错误出现在错误部分的表单上方。

  • 缺少属性有关缺少配置的错误也出现在错误部分,带有实用程序按钮添加缺少的配置,这正是这样做的:将缺少的配置添加到表单的开头。

  • 特定于属性的错误特定于属性的错误(显示在相应的属性下)。

  • 多行错误如果单个属性有多个错误,则会在该属性下方显示多行错误。

在CDP平台上安全的使用Kafka Connect

监控

为了演示 SMM 对 Kafka Connect 的监控功能,我设置了两个 MySql 连接器:“sales.product_purchases”和“monitoring.raw_metrics”。现在这篇文章的目的是展示 Kafka Connect 是如何集成到 Cloudera 生态系统中的,所以我不会深入介绍如何设置这些连接器,但是如果你想跟随你可以在这些文章中找到详细的指导:

MySQL CDC 与 CDP 公共云中的 Kafka Connect/Debezium

在 Cloudera 环境中使用安全的 Debezium 连接器

现在让我们深入了解一下我之前开始创建连接器的“连接”页面。在连接器页面上有连接器的摘要以及一些整体统计信息,例如有多少连接器正在运行和/或失败;这有助于一目了然地确定是否有任何错误。

在CDP平台上安全的使用Kafka Connect

在总体统计信息部分下方有三列,一列用于 Source Connectors,一列用于 Topics **,**另一列用于 Sink Connectors。第一个和最后一个代表已部署的连接器,而中间的一个显示这些连接器与之交互的主题。

在CDP平台上安全的使用Kafka Connect

要查看哪个连接器连接到哪个主题,只需单击连接器,就会出现一个图表。

在CDP平台上安全的使用Kafka Connect

除了基于连接器状态/名称进行过滤和查看连接器类型之外,一些用户甚至可以通过将鼠标悬停在各自的磁贴上来对连接器执行快速操作。

在CDP平台上安全的使用Kafka Connect

眼尖的人已经注意到在整体统计部分和连接器部分之间有一个连接器/集群配置文件导航按钮。在CDP平台上安全的使用Kafka Connect

通过单击 Cluster Profile 按钮,可以查看工作人员级别的信息,例如在工作人员上部署了多少连接器、连接器/任务级别的成功/失败率等等。

在CDP平台上安全的使用Kafka Connect

在“连接器”选项卡上有一个带齿轮的图标,按下该图标将导航到“连接器配置文件”页面,可以在其中查看该特定连接器的详细信息。

在CDP平台上安全的使用Kafka Connect

在顶部,可以一目了然地查看评估连接器状态所需的信息,例如状态、正在运行/失败/暂停的任务以及工作人员所在的主机。如果连接器处于故障状态,也会显示导致异常的消息。

在CDP平台上安全的使用Kafka Connect

使用位于右上角的按钮,也可以从此页面(对于某些用户)管理连接器或创建新连接器。

在CDP平台上安全的使用Kafka Connect

在任务部分,任务级别的指标是可见的,例如:任务写入了多少字节,与记录相关的指标,以及任务处于运行或暂停状态的程度,以及发生错误时堆栈错误的踪迹。

在CDP平台上安全的使用Kafka Connect

连接器配置文件 页面有另一个称为连接器设置的选项卡,用户可以在其中查看所选连接器的配置,一些用户甚至可以对其进行编辑。

===

保护 Kafka Connect

保护连接器管理

正如我之前一直暗示的那样,有些操作并非对所有用户都可用。假设有一家公司通过网站销售某种商品。可能有一个团队监控部署网站的服务器,一个监控交易并根据不断增长的需求提高产品价格或在需求下降的情况下设置优惠券的团队。这两支队伍有非常不同的专业技能组合,因此可以合理地预期他们无法修补彼此的连接器。这就是 Apache Ranger 发挥作用的地方。

Apache Ranger 允许通过图形用户界面对各种资源(服务、文件、数据库、表和列)进行授权和审计,并确保授权在 CDP 堆栈组件之间保持一致。在 Kafka Connect 的情况下,它允许对哪个用户或组可以对特定连接器执行哪个操作进行细粒度控制(这些特定连接器可以通过正则表达式确定,因此无需一一列出)。

Kafka Connect 的权限模型如下表所示:

资源

权限

允许用户…

集群

查看

检索有关服务器的信息,以及可以部署到集群的连接器类型

管理

与运行时记录器交互

验证

验证连接器配置

连接器

查看

检索有关连接器和任务的信息

管理

暂停/恢复/重新启动连接器和任务或重置活动主题(这是连接概述页面中间列中显示的内容)

编辑

更改已部署连接器的配置

创建

部署连接器

删除

删除连接器

Ranger 中的每个权限都意味着 Cluster-view 权限,因此不需要显式设置。

在前面的示例中,我使用管理员用户登录,该用户有权对每个连接器执行所有操作,所以现在让我们创建一个用户 ID为mmichelle的用户,该用户是监控组的一部分,并在 Ranger 中配置监控组以拥有每个具有名称匹配正则表达式监控的连接器的权限。* 。

在CDP平台上安全的使用Kafka Connect

现在,在以mmichelle身份登录并导航到连接器页面后,我可以看到名为sales.*的连接器已经消失,并且如果我尝试部署一个名称以监视以外的名称开头的连接器。部署步骤将失败,并显示错误消息。

在CDP平台上安全的使用Kafka Connect

让我们更进一步:销售团队正在成长,现在需要区分分析 Kafka 中数据的分析师、支持监控销售连接器的人员并帮助分析师进行技术查询、可以管理连接器的后端支持人员,和管理员,他们可以根据分析师的需要部署和删除销售连接器。

为了支持这个模型,我创建了以下用户:

团体

用户

连接器匹配正则表达式

权限

销售+分析师

ssamuel

*

没有任何权限

销售+支持

ssarah

sales.*

连接器 –查看

销售+后台

ssebastian

sales.*

连接器 –查看/管理

销售+管理员

sscarlett

sales.*

连接器 -查看/管理/编辑/创建/删除

集群 -验证

如果我使用 sscarlett 登录,我会看到与mmichelle相似的图片;唯一的区别是她可以与名称以“ sales.”开头的连接器进行交互。”。

因此,让我们以ssebastian 身份登录并观察以下按钮已被删除:

  1. 连接器概览和连接器配置文件页面中的新连接器按钮。

  2. 连接器配置文件页面中的删除按钮。

  3. 连接器设置页面上的编辑按钮。

在CDP平台上安全的使用Kafka Connect

ssarah也是如此,但除此之外,她也没有看到:

  1. 连接器概览页面的连接器悬停弹出窗口或连接器配置文件页面上的暂停/恢复/重新启动按钮。

  2. 连接器配置文件的任务部分上的重新启动按钮被永久禁用。

在CDP平台上安全的使用Kafka Connect

更不用说可以登录但甚至看不到单个连接器的 ssamuel 。

这不仅适用于 UI;如果来自销售的用户绕过 SMM UI 并尝试直接通过 Kafka Connect REST API 操作监控组的连接器(或任何其他不允许的连接器),则该人将收到来自后端的授权错误。

保护 Kafka 主题

此时,如果 Sink 连接器停止从 Kafka 后端支持移动消息并且管理员无法检查是否因为没有更多消息生成到主题或其他原因,则没有用户可以直接访问 Kafka 主题资源。Ranger 也有权授予对 Kafka 资源的访问权限。

让我们进入 Ranger UI 上的 Kafka 服务,并为之前用于 Kafka Connect 服务的销售管理员和销售后端组设置适当的权限。我可以授予与*正则表达式匹配的主题的访问权限,但在这种情况下,sscarlet和ssebastian也可能会意外地与监控组的主题进行交互,所以让我们让他们访问production_database.sales.*和sales.*主题.

在CDP平台上安全的使用Kafka Connect

现在,销售连接器与之交互的主题出现在 SMM UI 的主题选项卡上,他们可以使用 Data Explorer 查看它们的内容。

保护连接器对 Kafka 的访问

SMM(和 Connect)使用授权来限制可以管理连接器的用户组。但是,连接器在 Connect Worker 进程中运行,并使用与用户凭据不同的凭据来访问 Kafka 中的主题。

默认情况下,连接器使用 Connect worker 的 Kerberos 主体和 JAAS 配置来访问 Kafka,它对每个 Kafka 资源都具有所有权限。因此,使用默认配置,有权创建连接器的用户可以将该连接器配置为读取或写入集群中的任何主题。

在CDP平台上安全的使用Kafka Connect

为了规范这一点,Cloudera 引入了kafka.connect.jaas.policy.restrict.connector.jaas属性,如果设置为“true”,则禁止连接器使用连接工作者的Principal。

在 Cloudera Manager 中启用此功能后,以前工作的连接器已停止工作,迫使连接器管理员使用sasl.jaas.config属性覆盖连接器工作的Principal:

在CDP平台上安全的使用Kafka Connect

为了修复这个异常,我为连接器 ( sconnector)创建了一个共享用户,并使用以下文章在 Kafka 集群上启用了 PAM 身份验证:

如何配置客户端以安全地连接到 Apache Kafka 集群 - 第 3 部分:PAM 身份验证。

在接收连接器的情况下,客户端配置以consumer.override为前缀;在源连接器的情况下,客户端配置以producer.override为前缀(在某些情况下也可能需要admin.override. )。

所以对于我的 MySqlConnector 我设置

producer.override.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=”sconnector” password=”<secret>”;

这将导致连接器使用 PLAIN 凭据访问 Kafka 主题,而不是使用默认的 Kafka Connect 工作的Principal的身份。

为了避免泄露敏感信息,我还使用锁定图标将producer.override.sasl.jaas.config设置为机密。

不鼓励使用存储在 Kafka Connect Worker 的文件系统上的机密(例如 Kerberos 密钥表文件)进行身份验证,因为无法单独设置连接器的文件访问权限,只能在工作人员级别设置。换句话说,连接器可以访问彼此的文件,从而使用彼此的秘密进行身份验证。

结论

在本文中,我介绍了 Kafka Connect 如何与 Cloudera Data Platform 集成,如何通过 Streams Messaging Manager 创建和管理连接器,以及用户如何利用 CDP 7.2.15 中提供的安全功能。如果您有兴趣并想试用 CDP,您可以通过链接https://www.cloudera.com/campaign/try-cdp-public-cloud.html使用 CDP 公共云,免费试用 60 天。

链接:

保护 JAAS 覆盖

Kafka Connect 秘密存储

如何配置客户端以安全地连接到 Apache Kafka 集群 - 第 3 部分:PAM 身份验证

MySQL CDC 与 CDP 公共云中的 Kafka Connect/Debezium

在 Cloudera 环境中使用安全的 Debezium 连接器

原文作者:Laszlo Hunyady

原文链接:https://blog.cloudera.com/using-kafka-connect-securely-in-the-cloudera-data-platform/文章来源地址https://www.toymoban.com/news/detail-407923.html

到了这里,关于在CDP平台上安全的使用Kafka Connect的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,结构体的基本使用和常见错误在上一篇详细讲解过了,不知道大家都学会了没有。    ⛳️ 今天给大家来个硬菜,教点高

    2024年02月15日
    浏览(48)
  • Windows 10 也能安装Kafka?这篇教程让你轻松掌握!

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇👇 尘缘的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起学习,一起进步!💖💖 1、下载文件:https://www.oracle.c

    2024年02月04日
    浏览(44)
  • VMware环境下使用存储的快照(CDP)功能做数据备份

    目前的IT环境中对数据安全性要求越来越高,核心业务系统的备份肯定是绝对必要的,可以说数据的备份在IT环境中越来越重要。 但是随着系统不断的发展备份上也会遇到一些问题,从我的角度大概遇到过这2种情况: 1.核心业务系统数据量巨大,就会遇到两个最明显的问题,

    2024年01月23日
    浏览(38)
  • 基于Confluent Kafka部署Kafka Connect集群,Kafka Connect集群加载debezium插件

    Confluent Kafka的下载地址: https://www.confluent.io/download/ 下载社区免费版本: 核心参数如下所示: /data/src/confluent-7.3.3/etc/schema-registry/connect-distributed.properties /data/src/confluent-7.3.3/bin/connect-distributed connect-distributed的脚本内容如下所示,可以不需要修改 如果需要导出kafka connector的j

    2024年02月10日
    浏览(39)
  • Kafka——Kafka Connect详解

    Kafka Connect是一个高伸缩性、高可靠性的数据集成工具,用于在Apache Kafka与其他系统间进行数据搬运以及执行ETL操作,比如Kafka Connect能够将文件系统中某些文件的内容全部灌入Kafka topic中或者是把Kafka topic中的消息导出到外部的数据库系统,如图所示。 如图所示,Kafka Connect主

    2024年02月08日
    浏览(35)
  • 毕业就想进大厂?啃完这篇阿里大神整理的Kafka神仙文档,从此面试底气十足

    知道Kafka基本原理,了解关键术语概念; 可以使用Kafka进行消息系统开发; 通过Java语言来使用Kafka进行消息收发。 第2章 生产者详解 ============================================================================ 本章主要讲了生产者客户端的用法以及整体流程架构,主要内容包括配置参数的详解

    2024年04月14日
    浏览(37)
  • Apache Kafka - 构建数据管道 Kafka Connect

    Kafka Connect 是一个工具,它可以帮助我们将数据从一个地方传输到另一个地方。比如说,你有一个网站,你想要将用户的数据传输到另一个地方进行分析,那么你可以使用 Kafka Connect 来完成这个任务。 Kafka Connect 的使用非常简单。它有两个主要的概念 :source 和 sink 。Source 是

    2024年02月15日
    浏览(45)
  • Kafka connect

    这里以 mysql - kafka connect - oracle 实现upsert 全量同步为例: 启动zookeeper 、 kafka 等组件后 编写kafka/config/connect-distributed.properties文件 注:要确保8083端口没被占用 启动 connect  ./bin/connect-distributed.sh ./config/connect-distributed.properties 注: 这里窗口会被占用,不想被占用,用 nohup  启动

    2024年02月03日
    浏览(31)
  • 自学黑客(网络安全)看这篇就够了

    写了这么多编程环境和软件安装的文章,还有很多小伙伴在后台私信说看不懂。我都有点头疼了,但是小伙伴们求学的心情我还是能理解,竟然这么多人给我反馈了,那我就再写一篇网络安全自学的教程吧!大家耐心看完,后面有惊喜。 一、自学网络安全的误区和陷阱 1.不要

    2024年02月06日
    浏览(60)
  • 分布式消息流处理平台kafka(一)-kafka单机、集群环境搭建流程及使用入门

    kafka最初是LinkedIn的一个内部基础设施系统。最初开发的起因是,LinkedIn虽然有了数据库和其他系统可以用来存储数据,但是缺乏一个可以帮助处理持续数据流的组件。 所以在设计理念上,开发者不想只是开发一个能够存储数据的系统,如关系数据库、Nosql数据库、搜索引擎等

    2024年02月16日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包