前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >可视化方式快捷管理kafka的acl配置

可视化方式快捷管理kafka的acl配置

作者头像
玖柒的小窝
修改2021-11-01 11:13:28
1.2K0
修改2021-11-01 11:13:28
举报
文章被收录于专栏:各类技术文章~各类技术文章~

前言

我在 kafka基于SCRAM认证,快速配置启用ACL 中,以SASL_SCRAM配置方式为示例说明了如何快速在一个kafka集群中启用认证授权机制,提高集群使用的安全性。

但是可能有这一样种场景,比如有多个部门,不同的项目组或项目之间都在共用这个集群,不同的项目组或项目之间会使用不同的用户名/密码或者对不同的topic/消费组分别进行授权,这样,如果我们每次都通过命令的方式,用户信息或者topic数量比较多的时候,无论是查看或者修改都极不方便,所以需要一个可视化的控制台可以便捷的进行操作。

kafka-console-ui

简介

kafka-console-ui支持基于SASL_SCRAM机制可视化管理ACL。

github地址:github.com/xxd76379515…

ACL管理页面如下:

image.png
image.png

快速使用

打包

代码语言:javascript
复制
git clone https://github.com/xxd763795151/kafka-console-ui.git
cd kafka-console-ui
sh package.sh
复制代码

部署

代码语言:javascript
复制
# 解压缩
tar -zxvf kafka-console-ui.tar.gz
# 进入解压缩后的目录
cd kafka-console-ui
复制代码

启动、停止

代码语言:javascript
复制
# 启动
sh bin/start.sh
# 停止
sh bin/shutdown.sh
复制代码

修改配置

代码语言:javascript
复制
# 编辑配置
vim config/application.yml
复制代码

主要配置如下:

代码语言:javascript
复制
kafka:
  config:
    # kafka broker地址,多个以逗号分隔
    bootstrap-server: 'localhost:9092'
    # 服务端是否启用acl,如果不启用,下面的几项都忽略即可
    enable-acl: true
    # 只支持2种安全协议SASL_PLAINTEXT和PLAINTEXT,启用acl则设置为SASL_PLAINTEXT,不启用acl不需关心这个配置
    security-protocol: SASL_PLAINTEXT
    sasl-mechanism: SCRAM-SHA-256
    # 超级管理员用户名,在broker上已经配置为超级管理员
    admin-username: admin
    # 超级管理员密码
    admin-password: admin
    # 启动自动创建配置的超级管理员用户
    admin-create: true
    # broker连接的zk地址
    zookeeper-addr: localhost:2181
    sasl-jaas-config: org.apache.kafka.common.security.scram.ScramLoginModule required username="${kafka.config.admin-username}" password="${kafka.config.admin-password}";
复制代码

因为是启用ACL,所以enable-acl一定要为true,另外要把broker地址、zk地址、超级管理的账户密码修改为自己的。

注意配置项里有是否自动创建管理员用户,如果kafka集群配置启用了ACL,但是超级管理员还没创建集群节点已经启动了,此时集群仍然是不可用状态,各集群节点间通信认证是失败的,可以直接启动这个控制台,让它把这个超级管理员自动创建了,就不用自己手工去创建这个用户了。

功能说明

  • 用户权限列表

展示当前所有用户权限信息,并可查询:

image.png
image.png
  • 管理生产权限

快速增加或者删除某个用户对某个topic的消息发送权限

image.png
image.png
  • 管理消费权限

快速增加或者删除某个用户使用消费组订阅某个topic的权限

image.png
image.png
  • 删除当前用户及其相关所有权限

将当前用户配置删除同时清空该用户授予的所有权限信息

image.png
image.png
  • 细粒度权限控制

可以选择某个资源(topic或消费组)增加什么权限(白名单、黑名单什么的都能配置)

image.png
image.png
  • 查看并管理某个资源的权限明细
image.png
image.png
  • 新增、更新用户
image.png
image.png
  • 查看用户信息
image.png
image.png

注意这个密码一致性,可能存在不一致或没有密码的情况,这个是效验结果。因为kafka scram的用户密码是单向加密的,无法解密,所以这里是把密码缓存起来了,如果有的用户不是通过这个平台创建的,这里缓存的密码是不一致的或者就没有缓存,所以每次查看用户明细的时候,这里会用缓存的密码与实际kafka的用户密码做一个校验,以此来判断查出来的密码是否是正确的。

  • 管理员用户不允许操作

管理员用户信息,不允许操作,主要是避免误操作,影响到集群的稳定性。

image.png
image.png

末语

还有其它的一些功能,目前ACL这一块实现的还是相对完备,缺点就是只支持SASL_SCRAM。

目前kafka的安全协议有4种:PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL,私以为,如果kafka集群是在内网中,且只有自己的项目在用,PLAINTEXT,即明文传输完全够用,也不需要认证机制。如果是在云上,暴露在公网里了,消息安全性也很高可能需要SSL信道加密了。

如果只是做权限认证,且使用安全协议SASL_PLAINTEXT,不妨考虑一下这个解决方案。

本文系转载,前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • kafka-console-ui
    • 简介
      • 快速使用
        • 功能说明
        • 末语
        相关产品与服务
        SSL 证书
        腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com