【Kafka集群】Kafka针对用户做ACL权限控制

这篇具有很好参考价值的文章主要介绍了【Kafka集群】Kafka针对用户做ACL权限控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 Kafka 3.3.1 中,可以使用 ACL(Access Control List)控制用户对 topic 的访问权限。以下是一些基本示例:

  1. 创建一个名为 my-topic 的 topic

在命令行中执行以下命令创建一个名为 my-topic 的 topic:

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic my-topic
  1. 设置 ACL

a. 在文件system-acls.properties或配置文件KafkaServer或者其他支持的外部ACL模块中设置ACLs规则,例如,我们可以通过修改/config/server.properties 配置文件来添加全局的访问控制规则:

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer 
allow.everyone.if.no.acl.found=true 

#定义默认ACL规则,允许所有人都可以对topic进行读写操作,这很不安全,请不要在生产环境中使用 
super.users=User:admin

其中 SimpleAclAuthorizerr 是一种内置的 ACL 校验器,User:admin 是一组超级管理员。如果没有在配置文件中指定 super.users,则只有在 Zookeeper 上配置了访问控制时才会应用 ACL 规则。

b. 为特定用户或组添加 ACL 规则

假设我们要给组开发者(developers)授予对 my-topic 的读写权限,我们可以通过以下命令添加 ACL 规则:

kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add \
--allow-principal User:developers --operation Read --operation Write --topic my-topic

现在,开发人员组可以对该 topic 进行读写操作。如果你需要撤销授权(删除 ACL),则可以使用以下命令:

kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --remove \
--allow-principal User:developers --operation Read --operation Write --topic my-topic
  1. 验证 ACL 规则

验证ACL规则的最简单方法是尝试读取或写入某个受保护的 topic。例如,在 java 中可以使用 KafkaProducerKafkaConsumer API 来测试:

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "test-group");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

// 创建 Kafka 生产者对象并发送消息
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
for (int i = 0; i < 100; i++) {
    Future<RecordMetadata> result = producer.send(new ProducerRecord<>("my-topic", Integer.toString(i), Integer.toString(i)));
    System.out.println(result.get().toString());
}
producer.close();

// 创建 Kafka 消费者对象并订阅 Topic
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
TopicPartition tp = new TopicPartition("my-topic", 0);
consumer.assign(Arrays.asList(tp));
consumer.seekToBeginning(Collections.singletonList(tp));

// 读取消息
while (true) {
    ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
    for (ConsumerRecord<String, String> record : records) {
        System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
    }
}

参考资料

Kafka系列(五)、开启SASL安全认证以及配置ACL权限控制_sasl_mechanism_王义凯_Rick的博客-CSDN博客

kafka权限控制 - 简书

Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制

Kafka 权限管理实战(最全整理)

Kafka基于Kraft下的权限控制_kafka kraft sasl_songjxin的博客-CSDN博客

【kafka】SSL和ACL的配置 - 知乎

深入浅出 SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)

fabric kafka配置SSL+ACL - 简书

kafka+zookeeper集群模式配置SSL认证 – 俗话曰的博客

Kafka 如何给集群配置Scram账户认证_Smallc0de的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-583574.html

到了这里,关于【Kafka集群】Kafka针对用户做ACL权限控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kafka权限控制功能

    参考链接: https://www.clougence.com/cc-doc/dataMigrationAndSync/database/privs_for_kafka Kafka需要的权限 | CloudCanal of ClouGence  Kafka Topic 权限控制可以通过使用 Apache Kafka 的内置安全特性来实现。这主要涉及到两个方面:认证(Authentication)和授权(Authorization)。 认证 (Authentication):确保与

    2024年02月16日
    浏览(50)
  • 分布式消息流处理平台kafka(一)-kafka单机、集群环境搭建流程及使用入门

    kafka最初是LinkedIn的一个内部基础设施系统。最初开发的起因是,LinkedIn虽然有了数据库和其他系统可以用来存储数据,但是缺乏一个可以帮助处理持续数据流的组件。 所以在设计理念上,开发者不想只是开发一个能够存储数据的系统,如关系数据库、Nosql数据库、搜索引擎等

    2024年02月16日
    浏览(52)
  • 分布式应用之zookeeper集群+消息队列Kafka

           ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。为分布式框架提供协调服务的

    2024年02月06日
    浏览(66)
  • zookeeper+kafka分布式消息队列集群的部署

    目录 一、zookeeper 1.Zookeeper 定义 2.Zookeeper 工作机制 3.Zookeeper 特点 4.Zookeeper 数据结构 5.Zookeeper 应用场景 (1)统一命名服务 (2)统一配置管理 (3)统一集群管理 (4)服务器动态上下线 6.Zookeeper 选举机制 (1)第一次启动选举机制 (2)非第一次启动选举机制 7.部署zookeepe

    2024年02月14日
    浏览(52)
  • Kafka三种认证模式,Kafka 安全认证及权限控制详细配置与搭建

    Kafka三种认证模式,Kafka 安全认证及权限控制详细配置与搭建。 Kafka三种认证模式 使用kerberos认证

    2024年02月04日
    浏览(52)
  • 【简单认识zookeeper+kafka分布式消息队列集群的部署】

    Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已

    2024年02月13日
    浏览(42)
  • kafka忽略集群Node信息,直接向`bootstrap.servers`地址发送消息

    当kafka单机安装的时候或者集群安装的时候,kafka会先通过 bootstrap.servers 获取集群节点。 有时候网络复杂的时候 如内网外部署 地址映射 代理转发等 bootstrap.servers 配置地址可能为一个公网地址 181.39.77.53:9092 ,然而返回的节点为内网地址 172.16.31.33:9092 ,此时由于未开通 172.16.

    2024年02月09日
    浏览(55)
  • (二十五)大数据实战——kafka集群及Kafka-Eagle控制台安装与部署

    本节内容我们主要介绍一下搭建kafka集群以及kafka集群的一个web客户端组件Kafka-Eagle的部署安装,使用的kafka版本是kafka_2.12-3.0.0。在搭建kafka集群之前,我们要预先搭建好zookeeper集群,这里作者默认zookeeper的集群环境已经搭建完成,可参考作者往期博客内容。新版本的kafka集群分

    2024年02月09日
    浏览(42)
  • 彻底搞懂Docker容器与Kraft模式kafka集群关于消息大小相关参数设置

    部署背景: 在DockerHub拉取的bitnami/kafka:3.4.1 镜像,如果要部署在Docker-Swarm集群或者单Docker部署,对于消息大小设置需要添加参数 KAFKA_CFG_MESSAGE_MAX_BYTES,如果设置为其他不符合规范的参数格式,会导致容器一直启动不了。 PS:KAFKA_CFG_MESSAGE_MAX_BYTES 是针对Broker级别消息大小限制

    2024年02月08日
    浏览(37)
  • Zookeeper 节点权限控制ACL详解

    Zookeeper类似于unix文件系统,节点类比文件,客户端可以删除节点,创建节点,修改节点。Zookeeper可以使用ACL(access control list)访问控制列表来对节点的权限进行控制。 acl权限控制使用:scheme id permission来标志,主要涵盖三个方面: 权限模式(scheme):授权的策略。 权限对象

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包