手机站:/m

大带宽_app网站建设_评分榜

时间:2020-11-02 21:41编辑:淘客樊里来源:淘客樊里当前位置:主页 > 云存储 >

保护Apache-Kafka部署的最佳实践

对于许多组织来说,Apache Kafka®是整个企业数据系统的主干和真相来源。保护您的事件流平台对于数据安全至关重要,并且通常是管理机构所要求的。这篇博客文章回顾了五个安全类别,以及Kafka和Confluent Platform的基本特性,这些特性使您能够保护您的事件流平台。身份验证身份验证验证连接到Kafka和Confluent Platform的用户和应用程序的身份。与身份验证相关的主要关注领域有三个:Kafka代理或融合服务器、ApacheZooKeeper™ 服务器和基于HTTP的服务。HTTP服务包括Kafka Connect workers、ksqlDB服务器、汇合REST代理、模式注册表和控制中心。验证与这些服务的所有连接是安全平台的基础。卡夫卡经纪人和融合服务器Kafka代理和汇合服务器使用简单身份验证和安全层(SASL)或相互TLS(MTL)验证来自客户端和其他代理的连接。SASL是一个身份验证框架,提供了各种身份验证机制。当前支持的SASL机制包括PLAIN、SCRAM、GSSAPI(Kerberos)和OAUTHBEARER(注意:OAUTHBEARER的用户必须提供获取和验证凭证的代码)。Kafka代理可以同时启用多个机制,客户可以选择使用哪个机制进行身份验证。Kafka侦听器大体上是代理接受连接的IP、端口和安全协议。对于每个机制,SASL配置略有不同,但通常启用所需机制的列表,并配置代理侦听器。以下是GSSAPI配置的摘录:sasl.enabled.mechaniss=GSSAPIsasl.机制.内部.broker.protocol=GSSAPI监听器=SASL_网址:SSL://kafka1:9093个adverted.listeners=SASL\u SSL://本地主机:9093有关完整的详细信息,请参阅SASL文档。当使用mTLS进行身份验证时,SSL/TLS证书提供服务和客户端之间的基本信任关系。然而,mTLS不能与任何SASL机制结合使用。一旦为给定的侦听器启用了SASL,SSL/TLS客户端身份验证将被禁用。在支持的身份验证方法中,mTLS、SASL SCRAM和SASL GSSAPI是当前建议用于Kafka代理的身份验证方法。对于Confluent Server,您还可以在与Confluent提供的LDAP回调和SSL/TLS配合使用时使用纯机制。建议使用这些方法是因为它们有助于企业生产环境的更好的安全实践。还强烈建议始终结合SSL/TLS来保护网络上的身份验证凭据。下面的加密部分将进一步扩展保护传输中的数据。ZooKeeper服务器Kafka利用ZooKeeper执行各种关键的集群管理任务。防止ZooKeeper中未经授权的修改对于维护一个稳定和安全的Kafka集群至关重要。Kafka2.5版本开始随ZooKeeper版本一起发布,该版本支持mTLS身份验证。您可以使用或不使用SASL身份验证来启用ZooKeeper身份验证。在2.5版本之前,只支持DIGEST-MD5和GSSAPI-SASL机制。要为ZooKeeper启用mTLS身份验证,必须同时配置ZooKeeper和Kafka。以下是启用MTL的ZooKeeper配置片段示例:zookeeper.connect=zk1:2182,zk2:2182,zk3:2182zookeeper.ssl.client.enable=真zookeeper.clientCnxnSocket=组织.apache.zookeeper.ClientCnxnSocketNettyzookeeper.ssl.keystore.location=zookeeper.ssl.keystore.password=zookeeper.ssl.truststore.location=zookeeper.ssl.truststore.password=zookeeper.set.acl=真HTTP服务Kafka Connect、Confluent Schema Registry、REST代理、MQTT代理、ksqlDB和Control Center都支持对其HTTP(S)侦听器、REST API和用户界面进行身份验证。Kafka和Confluent平台支持基本认证和MTL。然而,Confluent Platform还提供了通过HTTP基本身份验证对LDAP进行身份验证的选项。授权身份验证验证验证用户和应用程序的身份,而授权允许您定义连接后允许他们执行的操作。ACLApacheKafka提供了一个现成的授权机制来建立ACL配置来保护特定的Kafka资源。Kafka acl存储在ZooKeeper中,并使用Kafka ACLs命令进行管理。对于Kafka ACL,可以使用SimpleClauthorizer,它验证在身份验证期间标识的主体。可以使用SCRAM用户名、Kerberos主体或客户端证书标识客户机。Confluent Platform还提供了遗留的LDAP授权器及其替代品Confluent Server Authorizer,可用于与现有的LDAP基础设施集成。Kafka acl提供了一种细粒度的方法来管理对单个Kafka集群的访问,但不能扩展到其他服务,如Kafka Connect、Confluent Schema Registry、Control Center或ksqlDB。基于ZooKeeper的ACL也是特定于群集的,因此,如果您管理多个群集,则需要独立管理所有群集上的ACL。最后,acl可能很难用大量的主体(用户、组或应用程序)和控件来管理,因为没有角色的概念。Confluent Platform通过包含集中式ACL有助于解决这些ACL管理缺陷。这允许您使用与基于角色的访问控制相同的应用程序和基础,从一个集中的权威群集管理多个群集的ACL。基于角色的访问控制(RBAC)Confluent Platform提供了基于角色的访问控制(RBAC),它弥补了上面列出的不足。RBAC和acl执行相似的功能,但处理问题的方式不同,可以独立使用也可以协同使用。RBAC由Confluent的元数据服务(MDS)提供支持,MDS与LDAP集成,充当授权和身份验证数据的中心机构。RBAC利用角色绑定来确定哪些用户和组可以访问特定的资源,以及可以在这些资源(角色)中执行哪些操作。RBAC通过融合服务器在Kafka集群上实现。Confluent Server是一个完全兼容的Kafka代理,它集成了RBAC等商业安全功能。管理员为不同资源上的用户和组分配预定义的角色;每个用户可以在每个资源上分配多个角色。资源是像卡夫卡集群、消费者群体或者仅仅是一个主题。管理员创建将主体、角色和资源映射在一起的角色绑定。可以使用Control Center或使用iam rolebinding子命令使用汇合的CLI管理角色绑定,例如:汇合iam rolebinding create——委托人用户:ConnectAdmin--角色资源所有者--资源所有者主题:连接状态--kafka群集idabc123RBAC还与融合平台中的许多其他应用程序紧密集成,以提供针对特定应用程序的集群级和资源级绑定。例如,Kafka Connect with RBAC允许您将连接器作为资源进行控制,并使用集群级角色绑定管理对整个分布式Kafka Connect集群的访问。RBAC模式注册中心集成还允许您将模式主题视为资源,将一组模式注册中心视为一个集群来绑定角色。加密保护传输中的数据对代理和应用程序之间传输的数据进行加密可以降低跨网络意外截获数据的风险。每个侦听器在Kafka中定义了身份验证和加密。默认情况下,Kafka侦听器使用开发环境可接受的不安全明文协议;但是,所有生产环境都应启用加密。代理上的加密是使用侦听器配置和管理信任库和密钥库来配置的。此片段显示了两个侦听器在代理上一起使用SSL和SASL over SSL:侦听器=SSL://:9093,SASL_SSL://:9094密钥和可信证书是使用ssl配置密钥。例如:truststore.location=/var/private/ssl/kafka.服务器.truststore.jksssl.truststore.password=test1234location=/var/private/ssl/kafka.服务器.keystore.jksssl.keystore.password=test1234ssl.key.password=test1234SSL/TLS还可以通过在客户端和服务之间分发可信证书来用于客户端身份验证。有关此方法的更多详细信息,请参阅Confluent Security教程。为了帮助将未受保护的集群迁移到受保护的集群,Kafka支持多个侦听器。只需配置一个新的受保护侦听器并迁移客户端应用程序即可利用它。迁移完所有客户机后,就可以解除未受保护的侦听器。安全教程将指导您使用SSL安全性配置新的和现有的集群。一旦代理得到保护,客户端也必须进行安全配置。遵循与代理类似的过程,为所有客户端配置加密,包括ksqlDB、Kafka Connect和Kafka Streams。秘密保护启用加密和安全功能需要配置机密值,包括密码、密钥和主机名。Kafka不提供任何保护这些值的方法,用户通常会将它们存储在明文配置文件和源代码控制系统中。常见的配置是这样的:ssl.key.password=test1234常见的安全实践规定,机密不应以明文形式存储在配置文件中,也不应根据应用程序日志输出进行编辑,以防止其值的意外泄漏。Confluent Platform提供了秘密保护,它利用了信封加密(envelope encryption)这一行业标准来保护加密的secr

上一篇MySQL数据库_免费国外服务器_促销

下一篇虚拟主机_滁州网站建设公司_免费领

云市场知识本月排行

云市场知识精选