温馨提示×

ubuntu kafka配置权限怎么设

小樊
53
2026-09-23 21:14:06
栏目: 智能运维

在 Ubuntu 上配置 Kafka 的权限,通常分为 文件系统权限、Kafka 自身 ACL(访问控制) 以及 SASL/SSL 安全认证 三个层面。下面按常见使用场景说明。


一、Linux 文件系统权限(最基础)

Kafka 通常以非 root 用户运行(推荐 kafka 用户)。

1. 创建专用用户

sudo useradd -m kafka
sudo passwd kafka

2. 修改 Kafka 目录权限

sudo chown -R kafka:kafka /opt/kafka
sudo chmod -R 750 /opt/kafka

3. 日志和数据目录

sudo mkdir -p /var/lib/kafka /var/log/kafka
sudo chown -R kafka:kafka /var/lib/kafka /var/log/kafka

二、Kafka ACL 权限(Topic / 消费组级别)

⚠️ ACL 只在 启用安全认证(SASL 或 SSL) 后才真正生效

1. 启用 ACL(server.properties)

authorizer.class.name=kafka.security.authorizer.AclAuthorizer
super.users=User:admin
allow.everyone.if.no.acl.found=false

2. 创建用户(SASL/PLAIN 示例)

# server.properties
listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

3. 配置 JAAS

/opt/kafka/config/kafka_server_jaas.conf

KafkaServer {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="admin"
  password="admin-secret"
  user_admin="admin-secret"
  user_producer="producer-secret"
  user_consumer="consumer-secret";
};

启动:

export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/kafka_server_jaas.conf"

三、使用 kafka-acls 设置权限

1. 赋予 producer 写权限

kafka-acls.sh \
  --bootstrap-server localhost:9092 \
  --add \
  --allow-principal User:producer \
  --producer \
  --topic test-topic

2. 赋予 consumer 读权限

kafka-acls.sh \
  --bootstrap-server localhost:9092 \
  --add \
  --allow-principal User:consumer \
  --consumer \
  --topic test-topic \
  --group test-group

3. 查看 ACL

kafka-acls.sh --bootstrap-server localhost:9092 --list

四、常见场景建议

场景 建议
内网测试 SASL_PLAINTEXT + ACL
生产环境 SASL_SSL + ACL
单用户 文件权限即可
多租户 必须 ACL + 用户隔离

五、常见问题

Q:ACL 不生效?

  • 没启用 AclAuthorizer
  • 没使用 SASL/SSL
  • allow.everyone.if.no.acl.found=true

Q:Permission denied?

  • 检查 Kafka 运行用户
  • 检查 log / data 目录权限

如果你能说明:

  • Kafka 版本
  • 是否启用 SASL / SSL
  • 使用场景(开发 / 生产)

我可以给你一份 可直接用的配置文件示例。

0 踩