更新时间:2024-10-25 GMT+08:00

配置RabbitMQ ACL用户

RabbitMQ实例开启ACL访问控制后,生产和消费消息时需要进行ACL用户鉴权,鉴权成功后才能生产和消费消息。

本章节介绍如何创建、编辑和删除用户。

仅RabbitMQ AMQP-0-9-1版本支持在控制台配置RabbitMQ ACL用户。RabbitMQ 3.x.x版本默认支持用户权限管理,您可以在RabbitMQ WebUI页面创建用户,并赋予相应的权限。

前提条件

创建用户

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

    此处请选择RabbitMQ实例所在的区域。

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

    表1 用户参数说明

    参数

    说明

    用户名

    用户名支持自定义,但需要符合命名规则:长度为7~64个字符,由英文字母开头,只能由英文字母、数字、中划线、下划线组成。

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

    密码

    设置用户的密码。

    密码需要符合以下命名规则:

    • 长度为8~32个字符。
    • 至少包含以下字符中的3种:大写字母、小写字母、数字、特殊字符`~!@#$%^&*()-_=+\|[{}];:'",<.>? 和空格,并且不能以-开头。
    • 不能与用户名或倒序的用户名相同。

    确认密码

    再次输入密码,确认本次输入的密码和“密码”中输入的一致。

    Vhost

    • 可访问的Vhost:在下拉框中选择用户可以访问的Vhost。
    • 可配置的资源:为用户授予Vhost下资源的权限,使用正则表达式匹配资源。例如输入“^test-.*”,表示为用户授予Vhost下所有名称以“test-”开头的资源的权限。
    • 可写的资源:为用户授予Vhost下资源的写权限,使用正则表达式匹配资源。例如输入“.*”,表示为用户授予Vhost下所有资源的写权限。
    • 可读的资源:为用户授予Vhost下资源的读权限,使用正则表达式匹配资源。例如输入“.*”,表示为用户授予Vhost下所有资源的读权限。

    如果需要授予用户多个Vhost的访问权限,单击“添加”,继续添加其他Vhost信息。

    图1 创建用户

  8. 单击“确定”,完成用户的创建。
  9. 开启ACL访问控制后,消息生产者和消费者都需要增加用户认证信息(代码中需包含username和password),具体操作如下:

编辑用户

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

    此处请选择RabbitMQ实例所在的区域。

  3. 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RabbitMQ版”,进入分布式消息服务RabbitMQ专享版页面。
  4. 单击实例名称,进入实例详情页面。
  5. 在左侧导航栏选择“用户管理”,进入用户列表页面。
  6. 在待修改信息的用户所在行,单击“编辑”,弹出“编辑用户”对话框。
  7. 如果要编辑密码,在“密码”后,单击“编辑”,输入新密码。如果要编辑Vhost相关信息,参考如下信息,进行编辑。

    • 可访问的Vhost:在下拉框中选择用户可以访问的Vhost。
    • 可配置的资源:为用户授予Vhost下资源的权限,使用正则表达式匹配资源。例如输入“^test-.*”,表示为用户授予Vhost下所有名称以“test-”开头的资源的权限。
    • 可写的资源:为用户授予Vhost下资源的写权限,使用正则表达式匹配资源。例如输入“.*”,表示为用户授予Vhost下所有资源的写权限。
    • 可读的资源:为用户授予Vhost下资源的读权限,使用正则表达式匹配资源。例如输入“.*”,表示为用户授予Vhost下所有资源的读权限。

  8. 编辑完用户信息后,单击“确定”。

删除用户

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

    此处请选择RabbitMQ实例所在的区域。

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

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