千家信息网

如何配置Kafka集群以使用PAM后端

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,这篇文章将为大家详细讲解有关如何配置Kafka集群以使用PAM后端,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。我们将研究如何配置Kafka集群以使用
千家信息网最后更新 2024年11月17日如何配置Kafka集群以使用PAM后端

这篇文章将为大家详细讲解有关如何配置Kafka集群以使用PAM后端,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

我们将研究如何配置Kafka集群以使用PAM后端而不是LDAP后端。

此处显示的示例将以粗体突出显示与身份验证相关的属性,以将其与其他必需的安全属性区分开,如下例所示。假定已为Apache Kafka集群启用了TLS,并且应该为每个安全集群启用TLS。

security.protocol=SASL_SSL
ssl.truststore.location=/opt/cloudera/security/jks/truststore.jks.truststore.location=/opt/cloudera/security/jks/truststore.jks

我们在以下所有示例中使用kafka-console-consumer。所有概念和配置也适用于其他应用程序。

PAM验证

将Kafka集群配置为执行PAM(可插入身份验证模块)身份验证时,Kafka会将客户端的身份验证委派给为其运行的操作系统配置的PAM模块。

Kafka客户端配置与我们用于LDAP身份验证的配置相同,正如我们在上一篇文章中看到的:

# Uses SASL/PLAIN over a TLS encrypted connectionsecurity.protocol=SASL_SSL.protocol=SASL_SSLsasl.mechanism=PLAIN.mechanism=PLAIN# LDAP credentialssasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="supersecret1";.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="supersecret1";# TLS truststoressl.truststore.location=/opt/cloudera/security/jks/truststore.jks.truststore.location=/opt/cloudera/security/jks/truststore.jks

上面的配置使用SASL/PLAIN进行身份验证,并使用TLS(SSL)进行数据加密。PAM身份验证的选择是在SASL/PLAIN的服务器端处理程序上配置的,我们将在本节后面介绍。

确保正在使用TLS/SSL加密

与LDAP身份验证情况类似,由于用户名和密码是通过网络发送的以用于客户端身份验证,因此对于Kafka客户端之间的所有通信启用并实施TLS加密非常重要。这将确保凭据始终通过网络加密,并且不会受到损害。

必须将所有Kafka代理配置为对其SASL端点使用SASL_SSL安全协议。

其他要求

根据系统中配置的PAM模块,可能需要正确配置一些其他要求才能使PAM身份验证起作用。确切的配置取决于所使用的模块,不在本文档的范围之内。

以下是使用某些PAM模块时可能需要的两个附加配置的简单示例:

  • 如果要使用登录服务的pam_unix模块,则kafka用户(运行Kafka代理的用户)必须有权访问/etc/shadow文件,以使身份验证起作用。

下面的命令只是一个简单的示例,说明如何在单个节点上实现此目标。可能会有更好的方法来确保整个集群都满足此要求。

usermod -G shadow kafka-G shadow kafkachgrp shadow /etc/shadow/etc/shadowchmod 440 /etc/shadow 440 /etc/shadow
  • 如果使用了pam_nologin模块,则代理上文件/var/run/nologin的存在将阻止Kafka的PAM身份验证正常工作。为了使PAM身份验证正常工作,必须从所有代理中删除文件/var/run/nologin,或者必须禁用pam_nologin模块。

在Kafka Broker上启用PAM身份验证

安装Kafka服务时,默认情况下未为Kafka代理启用PAM身份验证,但是通过Cloudera Manager对其进行配置非常简单:

在Cloudera Manager中,在Kafka服务配置中设置以下属性以匹配您的环境:通过选择PAM作为上面的SASL/PLAIN身份验证选项,Cloudera Manager将Kafka配置为使用以下SASL/PLAIN回调处理程序:

org.apache.kafka.common.security.pam.internals..apache.kafka.common.security.pam.internals.PamPlainServerCallbackHandler
  • 配置要用于身份验证的PAM服务:

  • 单击Kafka>操作>重新启动以重新启动Kafka服务并使更改生效。

示例

注意:以下信息包含敏感的凭据。将此配置存储在文件中时,请确保已设置文件许可权,以便只有文件所有者才能读取它。

以下是使用Kafka控制台使用者通过PAM身份验证从主题读取的示例。

$ cat pam-client.properties-client.propertiessecurity.protocol=SASL_SSL.protocol=SASL_SSLsasl.mechanism=PLAIN.mechanism=PLAINsasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="supersecret1";.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="supersecret1";ssl.truststore.location=/opt/cloudera/security/jks/truststore.jks.truststore.location=/opt/cloudera/security/jks/truststore.jks

$ kafka-console-consumer \-console-consumer \ --bootstrap-server host-1.example.com:9093 \--bootstrap-server host-1.example.com:9093 \ --topic test \--topic test \ --consumer.config ./pam-client.properties--consumer.config ./pam-client.properties

关于如何配置Kafka集群以使用PAM后端就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

配置 验证 身份 模块 集群 文件 示例 服务 代理 客户 加密 安全 客户端 属性 用户 程序 篇文章 面的 作用 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发部周报 大公司 dw绑定数据库不显示网页 系统开发难还是软件开发难 天津互联网科技大厦科乐园 泰拉瑞亚服务器怎么关闭自动保存 派尔高管理服务器安装包 万方数据库可用于检索专利 pubg手游连接服务器超时 郑州地区网络安全专项检查 数据库系统提供两种不同的语言 安徽元和网络技术 南山区质量网络技术开发展示 计算机网络安全与科学 中信所核心数据库 沪深科技互联网股票有哪些 5g下一代网络技术概念形成 软件开发实训内容总结 想往网络安全发展 苏州跑跑网络技术有限公司 服务器有必要安全卫士吗 江苏计算机软件开发价钱是多少 吉林虚拟主机管理软件云服务器 连接阿里云需要购买服务器吗 数据库应用怎么设置主字段 html如何关联到数据库 广东商城软件开发方案 软件开发需求发布途径 多条件查询数据库的代码 神州物联网络技术有限公司 网络安全申诉
0