更新时间:2025-07-29 GMT+08:00

配置RocketMQ ACL用户

RocketMQ实例开启ACL权限控制功能后,生产和消费消息时,须增加ACL用户信息,才能成功生产和消费消息。您还可以通过创建多个用户并为其赋予不同的Topic和消费组权限,以达到用户之间权限隔离的效果。

前提条件

创建用户

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域。

    不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

  3. 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RocketMQ版”,进入分布式消息服务RocketMQ页面。
  4. 单击RocketMQ实例的名称,进入实例详情页面。
  5. 在左侧导航栏,单击“实例管理 > 用户管理”,进入“用户管理”页面。
  6. 单击“创建用户”,弹出“创建用户”对话框。
  7. 参考表1,填写用户名称和配置信息。

    表1 用户参数说明

    参数

    说明

    名称

    自定义用户名称,用于识别不同的用户。

    用户名称命名规则如下:
    • 长度为7~64个字符。
    • 只能由英文字母、数字、中划线、下划线组成,且须以英文字母开头。
    • 名称不可重复。

    用户名创建成功后,不可修改。

    IP白名单

    如果请求的来源IP为IP白名单中的地址,不需要校验用户密钥是否正确,且具有所有Topic和消费组的发布及订阅权限。

    IP白名单可以配置为具体的IP地址,也可以配置为网段。

    • 多个IP时使用英文逗号隔开,如:192.168.1.2,192.168.2.3。
    • IP网段值如192.*.*.*。

    在“华东二”区域使用IPv6方式连接RocketMQ实例时,IP白名单功能不可用。

    管理员

    5.x基础版此参数默认为开启,不可修改。

    开启管理员时,具有所有Topic的发布和订阅权限,以及消费组的订阅权限。

    默认Topic权限

    开启管理员时不支持配置此参数。

    指定用户的默认Topic权限。

    取值范围:

    • 禁止:表示用户既不可以往Topic发送消息,也不能消费Topic中的消息。
    • 发布:表示用户只可以往Topic发送消息,不能消费Topic中的消息。
    • 订阅:表示用户不可以往Topic发送消息,但可以消费Topic中的消息。
    • 发布+订阅:表示用户既可以往Topic发送消息,也可以消费Topic中的消息。

    如果为指定Topic设置特殊权限,则特殊权限会覆盖默认权限,此Topic的实际权限为特殊权限。例如:默认权限为订阅,指定Topic的特殊权限为发布+订阅,则此Topic实际权限为发布+订阅。

    默认消费组权限

    开启管理员时不支持配置此参数。

    指定用户的默认消费组权限。

    取值范围:

    • 禁止:表示用户不能使用消费组消费消息。
    • 订阅:表示用户可以使用消费组消费消息。

    如果在为指定消费组设置特殊权限,则特殊权限会覆盖默认权限,此消费组的实际权限为特殊权限。例如:默认权限为订阅,指定消费组的权限为禁止,则此消费组实际权限为禁止。

    密钥

    设置用户的密钥。

    密钥设置规则如下:
    • 长度为8~32个字符。
    • 不能以“-”开头,至少包含三种字符:大写字母、小写字母、数字、特殊字符`~!@#$%^&*()-_=+\|[{}];:'",<.>/?。
    • 不能与名称或倒序的名称相同。

  8. 单击“确定”,完成用户的创建。

(可选)为用户设置Topic/消费组权限

创建用户时会设置默认的Topic和消费组权限,如果需要修改默认权限,则可以在此处重新为用户设置。管理员默认具有所有权限,无需手动添加。

5.x基础版不支持此操作。

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域。

    不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

  3. 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RocketMQ版”,进入分布式消息服务RocketMQ页面。
  4. 单击RocketMQ实例的名称,进入实例详情页面。
  5. 在左侧导航栏,单击“实例管理 > 用户管理”,进入“用户管理”页面。
  6. 单击用户名称,进入用户详情页面。
  7. 在“Topic权限”/“消费组权限”页签中,单击“添加权限”,弹出“添加权限”对话框。
  8. 勾选需要添加权限的Topic或者消费组,选择所需的特殊权限,单击“确定”。

    指定Topic或者消费组的特殊权限会覆盖默认权限,如图1中,test01的实际权限为发布+订阅。

    图1 用户详情页面

    在“Topic权限”/“消费组权限”页签中,还支持如下操作:

    • 导出Topic或者消费组列表:单击“导出 > 导出全部数据到XLSX”/“导出 > 导出已选中数据到XLSX”。
    • 删除Topic或者消费组:选择以下任意一种方法进行删除。
      • 在待删除的Topic或者消费组所在行,单击“删除”。
      • 勾选需要删除的Topic或者消费组,单击左上角的“批量删除”。

通过用户访问服务端

实例开启ACL访问控制后,消息生产者和消费者都需要增加用户认证信息。使用Java、Go或Python开启ACL访问控制时,可参考如下文档:

编辑用户

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域。

    不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

  3. 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RocketMQ版”,进入分布式消息服务RocketMQ页面。
  4. 单击RocketMQ实例的名称,进入实例详情页面。
  5. 在左侧导航栏,单击“实例管理 > 用户管理”,进入“用户管理”页面。
  6. 在待修改的用户所在行,单击“编辑”,弹出“编辑用户”对话框。
  7. 根据业务需要修改用户信息。

    用户名称不可修改,其他参数配置说明请参见表1

  8. 单击“确定”,完成用户的修改。

导出用户

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域。

    不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

  3. 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RocketMQ版”,进入分布式消息服务RocketMQ页面。
  4. 单击RocketMQ实例的名称,进入实例详情页面。
  5. 在左侧导航栏,单击“实例管理 > 用户管理”,进入“用户管理”页面。
  6. 通过以下任意一种方法,导出用户列表。

    • 勾选待导出的用户,单击“导出 > 导出已选中数据到XLSX”,导出指定用户列表。
    • 单击“导出 > 导出全部数据到XLSX”,导出全部用户列表。

删除用户

删除用户后会删除授权关系,原来使用该用户认证的请求将无法访问。

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域。

    不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

  3. 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RocketMQ版”,进入分布式消息服务RocketMQ页面。
  4. 单击RocketMQ实例的名称,进入实例详情页面。
  5. 在左侧导航栏,单击“实例管理 > 用户管理”,进入“用户管理”页面。
  6. 在待删除的用户所在行,单击“删除”,弹出“删除用户”对话框。
  7. 单击“确定”,完成用户的删除。

相关文档