gpt4 book ai didi

apache-kafka - 定义 Kafka ACL 限制主题创建

转载 作者:行者123 更新时间:2023-12-05 03:32:46 28 4
gpt4 key购买 nike

我们目前正在 AWS MSK 上运行不安全的 Kafka 设置(因此我无法直接访问大多数配置文件,需要使用 kafka-cli),并且正在研究增加保护的方法。设置 TLS 和 SASL 很容易,但由于我们的 Kafka 集群位于 VPN 后面并且已经限制访问并不会增加更多的安全性。

我们想从最重要的和我们认为速效的安全添加开始。保护主题不被所有用户删除(和创建)。我们目前将 allow.everyone.if.no.acl.found 设置为 true

我在 Google 或 Stack Overflow 上找到的所有内容都向我展示了如何限制用户阅读/写入他们无法访问的其他主题。虽然理想情况下,这不是我们想要作为第一步实现的目标。

我找到了有关 root 用户的信息(是管理员用户,尽管在我阅读的所有教程中都被称为 root)。尽管我找到的示例没有显示向此根用户添加 ACL 以使其成为唯一可访问的示例,主题删除/创建。

您能否解释一下如何创建一个用户并阻止所有其他用户?

顺便说一下,我们也不使用 zookeeper,即使 MSK 集群默认使用它。并希望我们可以在不主动将 zookeeper 添加到我们的堆栈中的情况下做到这一点。给出的答案here几乎不依赖动物园管理员。另外,this answer仅指向主题读/写示例,即使问题与我所问的相同

最佳答案

我想先声明一下,我个人对 AWS MSK 产品的细节并不熟悉,所以这个答案主要基于我对 Apache Kafka 开源分发的理解。

首先 - 默认情况下,Kafka ACL 实际上存储在 Zookeeper 中,因此如果您不使用 Zookeeper,可能值得添加它。

引用 - Kafka Definitive Guide - 2nd edition - 第 11 章 - 保护 Kafka - 第 294 页

其次 - 如果您使用 SASL 通过任何受支持的机制(例如 GSSAPI (Kerberos))进行身份验证,那么您需要创建一个主体,就像您通常创建一个主体并使用以下选项之一:

  1. 使用 kafka-acls 命令 ( Command Reference ) 添加主题创建/删除等所需的权限

    bin/kafka-acls.sh --add --cluster --operation Create --authorizer-properties zookeeper.connect=localhost:2181 --allow-principal User:admin

    注意 - admin 是假定的主体名称

  2. 或者通过添加以下行将 admin 用户添加到 server.properties 文件中的 super 用户列表,这样它就可以不受限制地访问所有资源

    super.users=User:Admin

    可以在由 ; 分隔的同一行中添加任何更多用户。

要增加严格性,您需要将 allow.everyone.if.no.acl.found 设置为 false,以便仅授予对任何资源的任何访问权限通过显式添加这些权限。

第三 - 由于您特别询问了您的 root 用户,我假设您在这里指的是 linux root。您可以使用 kafka-acls.sh 脚本的 chmod 命令限制 linux 级别的权限,但这是实现您需要的一种相当粗糙的方法。我也不完全确定这在 MSK 中是否可行。

关于apache-kafka - 定义 Kafka ACL 限制主题创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70409488/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com