RabbitMQ访问控制
Access Control (Authentication, Authorisation) in RabbitMQ
认证和授权这两个概念经常容易被混淆,甚至被互换使用。在RabbitMQ中这是错的,它们是两个独立的概念。可以简单的这样理解,认证就是“识别这个用户是谁”,而授权就是“决定哪些用户不能这么做”。
Default Virtual Host and User
当服务器第一次启动运行的时候,并且检测到它的数据库没有被初始化或者已经被删除了,那么它将用下面这样的资源配置初始化一个新的数据库:
- 一个虚拟主机,名字叫/
- 一个名字叫guest的用户,并且密码也是guest,它可以访问/下面的所有资源
我们建议删除guest用户,或者修改它的密码,尤其是当你的MQ是公共访问的时候。
"guest" user can only connect via localhost
默认情况下,guest用户被禁止通过远程连接到RabbitMQ,它只能用localhost连接。你自己创建的其它的用户不会受限于这一条。
这个配置是通过配置文件中的loopback_users来设置的。
如果你希望guest用户从远程主机连接上来,你应该设置loopback_users为none。一个完整的配置应该是这样的:

或者在rabbitmq.config中这样配置:

How Permissions Work
当一个RabbitMQ客户端和服务器建立一个连接的时候,它指定一个它打算操作的虚拟主机。第一个级别的访问控制就在这个这里,这个时候服务器会检查这个用户是否有权限访问该虚拟主机。
资源,比如:交换机和队列,它们是在一个特定的虚拟主机下被命名的实体。相同名字在不同的虚拟主句中表示不同的资源。第二级别的访问控制就是强制检查对资源的某个确定的操作是否被允许执行。
RabbitMQ对一个资源有configure(配置)、read(读)、write(写)操作。(PS:简单的理解就是读、写、执行这三种操作,俗称rwx)
- configure操作指的是创建或者销毁资源
- write操作指的是注入一个消息到资源中
- read操作指的是从资源中检索一个消息
小结:
第一级别的访问控制是在客户端与服务器建立连接的时候检查用户对虚拟主机是否有访问权限
第二级别的访问控制是在执行操作的时候检查用户是否对资源有相应的访问权限
为了在资源上执行操作,用户必须被授权相应的权限。下面这个表显示的是在执行AMQP命令的时候需要哪些权限:

权限用正在表达式来表示
参考 http://www.rabbitmq.com/access-control.html
RabbitMQ访问控制的更多相关文章
- rabbitmq访问控制试坑篇
访问控制我理解就是两层,第一层是Virtual host,相当于一个个独立主机 第二层是这个permissions,对照下图权限表 权限表(重要!) 需求 configgure write read ...
- RabbitMQ入门_15_访问控制
参考资料:https://www.rabbitmq.com/access-control.html A. 核心概念 Virtual Host:虚拟主机为 RabbitMQ 中的资源提供了逻辑分组与隔离 ...
- RabbitMQ简介
AMQP简介 在了解RabbitMQ之前,首先要了解AMQP协议.AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消 ...
- RabbitMq 技术文档
RabbitMq 技术文档 目录 1 AMQP简介 2 AMQP的实现 3 RabbitMQ简介 3.1 概念说明 3.2 消息队列的使用过程 3.3 RabbitMQ的特性 4 RabbitMQ使用 ...
- AMQP与RabbitMQ简介
MQ(Message Queue,消息队列)是一种应用系统之间的通信方法.是通过读写出入队列的消息来通信(RPC则是通过直接调用彼此来通信的). 1.AMQP协议 在了解RabbitMQ之前,首先要了 ...
- RabbitMQ学习3----运行和管理RabbitMQ
1.服务为管理 Erlang天生就是为了让应用程序无需知道对方是否存在同一台机器上即可互相通信. Erlang节点:Erlang虚拟机的每个实例.多个Erlang应用程序可以运行在同一个节点之上.节点 ...
- RabbitMQ安装与初始配置
[TOC] 本文只讨论linux下的Rabbitmq安装. Erlang安装 rabbitmq依赖于Erlang,需先安装,推荐安装rabbitmq/erlang-rpm: #clone源码 git ...
- RabbitMQ windows安装官方文档翻译!
RabbitMQ Windows安装和配置 下载地址 官网windows下载地址: http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/r ...
- 权限管理系统之集成Shiro实现登录、url和页面按钮的访问控制
用户权限管理一般是对用户页面.按钮的访问权限管理.Shiro框架是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理,对于Shiro的介绍这里就不多说.本篇博客主要是了解Shiro的 ...
随机推荐
- centos 7.3 安装配置python3.6.1
1.先安装一些我遇到的依赖问题(如果有依赖问题按提示安装): yum install xz gcc zlib zlib-devel 2.官网下载源码包 地址:https://www.python.or ...
- Python 验证码识别-- tesserocr
Python 验证码识别-- tesserocr tesserocr 是 Python 的一个 OCR 识别库 ,但其实是对 tesseract 做的一 层 Python API 封装,所以它的核心是 ...
- dubbo入门学习 一SOA
SOA是什么?SOA全英文是Service-Oriented Architecture,中文意思是中文面向服务编程,是一种思想,一种方法论,一种分布式的服务架构(具体可以百度). 用途:SOA解决多服 ...
- H5新特性——--第三方绘图工具库 echarts(canvas)---SVG绘图
今天学习的内容 3.1:h5新特性---第三方绘图工具库 echarts(canvas) 百度 echarts;d3;two.js;.... 3.2:h5新特性---SVG绘图 3.2:h5新特性-- ...
- SAS 分组与排序
SAS 分组与排序 SAS对数据集进行操作时,经常需要在SET.MERGE.MODIFY或 UPDATE语句中使用分组数据.使用分组数据最基本的方法是使用BY 语句,其基本形式如下: BY 变量列表; ...
- mysql自定义时间段分组
说明:一下是自定义7天为一个时间段的分组统计 select datediff(ms_time, '开始时间') div 7 as time , count(*) count,sum(money) mo ...
- HTML的Tomcat
修改D:\software\apache-tomcat-8.0.44\webapps\ROOT\WEB-INF\web.xml: <?xml version="1.0" en ...
- Django模板变量及静态文件引用
一.模板变量传递 1.视图向模板传递变量 视图中的列表,数组,字典,函数均可以传递给模板 在视图中定义变量通过render(content{‘name’ : value})传递给模板 模板通过{{ ...
- istio实现对外暴露服务
1.确认istio-ingressgateway是否有对外的IP kubectl get service istio-ingressgateway -n istio-system 如果 EXTERNA ...
- 直播流RTMP 知识
分享直播相关知识点: http://blog.csdn.net/kingroc/article/details/50839994 #!/bin/bash# Order Finish Startup# ...