首页 > 其他分享 >kafka-ACL

kafka-ACL

时间:2023-10-26 09:55:26浏览次数:42  
标签:ACL no -- kafka admin acl wyk

本文档时在centos7直接部署添加认证的kafka文件基础上,做下面的修改实现ACL访问控制topic

参考:https://www.seaxiang.com/blog/Qpsqii

一. 添加多个kafka用户及相关的配置文件

1.kafka_server_jaas.conf
KafkaServer {
  org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin"
    user_admin="admin"
    user_wyk_reader="wyk_reader_pwd"
    user_wyk_writer="wyk_writer_pwd"
    user_no_acl="no_acl_pwd";
};
KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin"
        user_admin="admin"
        user_wyk_reader="wyk_reader_pwd"
        user_wyk_writer="wyk_writer_pwd"
        user_no_acl="no_acl_pwd";
};

Client {
    org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin"
        user_admin="admin"
        user_wyk_reader="wyk_reader_pwd"
        user_wyk_writer="wyk_writer_pwd"
        user_no_acl="no_acl_pwd";
};
2.kafka_zoo_jaas.conf
ZKServer{
    org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin"
        user_admin="admin"
        user_wyk_reader="wyk_reader_pwd"
        user_wyk_writer="wyk_writer_pwd"
        user_no_acl="no_acl_pwd";
};
3.新增生产者配置文件wyk_writer_jaas.conf
KafkaClient { 
	 org.apache.kafka.common.security.plain.PlainLoginModule required
     username="wyk_writer"
     password="wyk_writer_pwd";
     };
4.新增消费者配置文件wyk_reader_jaas.conf
KafkaClient {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="wyk_reader"
        password="wyk_reader_pwd";
};

二. ACL授权及验证

我们已经开启了SASL,并给控制台客户端配置了生产者和消费者的认证文件,下面我们来测试授权之后和未授权用户的区别

为了起到对比效果,我们先新增一个认证文件用户为no_acl的配置文件no_acl_jaas.conf

1.创建配置文件no_acl_jaas.conf
vim no_acl_jaas.conf
KafkaClient {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="no_acl"
        password="no_acl_pwd";
};
2.给用户对测试主题csdn01授权

使用下面的命令行授权用户 wyk_reader 对主题csdn01 的读权限,授权用户 wyk_writer 对主题csdn01 的写权限,no_acl用户不设置任何权限用做对比。

# 给用户wyk_writer 添加csdn01主题的 生产者权限
bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=10.255.60.149:2181 --add --allow-principal User:wyk_writer --operation Write --topic csdn01

# 给用户wyk_reader 添加csdn01主题的 消费者权限
#需要注意这里消费者还需要给消费者组配置权限,消费者组名称要和consumer.properties中配置的group.id一致
bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=10.255.60.149:2181 --add --allow-principal User:wyk_reader --operation Read --topic csdn01 --group test-consumer-group
3.验证ACL权限

首先在kafka-console-producer.sh中使用no_acl_jaas.conf配置文件

image-20230713170506273

使用下面命令生产消息时报错未授权

./kafka-console-producer.sh --topic csdn01 --broker-list 10.255.60.149:9092 --producer.config /data/kafka/config/producer.properties

image-20230713170703280

然后在kafka-console-producer.sh中使用wyk_writer_jaas.conf配置文件时,生产消息正常

image-20230713170826032

同样的,当使用no_acl用户作为消费者时可以看到启动时会报错:Not authorized to access topics:[csdn01]。而使用拥有csdn01主题的消费者权限的用户wyk_reader启动时可以正常的消费数据:

标签:ACL,no,--,kafka,admin,acl,wyk
From: https://www.cnblogs.com/regit/p/17788727.html

相关文章

  • centos7直接部署添加认证的kafka
    前言测试服务器:10.255.60.149一.安装jdk官网下载jdk1.8版本以上的https://www.oracle.com/java/technologies/downloads/测试系统版本为centos7,选择了最后一个下载后,使用rpm-ivh即可安装二.安装zookeeper和kafka软件版本:kafka_2.12-2.4.0(带zookeeper)下载链接:http://a......
  • lightdb支持@dblink方式访问oracle
    在lightdb23.4版本开始,兼容了oracle中通过@dblink方式跨库访问oracle库中表的方式。以下为具体的实现方案:*假设在oracle库中存在表youyus(t1int,co1number(2),co2varchar(100),co3varchar2(40))1.在lightdb对应的业务库中创建oracle_fdw插件lightdb@testdb=#createe......
  • Oracle数据库使用问题汇总
    新建用户问题。参考Oracle表空间和用户_oracle用户和表空间_you4580的博客-CSDN博客Oracle数据库如何给用户授权(oracle下赋权限)-数据库运维技术服务(dbs724.com)Oracle表空间和用户前言1、创建表空间2、删除表空间3、创建用户4、用户赋权限5、Oracle三个重要的角色1、创建......
  • 多款国产操作系统安装数据库干货文档汇总(含Oracle/MySQL/国产数据库等)
    随着国产化的逐步推进,越来越多的企业选择将数据库安装在国产操作系统上。为帮助大家了解国产操作系统上的数据库成功搭建案例与搭建方式,本文整理了墨天轮数据技术社区上用户分享的实操文档,涵盖银河麒麟、中标麒麟、统信UOS、openEuler等常见的国产操作系统,数据库以Oracle为主,此外......
  • Mysql、Oracle 中将汉字(中文)按照拼音首字母排序
    Mysql 将汉字(中文)按照拼音首字母排序ORDERBYCONVERT(表别名.字段名USINGgbk)COLLATEgbk_chinese_ciASC;例子select*from(select'嘉实资产'a,'000830'bunionselect'中金鼎益稳健3号单一资产管理计划'a,'002544'bunionselect......
  • ORACLE的Scheduler的时区总结
    在Oracle数据库中,一般人们可能只会关注数据库的时区或会话的时区,但是很少有人会关注Scheduler的时区设置,因为Scheduler的时区设置一般只会影响作业的scheduler和Windows的运行,很多时候,人们往往没有注意到它。这里简单总结一下这个知识点。在Oracle10g/11g中,数据库的scheduler的时......
  • Oracle 19C 基于 Docker 部署
    1、Docker、Docker-Compose安装https://www.cnblogs.com/a120608yby/p/9883175.htmlhttps://www.cnblogs.com/a120608yby/p/14582853.html2、基于Docker-Compose部署Oracle#vimdocker-compose.ymlversion:'3.4'services:oracledb:image:container-reg......
  • oracle查询scn
    概述在数据库的恢复过程,有时我们需要查询scn,分享一下具体的方法解决方案SQL>setnumwidth50SQL>setlinesize150pagesize1000SQL>select'D'file_type,file#,checkpoint_change#,statusfromV$datafile_headerunionallselect'L',group#,first_change#,......
  • 单位机房 服务器 ORACLE数据库服务器
    开发好的软件系统都部署在服务器上才能访问,服务器是专门伺候大家为大家服务的计算机。上几张图片看下服务器的样子 ......
  • Oracle特殊恢复原理与实战_12 Oracle坏块处理
       http://dbase.cc/2018/05/22/oracle/Oracle%E7%89%B9%E6%AE%8A%E6%81%A2%E5%A4%8D%E5%8E%9F%E7%90%86%E4%B8%8E%E5%AE%9E%E6%88%98-%E8%AF%BE%E7%A8%8B%E5%AD%A6%E4%B9%A0/12_Oracle%E7%89%B9%E6%AE%8A%E6%81%A2%E5%A4%8D%E5%85%A5%E9%97%A8/......