`

RabbitMQ用户角色及权限控制

 
阅读更多
RabbitMQ:基本命令

rabbitmq的安装、启动和停止
rabbitmq-service.bat install
rabbitmq-service.bat start
rabbitmq-service.bat stop

列出所有queue

rabbitmqctl list_queues

列出指定queue的信息

rabbitmqctl list_queues [the queue name] messages_ready messages_unacknowledged

列出所有exchange

rabbitmqctl list_exchanges

列出所有binding

rabbitmqctl list_bindings

安装基于web的管理插件

rabbitmq-plugins.bat enable rabbitmq_management

参考:http://www.cnblogs.com/happyframework/p/3997307.html

#######################
#用户角色
#######################

RabbitMQ的用户角色分类:
none、management、policymaker、monitoring、administrator

RabbitMQ各类角色描述:
none
不能访问 management plugin

management
用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts 
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。

policymaker
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters

monitoring 
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息

administrator  
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections

创建用户并设置角色
可以创建管理员用户,负责整个MQ的运维,例如:

windows下,进入到rabbitMQ安装的sbin目录下
引用
rabbitmqctl add_user  user_admin  passwd_admin


赋予其administrator角色:

引用
rabbitmqctl set_user_tags user_admin administrator


可以创建RabbitMQ监控用户,负责整个MQ的监控,例如:
引用
rabbitmqctl add_user  user_monitoring  passwd_monitor 


赋予其monitoring角色:
引用
rabbitmqctl set_user_tags user_monitoring monitoring 


可以创建某个项目的专用用户,只能访问项目自己的virtual hosts
引用
rabbitmqctl  add_user  user_proj  passwd_proj 


赋予其monitoring角色:
引用
rabbitmqctl set_user_tags user_proj management


创建和赋角色完成后查看并确认:
引用
rabbitmqctl list_users 


########################
#RabbitMQ 权限控制:
########################
默认virtual host:"/"
默认用户:guest
guest具有"/"上的全部权限,仅能有localhost访问RabbitMQ包括Plugin,建议删除或更改密码。可通过将配置文件中loopback_users置孔来取消其本地访问的限制:
[{rabbit, [{loopback_users, []}]}]

用户仅能对其所能访问的virtual hosts中的资源进行操作。这里的资源指的是virtual hosts中的exchanges、queues等,操作包括对资源进行配置、写、读。配置权限可创建、删除、资源并修改资源的行为,写权限可向资源发送消息,读权限从资源获取消息。比如:
exchange和queue的declare与delete分别需要exchange和queue上的配置权限
exchange的bind与unbind需要exchange的读写权限
queue的bind与unbind需要queue写权限exchange的读权限
发消息(publish)需exchange的写权限
获取或清除(get、consume、purge)消息需queue的读权限

对何种资源具有配置、写、读的权限通过正则表达式来匹配,具体命令如下:
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
其中,<conf> <write> <read>的位置分别用正则表达式来匹配特定的资源,如'^(amq\.gen.*|amq\.default)$'可以匹配server生成的和默认的exchange,'^$'不匹配任何资源

需要注意的是RabbitMQ会缓存每个connection或channel的权限验证结果、因此权限发生变化后需要重连才能生效。

为用户赋权
引用
rabbitmqctl  set_permissions -p /vhost1  user_admin '.*' '.*' '.*'
正确的命令为:rabbitmqctl  set_permissions -p /vhost1  user_admin .*  .* .*

该命令使用户user_admin具有/vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源

引用
在使用rabbitMQ的客户端命令对用户进行赋权限时,不能带有'',否则在插入消息时,会报如下的错误:Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=403, reply-text=ACCESS_REFUSED - access to queue 'hello' in vhost '/' refused for user 'admin', class-id=50, method-id=10)


权限控制

1.创建虚拟主机
# rabbitmqctl add_vhost vhostpath
2.删除虚拟主机
# rabbitmqctl delete_vhost vhostpath
3.列出所有虚拟主机
# rabbitmqctl list_vhosts
4.设置用户权限
# rabbitmqctl set_permissions [-p vhostpath] username regexp regexp regexp
5.清除用户权限
# rabbitmqctl clear_permissions [-p vhostpath] username
6.列出虚拟主机上的所有权限
# rabbitmqctl list_permissions [-p vhostpath]
7.列出用户权限
# rabbitmqctl list_user_permissions username

参考:http://blog.csdn.net/zyz511919766/article/details/42292655

rabbitmq操作命令:http://a52071453.iteye.com/blog/1559011

rabbitmq的web管理界面无法使用guest用户登录
https://www.cnblogs.com/mingaixin/p/4134920.html
分享到:
评论

相关推荐

    RabbitMQ 讲义.pdf

    RabbitMQ允许创建不同的用户角色和虚拟消息服务器VirtualHosts,每个VirtualHosts类似于独立的RabbitMQ服务器,彼此之间隔离,确保了消息的安全性和权限控制。 RabbitMQ的用户角色包括超级管理员、监控者、策略制定...

    rabbitmq3.8.8.zip

    8. **安全与权限**:RabbitMQ有内置的用户管理和访问控制机制,允许管理员定义用户角色和权限,保障系统安全。 9. **插件系统**:RabbitMQ支持丰富的插件,可以扩展其功能,例如监控工具、管理界面、审计日志等。 ...

    RabbitMQ.pdf

    用户角色** RabbitMQ中的用户有不同的角色,如管理员、监控者和普通用户,每个角色有不同的权限。配置用户时,需要设定相应的访问控制列表(ACL),以确保安全和权限管理。 **2.2.1. Virtual Hosts** Virtual ...

    RabbitMQ 安装包和开启MQTT功能

    在生产环境中,强烈建议配置 TLS/SSL 以加密传输,并设置访问控制,通过用户、角色和权限来限制谁可以连接和发布/订阅哪些主题。 总结来说,RabbitMQ 的安装与 MQTT 功能的开启涉及下载和安装 Erlang OTP 以及 ...

    rabbitmq-server-3.6.5.rar

    安全方面,RabbitMQ支持基于用户角色的权限控制(RBAC),可以通过插件实现认证和授权,例如使用内置的rabbitmq_auth_mechanism_ssl支持SSL/TLS,或者使用rabbitmq_management插件进行HTTP API访问控制。 在部署和...

    最新版RabbitMQ安装包程序下载

    9. **安全性**:RabbitMQ支持基于角色的访问控制(RBAC),允许精细地配置用户权限,控制他们能访问哪些资源(如虚拟主机、队列、交换机)以及执行哪些操作。 10. **监控与日志**:RabbitMQ的日志可以帮助诊断问题...

    RabbitMQ基本概念与应用

    通过这些角色划分,可以有效地控制不同用户对RabbitMQ的访问权限,从而提高系统的安全性。 综上所述,RabbitMQ不仅是一款强大的消息中间件,还提供了丰富的工具和详细的权限管理机制,适用于各种复杂的应用场景。...

    RabbitMQ实战 高效部署分布式消息队列

    1. 用户认证:RabbitMQ支持用户、密码、VHost的权限控制,确保通信安全。 2. 权限策略:通过设置权限策略,限制用户对交换器、队列和绑定的操作。 总结,RabbitMQ在分布式系统中扮演着关键角色,通过高效部署和配置...

    《深入RabbitMQ》.pdf.zip

    8. **安全性**:用户权限控制、虚拟主机和访问控制列表(ACL)是RabbitMQ安全配置的重要部分,防止未经授权的访问。 9. **监控与日志**:了解如何使用RabbitMQ的管理界面和各种工具进行性能监控和故障排查,以及...

    rabbitmq-server-3.8.9.zip

    RabbitMQ 提供基于角色的访问控制(RBAC),可以通过管理界面或 API 来设置用户权限。此外,还可以通过 SSL/TLS 加密连接,确保数据传输的安全。 ### 8. 高可用性与集群 为了提高服务的可用性和可扩展性,RabbitMQ...

    rabbitmq3.8.16-linux-centos7.x

    4. **RabbitMQ安装与配置**:学习如何在CentOS系统上安装RPM包,配置RabbitMQ服务器,包括设置用户、虚拟主机、权限等。 5. **安全设置**:由于涉及到“安全”标签,所以理解如何配置SSL/TLS加密,设置访问控制,...

    RabbitMq学习笔记1

    - RabbitMQ中有不同级别的用户角色,如管理员(administrator)、监控者(monitoring)、策略制定者(policymaker)和普通管理者(management)。不同的角色有不同的权限,例如: - 管理员可以查看所有信息并管理...

    RabbitMQ消息中间件面试专题.pdf

    在vhost内部,拥有独立的queue、exchange和binding等资源,但更重要的是,它拥有独立的权限系统,可以做到对vhost范围内的用户进行控制。从RabbitMQ的全局角度,vhost可作为不同权限隔离的手段,例如不同的应用可以...

    RabbitMQ实战:高效部署分布式消息队列

    同时,书中会讲解如何配置RabbitMQ服务器,包括管理插件的启用、用户权限的设置以及集群的搭建。 3. **工作模式**:书中会涵盖RabbitMQ的各种工作模式,如Direct、Fanout、Topic、Header和Routing,这些模式对应...

    Spring Boot-Shiro-Vue的权限管理思路.前后端都加以控制

    在权限管理中,Vue.js可以在前端实现菜单、按钮的动态加载和显示,根据用户角色权限决定是否显示或禁用。 **权限控制思路:** 1. **用户认证**:当用户登录时,Spring Boot后端通过Shiro验证用户名和密码,如果...

    RabbitMQ培训PPT

    4. **安全设置**: 配置用户、权限和虚拟主机,实现访问控制。 **三、RabbitMQ工作流程** 1. **生产者发送消息**: 生产者创建消息并指定交换器,RabbitMQ将消息路由到相应的队列。 2. **消息路由**: 交换器根据...

    rabbitMQ安装资源包

    9. **安全性**:为避免未授权访问,建议禁用默认的`guest`用户,并为不同应用创建独立的用户和角色,设置合适的访问控制策略。 10. **高可用性**:RabbitMQ支持集群模式,通过创建集群,可以实现数据的冗余和故障...

    rabbitmq面试题.pdf

    - 通过定义用户账号、角色和权限来控制访问权限。 **42. RabbitMQ支持哪些加密机制?** - 主要支持TLS/SSL协议进行数据加密。 #### 七、故障排查 **43. RabbitMQ常见的性能问题有哪些?** - **内存泄露:** ...

    RabbitMQ在CentOS 7.docx

    ##### 用户角色管理及 Vhost 权限 RabbitMQ 的用户角色分为五个级别:none、management、policymaker、monitoring 和 administrator。 - **None**:没有访问管理界面的权限。 - **Management**:除了基本功能外,还...

Global site tag (gtag.js) - Google Analytics