文档章节

RabbitMQ用户角色及权限控制

n
 nibilly
发布于 2015/04/28 16:25
字数 884
阅读 73
收藏 0

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

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的运维,例如:


  1. $sudo rabbitmqctl add_user  user_admin  passwd_admin  

赋予其administrator角色:

  1. $sudo rabbitmqctl set_user_tags user_admin administrator  


可以创建RabbitMQ监控用户,负责整个MQ的监控,例如:

  1. $sudo rabbitmqctl add_user  user_monitoring  passwd_monitor  

赋予其monitoring角色:

  1. $sudo rabbitmqctl set_user_tags user_monitoring monitoring  


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

  1. $sudo rabbitmqctl  add_user  user_proj  passwd_proj  

赋予其monitoring角色:

  1. $sudo rabbitmqctl set_user_tags user_proj management  


创建和赋角色完成后查看并确认:

  1. $sudo 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的权限验证结果、因此权限发生变化后需要重连才能生效。

为用户赋权:

[plain] view plaincopy在CODE上查看代码片派生到我的代码片

  1. $sudo rabbitmqctl  set_permissions -p /vhost1  user_admin '.*' '.*' '.*'  

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

查看权限:

[plain] view plaincopy在CODE上查看代码片派生到我的代码片

  1. $sudo rabbitmqctl list_user_permissions user_admin  

  2. Listing permissions for user "user_admin" ...  

  3. /vhost1<span style="white-space:pre"> </span>.*<span style="white-space:pre"> </span>.*<span style="white-space:pre"> </span>.*  

  4.   

  5. $sudo rabbitmqctl list_permissions -p /vhost1  

  6. Listing permissions in vhost "/vhost1" ...  

  7. user_admin<span style="white-space:pre">  </span>.*<span style="white-space:pre"> </span>.*<span style="white-space:pre"> </span>.*  


本文转载自:http://blog.csdn.net/zyz511919766/article/details/42292655

共有 人打赏支持
n
粉丝 12
博文 179
码字总数 41779
作品 0
厦门
Centos7部署RabbitMQ 3.7.6

简介 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是...

阿dai
07/10
0
0
CentOS7.X安装RabbitMQ-3.6.10

CentOS7.0安装RabbitMQ 安装前的准备 源码安装erlang erlang下载 erlang-20.0 加入环境变量 测试启动erlang 安装RabbitMQ 下载地址 Binary .tar.xz .zip cd /rootwget http://www.rabbitmq.c...

qq2233466866
06/11
0
0
基于CentOS7.2系统对RabbitMQ单机版安装过程

准备虚拟机系统 我的系统如下 系统版本7.2 清理yum并从新缓存 关闭防火墙 安装perl 安装wget工具 安装相关依赖工具 下载erlang安装包 解压erlang 配置编译环境 安装 验证erlang是否安装成功 ...

凌晨一点
昨天
0
0
centos7安装rabbitmq3.7.3

安装erlang 安装rabbitmq服务 开机启动 web插件 配置文件位置

paascloud
02/27
0
0
高可用RabbitMQ安装及使用 

高可用RabbitMQ安装及使用 引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消...

DemonsI
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

angular 解决其他电脑不能访问的问题。

ng serve --host 0.0.0.0 --disable-host-check

miaojiangmin
今天
1
0
优酷视频文件怎么转换格式

  以前在优酷上下载视频都只是在手机上观看,但随着科技的发展,对于视频的要求也逐渐增多,不再只是观看视频那么简单,在精彩的部分还会将其单独分割出来,然后进行视频剪辑,可以做出我们...

萤火的萤火
今天
0
0
数据结构:散列

在一个数据结构中查找key元素,用顺序查找、二分查找都需要经过一系列关键之比较才能查找到结果,平均查找长度与数据量有关,元素越多比较次数就越多。 如果根据元素的关键字就能知道元素的存...

京一
今天
0
0
Apache RocketMQ 正式开源分布式事务消息

近日,Apache RocketMQ 社区正式发布4.3版本。此次发布不仅包括提升性能,减少内存使用等原有特性增强,还修复了部分社区提出的若干问题,更重要的是该版本开源了社区最为关心的分布式事务消...

阿里云云栖社区
今天
30
0
使用JavaScript和MQTT开发物联网应用

如果说Java和C#哪个是最好的开发语言,无疑会挑起程序员之间的相互怒怼,那如果说JavaScript是动态性最好的语言,相信大家都不会有太大的争议。随着越来越多的硬件平台和开发板开始支持JavaS...

少年不搬砖老大徒伤悲
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部