文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

kafka安全认证与授权(SASL/PLAIN)

2023-09-05 05:42

关注

技术储备


kafka安全认证

官方文档Apache Kafka

kafka的安全特性:0.10版本以上

Kafka 支持以下的四个 SASL 机制:

1. broker SASL认证

SASL/PLAIN

在server.properties中配置SASL端口,方法是将SASL_PLAINTEXT或SASL_SSL中的至少一个添加到listeners参数中,该参数包含一个或多个逗号分隔的值:

listeners=SASL_PLAINTEXT://host.name:port

如果只配置一个SASL端口(或者如果希望Kafka代理使用SASL相互验证),请确保为代理间通信设置相同的SASL协议:

security.inter.broker.protocol=SASL_PLAINTEXT (or SASL_SSL)

2. 通过SASL PLAIN实现认证

SASL/PLAIN是一种简单的用户名/密码认证机制,通常与TLS一起用于加密以实现安全认证。Kafka支持SASL/PLAIN的默认实现,可以按照这里的描述扩展到生产用途。

用户名用作配置ACL等的身份验证主体

2.1 broker 配置

KafkaServer {     org.apache.kafka.common.security.plain.PlainLoginModule required     username="admin"     password="admin-secret"     user_admin="admin-secret"     user_alice="alice-secret"; };

此配置定义了两个用户(admin和alice)。KafkaServer中的username、password配置的用户和密码,是用来broker和broker连接认证。在本例中,admin是代理broker间通信的用户。user_userName配置为连接到broker的所有用户定义密码,broker使用这些验证所有客户端连接,包括来自其他broker的连接。

2.2 客户端配置

在线上使用SASL/PALIN模式


2. broker授权ACL

Kafka附带了一个可插入的授权器和一个开箱即用的授权器实现,该实现使用zookeeper来存储所有acl。通过在server.properties中设置Authorizer.class.name来配置授权程序。要启用现成的实现,使用:

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer

Kafka acl的定义格式为“Principal P is[Allowed/Dedenied]Operation O From Host H on any Resource R matching ResourcePattern RP”。可以阅读有关KIP-11中acl结构和KIP-290中资源模式的更多信息。为了添加、删除或列出acl,可以使用Kafka authorizer CLI。默认情况下,如果没有任何ResourcePatterns与特定的Resource R匹配,则R没有关联的acl,因此除了超级用户之外,任何人都不允许访问R。如果要更改该行为,可以在server.properties中包含以下内容

allow.everyone.if.no.acl.found=true

还可以在server.property中添加超级用户,如下所示(注意分隔符是分号,因为SSL用户名可能包含逗号)。默认PrincipalType字符串“User”区分大小写

super.users=User:admin

默认情况下,SSL用户名的格式为“CN=writeuser,OU=Unknown,O=Unknow,L=Unknown、ST=Unknow,C=Unknow”。可以通过在server.properties中设置自定义的PrincipalBuilder来更改此设置,如下所示

principal.builder.class=CustomizedPrincipalBuilderClass

默认情况下,SASL用户名将是Kerberos主体的主要部分。可以通过在server.properties中将sasl.kerberos.principal.to.local.rules设置为自定义规则来更改此设置。sasl.kerberos.pprincipal.to.local-rules的格式是一个列表,其中每个规则的工作方式与kerberos配置文件(krb5.conf)中的auth_to_local相同。这还支持其他小写规则,以强制转换结果全部为小写。这是通过在规则末尾添加“/L”来完成的。检查以下格式的语法。每个规则都以RULE:开头,并包含以下格式的表达式。有关详细信息,请参阅kerberos文档。

扩展阅读

实战:kafka、zookeeper SASL+ACL实现动态权限认证、授权

来源地址:https://blog.csdn.net/u011618288/article/details/128959762

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯