标签:阅读 保持数据 进入 blog nod 网络安全 enabled keep 旅行
今天,在这个Kafka教程中,我们将看到Apache Kafka Security 的概念 。Kafka Security教程包括我们需要安全性的原因,详细介绍加密。有了这个,我们将讨论Kafka Security可以轻松解决的问题列表。此外,我们将看到Kafka身份验证和授权。此外,我们将看看ZooKeeper身份验证。
那么,让我们开始Apache Kafka Security。
在0.9.0.0版本中,Kafka社区中添加了许多功能。它们的使用灵活性,如单独或一起使用,也增强了Kafka集群的安全性。
因此,当前支持的安全措施列表如下:
2.此外,还提供从代理到ZooKeeper的连接的身份验证。
3.此外,它提供了使用SSL 在经纪人和Kafka客户之间或经纪人和工具之间转移的数据加密,包括:
注意: 确保安全性是可选的。
基本上,Apache Kafka扮演着内部中间层的角色,这使我们的后端系统能够通过Kafka主题彼此共享实时数据馈送。通常,任何用户或应用程序都可以使用标准Kafka设置将任何消息写入任何主题,以及从任何主题读取数据。但是,当我们的公司转向共享租赁模式而多个团队和应用程序使用相同的Kafka群集时,或者当Kafka Cluster开始登记某些关键和机密信息时,需要实施Kafka安全性。
Kafka Security有三个组件:
它在我们的制作人和Kafka以及我们的消费者和Kafka之间保持数据加密。但是,我们可以说,这是每个人在网上使用时非常常见的模式。
要对我们的Kafka集群进行身份验证,它允许我们的生产者和我们的消费者验证他们的身份。这是使我们的客户认可身份的非常安全的方式。这有助于授权。
Apache Kafka用例| 卡夫卡应用程序
为了确定特定客户端是否有权编写或读取某个主题,我们的Kafka代理可以针对访问控制列表(ACL)运行我们的客户端。
由于我们的数据包在被路由到Kafka集群,旅行网络以及从机器跳到机器时,这解决了中间人(MITM)攻击的问题。如果我们的数据是PLAINTEXT,那么这些路由器中的任何一个都可以读取数据的内容。
我们的数据经过加密并通过网络安全传输,并启用加密并仔细设置SSL证书。只有第一台和最后一台机器具有使用SSL解密正在发送的数据包的能力。
然而,这种加密是有代价的,这意味着为了加密和解密数据包,CPU现在可以用于Kafka客户端和Kafka Brokers。虽然SSL安全性的性能可以忽略不计。
注意:加密仅在进行中,数据仍然在我们的代理磁盘上未加密。
阅读Kafka序列化和反序列化
基本上,可以通过两种方式向我们的经纪人验证Kafka客户。SSL和SASL
它利用了SSL的功能,我们还称之为两种身份验证方式。基本上,它向我们的客户颁发证书,由证书颁发机构签署,允许我们的Kafka经纪人验证客户的身份。
但是,这是最常见的设置,尤其是当我们利用来自Heroku,Confluent Cloud或CloudKarafka等提供商的托管Kafka群集时。
Apache Kafka架构及其基本概念
SASL指的是简单授权服务层。这里的基本概念是认证机制和Kafka协议彼此分离。它非常受大数据系统以及Hadoop设置的欢迎.?Kafka
支持以下形式和形式的SASL:
SASL PLAINTEXT是一个经典的用户名/密码组合。但是,请确保我们需要提前在Kafka代理上存储这些用户名和密码,因为每次更改都需要触发滚动重启。但是,它的安全性较低。此外,请确保在使用SASL / PLAINTEXT时启用SSL加密,因此该凭据不会作为PLAINTEXT在网络上发送。
这是一个非常安全的组合和挑战。基本上,密码和Zookeeper 哈希值存储在Zookeeper中,因此即使不重新启动代理也可以扩展安全性。确保在使用SASL / SCRAM时启用SSL加密,因此凭据不会作为PLAINTEXT在网络上发送。
它也是提供身份验证的一种非常安全的方法。因为它在Kerberos票证机制的基础上工作。Kerberos最常见的实现是Microsoft Active Directory。由于它允许公司从他们的Kerberos服务器中管理安全性,因此我们可以说SASL / GSSAPI是大型企业的绝佳选择。此外,SASL / GSSAPI可选择加密为SSL加密的通信。但是,使用Kerberos设置Kafka是最困难的选择,但最终还是值得的。
使用JMeter学习Apache Kafka-Load测试
为了更容易配置未在Kafka中实现的新的或自定义SASL机制,我们使用它。
这将允许我们利用OAUTH2令牌进行身份验证。
但是,要以更简单的方式执行它,请使用SASL / SCRAM或SASL / GSSAPI(Kerberos)作为身份验证层。
一旦我们的Kafka客户通过身份验证,Kafka就需要能够决定他们能做什么和不能做什么。这是授权进入的地方,由访问控制列表(ACL)控制。
由于ACL可以帮助我们预防灾难,因此它们非常有用。让我们通过一个例子理解它,我们有一个主题需要只能从客户端或主机的子集写入。此外,我们希望阻止普通用户为这些主题编写任何内容,从而防止任何数据损坏或反序列化错误。如果我们有一些敏感数据,ACL也很好,我们需要向监管机构证明只有某些应用程序或用户才能访问这些数据。
我们可以使用kafka-acls命令添加ACL。它甚至还有一些设施和快捷方式来添加生产者或消费者。
kafka-acl --topic test --producer --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:alice
结果是:
为资源“Topic:test”添加ACL:
用户:alice具有允许操作权限:描述主机:*
用户:alice具有允许操作权限:从主机写入:*
为资源添加ACL`C集:kafka -cluster`:
用户:alice具有允许操作权限:从主机创建:*
注意:仅使用默认的SimpleAclAuthorizer在Zookeeper中存储ACL。另外,确保只有Kafka代理可以写入Zookeeper(zookeeper.set.acl = true)。否则,任何用户都可以进入并编辑ACL,从而破坏安全点。
卡夫卡的优点和缺点
为了在代理上启用ZooKeeper身份验证,有两个必要的步骤:
基本上,ZooKeeper的Kafka集群元数据是世界可读的,但只有经纪人可以修改它,因为对该数据的不当操作会导致集群中断。此外,我们建议通过网络分段限制对ZooKeeper的访问。
阅读Apache ZooKeeper在Kafka中的角色 - 监控和配置
我们需要执行几个步骤来启用ZooKeeper身份验证,同时尽可能减少对我们的操作的干扰,如果我们运行的是不支持安全性的Kafka版本或者只是禁用安全性,并且我们想要使群集安全:
通过以下步骤,我们可以关闭安全集群中的身份验证:
让我们来探讨卡夫卡泊坞窗:使用步骤多克尔运行Apache卡夫卡
实例 如何运行迁移工具:
例如,
./bin/zookeeper-security-migration.sh -zookeeper.acl =安全= -zookeeper.connect本地主机:2181
运行此命令以查看完整的参数列表:
./ bin / zookeeper-security-migration.sh -help
我们需要在ZooKeeper集合上启用身份验证。因此,我们需要执行服务器的滚动重启并设置一些属性来执行此操作。
所以,这一切都在Kafka Security Tutorial中。希望你喜欢我们的解释。
因此,在这个Kafka安全教程中,我们已经看到了Kafka Security的介绍。此外,我们还讨论了Kafka Security对Kafka Security解决的问题的需求。此外,我们还讨论了SSL加密和SSL以及SASL Kafka身份验证。与此同时,在授权中,我们看到了Kafka主题授权。最后,我们查看了Zookeeper身份验证及其主要步骤。
标签:阅读 保持数据 进入 blog nod 网络安全 enabled keep 旅行
原文地址:https://www.cnblogs.com/a00ium/p/10853085.html