# 配置RabbitMQ ACL用户
RabbitMQ实例开启ACL访问控制后，生产和消费消息时需要进行ACL用户鉴权，鉴权成功后才能生产和消费消息。
本章节介绍如何创建、编辑和删除用户。
#### 约束与限制
- 删除用户后，会删除授权关系，原来使用该用户认证的请求将无法访问。
- 仅RabbitMQ AMQP-0-9-1版本支持在控制台配置RabbitMQ ACL用户。RabbitMQ 3.x.x版本默认支持用户权限管理，您可以在RabbitMQ WebUI页面创建用户，并赋予相应的权限。
 
#### 前提条件
- 已购买RabbitMQ AMQP-0-9-1版本的实例。
- 已[开启ACL访问控制](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq-ug-0053.html)。
 
#### 创建用户
1. 登录[RabbitMQ控制台](https://console.huaweicloud.com/dms/?engine=rabbitMQ&locale=zh-cn#/queue/manager/newRabbitMQList)。
2. 在管理控制台左上角单击![](https://support.huaweicloud.com/usermanual-rabbitmq/zh-cn_image_0143929918.png)，选择RabbitMQ实例所在的区域。
3. 单击实例名称，进入实例详情页面。
4. 在左侧导航栏，单击"用户管理"，进入用户列表页面。
5. 单击"创建用户"，弹出"创建用户"对话框。
6. 参考[表1]，设置用户名称和配置信息。
   
    表1用户参数说明 
   | 参数    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|
   | 用户名   | 用户名支持自定义，但需要符合命名规则：长度为7\~64个字符，由英文字母开头，只能由英文字母、数字、中划线、下划线组成。 用户名创建成功后，不可修改。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 密码    | 设置用户的密码。 密码需要符合以下命名规则： - 长度为8\~32个字符。  - 至少包含以下字符中的3种：大写字母、小写字母、数字、特殊字符\`\~!@#$%\^\&\*()-_=+\\\|\[{}\];:'",\<.\>?和空格，并且不能以-开头。  - 不能与用户名或倒序的用户名相同。                                                                                                                                                                                                                                      |
   | 确认密码  | 再次输入密码，确认本次输入的密码和"密码"中输入的一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | Vhost | - **可访问的Vhost**：在下拉框中选择用户可以访问的Vhost。  - **可配置的资源**：为用户授予Vhost下资源的权限，使用正则表达式匹配资源。例如输入"\^test-.\*"，表示为用户授予Vhost下所有名称以"test-"开头的资源的权限。  - **可写的资源**：为用户授予Vhost下资源的写权限，使用正则表达式匹配资源。例如输入".\*"，表示为用户授予Vhost下所有资源的写权限。  - **可读的资源**：为用户授予Vhost下资源的读权限，使用正则表达式匹配资源。例如输入".\*"，表示为用户授予Vhost下所有资源的读权限。   如果需要授予用户多个Vhost的访问权限，单击"添加"，继续添加其他Vhost信息。 |
      
   图1创建用户   
   ![](https://support.huaweicloud.com/usermanual-rabbitmq/zh-cn_image_0000002477648260.png "点击放大")
   
   
7. 单击"确定"，完成用户的创建。 
   在用户列表页面，查看新创建的用户。
   
   
8. 开启ACL访问控制后，消息生产者和消费者都需要增加用户认证信息（代码中需包含username和password），具体操作如下： 
   - [Java代码示例](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq-ug-180801004.html)
   
   - [Python代码示例](https://support.huaweicloud.com/devg-rabbitmq/rabbitmq-devg-003.html)
   
   
   
   
 
#### 编辑用户
1. 登录[RabbitMQ控制台](https://console.huaweicloud.com/dms/?engine=rabbitMQ&locale=zh-cn#/queue/manager/newRabbitMQList)。
2. 在管理控制台左上角单击![](https://support.huaweicloud.com/usermanual-rabbitmq/zh-cn_image_0143929918.png)，选择RabbitMQ实例所在的区域。
3. 单击实例名称，进入实例详情页面。
4. 在左侧导航栏选择"用户管理"，进入用户列表页面。
5. 在待修改信息的用户所在行，单击"编辑"，弹出"编辑用户"对话框。
6. 参考[表2]，编辑用户参数。
   
    表2编辑用户参数说明 
   | 参数名称     | 编辑方法                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 密码       | 设置用户的密码。 密码需要符合以下命名规则： - 长度为8\~32个字符。  - 至少包含以下字符中的3种：大写字母、小写字母、数字、特殊字符\`\~!@#$%\^\&\*()-_=+\\\|\[{}\];:'",\<.\>?和空格，并且不能以-开头。  - 不能与用户名或倒序的用户名相同。   |
   | 确认密码     | 再次输入密码，确认本次输入的密码和"密码"中输入的一致。                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 可访问的Vhost | 在下拉框中选择用户可以访问的Vhost。                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 可配置的资源    | 为用户授予Vhost下资源的权限，使用正则表达式匹配资源。例如输入"\^test-.\*"，表示为用户授予Vhost下所有名称以"test-"开头的资源的权限。                                                                                                                                                                                                                                                                                                                                                                      |
   | 可写的资源       | 为用户授予Vhost下资源的写权限，使用正则表达式匹配资源。例如输入".\*"，表示为用户授予Vhost下所有资源的写权限。                                                                                                                                                                                                                                                                                                                                                                                       |
   | 可读的资源     | 为用户授予Vhost下资源的读权限，使用正则表达式匹配资源。例如输入".\*"，表示为用户授予Vhost下所有资源的读权限。                                                                                                                                                                                                                                                                                                                                                                                      |
      
   
   
7. 编辑完用户信息后，单击"确定"。
 
#### 删除用户
1. 登录[RabbitMQ控制台](https://console.huaweicloud.com/dms/?engine=rabbitMQ&locale=zh-cn#/queue/manager/newRabbitMQList)。
2. 在管理控制台左上角单击![](https://support.huaweicloud.com/usermanual-rabbitmq/zh-cn_image_0143929918.png)，选择RabbitMQ实例所在的区域。
3. 单击实例名称，进入实例详情页面。
4. 在左侧导航栏选择"用户管理"，进入用户列表页面。
5. 在待删除的用户所在行，单击"删除"，弹出"删除用户"对话框。 
   ![](https://support.huaweicloud.com/usermanual-rabbitmq/public_sys-resources/warning_3.0-zh-cn.png)
   删除用户后，会删除授权关系，原来使用该用户认证的请求将无法访问。
   
   
6. 单击"确定"，完成用户的删除。 
   删除的用户已从用户列表中移除，表明用户已成功删除。
   
   
 
#### 相关文档
- 如果您希望通过API创建ACL用户，请参考[创建用户](https://support.huaweicloud.com/api-rabbitmq/CreateUser.html)。
- 如果您希望通过API删除ACL用户，请参考[删除用户](https://support.huaweicloud.com/api-rabbitmq/DeleteUser.html)。
 
