赞
踩
鉴权,分别由鉴和权组成
因此对于某一个用户来说,通常情况下,需要完成鉴和权才能够满足一个完整的业务场景,因此通常将鉴权放在一起考量。本文探讨kafka的鉴权常用的鉴权方式以及相关鉴权设计方式。
kafka通常不需要进行鉴权设计,但是由于一些项目的安全性要求,会进行要求鉴权配置
鉴: 身份认证
身份的认证有4种方式:
权: 操作权限
5种操作权限:
CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,
注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限。
kafka的鉴权范围,通常会包括2个层面
在这4种鉴权模式下,最常用的是SASL\PLAIN模式,能够在满足权限要求和kafka的性能损耗上取的比较好的这种,这种认证方式对kafka的性能损耗影响相对较小。本文重点介绍SASL\PLAIN模式的鉴权方式。
相关操作方法可以参考 大数据Hadoop之——Kafka鉴权认证(Kafka kerberos认证+kafka账号密码认证+CDH Kerberos认证)
SASL/PLAIN 是一种简单的用户名/密码认证机制,通常与 TLS 一起用于加密以实现安全认证。Kafka 支持 SASL/PLAIN 的默认实现,可以按照此处所述进行扩展以供生产使用。
在每个 Kafka 代理的配置目录中添加一个经过适当修改的 JAAS 文件,类似于下面的文件,我们将其命名为 kafka_server_jaas.conf 以用于本示例:
$ mkdir $KAFKA_HOME/config/userpwd
$ cat >$KAFKA_HOME/config/userpwd/kafka_server_jaas.conf <<EOF
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="adminpasswd"
user_admin="adminpasswd"
user_kafka="123456"
user_producer="producerpwd"
user_consumer="consumerpwd";
};
EOF
根据kafka的部署路径和启动脚本,启动时加载kafka_server_jaas.conf使之生效。
export KAFKA_OPTS="-Dzookeeper.sasl.client=false -Dzookeeper.sasl.client.username=zk-server -Djava.security.auth.login.config=/opt/bigdata/hadoop/server/kafka_2.13-3.1.1/config/userpwd/kafka_server_jaas.conf"
添加或者调整如下相关配置,指定相关认证方式
listeners=SASL_PLAINTEXT://0.0.0.0:19092
advertised.listeners=SASL_PLAINTEXT://xx.xx.xx.xx:19092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
allow.everyone.if.no.acl.found=true
正常启动kafka后,kafka服务端的鉴权配置已经调整完成。
更多使用方式参考文档 大数据Hadoop之——Kafka鉴权认证(Kafka kerberos认证+kafka账号密码认证+CDH Kerberos认证)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。