操作场景
RocketMQ实例支持ACL权限控制功能,通过创建多个用户并为其赋予不同的Topic和消费组权限,以达到用户之间的权限隔离。
前提条件
已购买RocketMQ实例。
步骤一:开启ACL访问控制
- 登录分布式消息服务RocketMQ控制台。
- 单击RocketMQ实例的名称,进入实例详情页面。
- 在“连接信息”区域,单击“ACL访问控制”后的,开启ACL访问控制。
图1 开启ACL访问控制
须知:
- 仅2021年8月21号后购买的实例,支持设置ACL访问控制。
- 开启ACL访问控制会导致没有配置认证信息的客户端连接中断。
步骤二:创建用户
- 在左侧导航栏,单击“用户管理”,进入“用户管理”页面。
- 单击“创建用户”,弹出“创建用户”对话框。
- 参考表1,填写用户名称和配置信息。
表1 用户参数说明
参数 说明 名称 自定义用户名称,用于识别不同的用户。
用户名创建成功后,不可修改。
IP白名单 如果请求的来源IP为IP白名单中的地址,不需要校验用户密钥是否正确,且具有所有Topic和消费组的发布+订阅权限。
IP白名单可以配置为具体的IP地址,如:192.168.1.2,192.168.2.3。也可以配置为网段,如192.*.*.*。
说明这里网段的写法,需要以192.*.*.*方式写,暂不支持 192.168.0.0/24的写法。
管理员 开启管理员时,具有所有Topic和消费组的发布+订阅权限。 默认Topic权限 默认的Topic权限。 如果为指定Topic设置特殊权限,特殊权限会覆盖默认权限,此Topic的实际权限为特殊权限。例如:默认权限为订阅,指定Topic的特殊权限为发布+订阅,则此Topic实际权限为发布+订阅。
默认消费组权限 默认的消费组权限。
如果为指定消费组设置特殊权限,特殊权限会覆盖默认权限,此消费组的实际权限为特殊权限。例如:默认权限为订阅,指定消费组的权限为发布+订阅,则此消费组实际权限为发布+订阅。
密钥 设置用户的密钥。
- 单击“确定”,完成用户的创建。
(可选 )步骤三:为指定Topic/ 消费组设置特殊权限
- 单击用户名称,进入用户详情页面。
- 在“Topic权限”/“消费组权限”页签中,单击添加权限,弹出“添加权限”对话框。
- 勾选需要添加权限的Topic或者消费组,选择所需的特殊权限,单击“确定”。
指定Topic或者消费组的特殊权限会覆盖默认权限,如图2中,test01的实际权限为发布+订阅。
图2 用户详情页面
步骤四:通过用户访问服务端
- 实例开启ACL访问控制后,消息生产者和消费者都需要增加用户认证信息。