使用SASL/SCRAM认证操作MSK集群时的权限问题
解决MSK SASL/SCRAM用户权限不足问题
你遇到的权限问题是因为SASL/SCRAM认证的用户需要通过Kafka原生ACL配置权限,而非IAM策略。以下是具体操作步骤:
1. 准备SCRAM认证配置文件
创建一个名为scram-client.properties的文件,内容如下:
security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="你的SCRAM用户名" password="你的SCRAM密码";
这里的用户名和密码就是你存储在Secrets Manager中的凭证。
2. 使用kafka-acls工具配置权限
在能访问MSK集群公网地址的环境中执行kafka-acls.sh命令(可使用安装了Kafka客户端的EC2实例或本地环境):
分配主题创建权限
kafka-acls.sh --bootstrap-server <你的MSK公网Bootstrap地址> --command-config scram-client.properties --add --allow-principal User:<你的SCRAM用户名> --operation Create --topic '*'
分配主题读写权限
kafka-acls.sh --bootstrap-server <你的MSK公网Bootstrap地址> --command-config scram-client.properties --add --allow-principal User:<你的SCRAM用户名> --operation Read --operation Write --topic '*'
如果需要精细化权限控制,可将'*'替换为具体主题名称。
3. 验证权限配置
执行以下命令查看已配置的ACL规则:
kafka-acls.sh --bootstrap-server <你的MSK公网Bootstrap地址> --command-config scram-client.properties --list
完成配置后,你的客户端即可正常执行创建主题、发布/消费消息等操作。
内容的提问来源于stack exchange,提问作者hcerim
相关产品推荐
相关产品推荐

