RabbitMQ多用户角色权限控制的见解

关于RabbitMQ的权限控制的介绍也有很多(很多都是对官网的翻译),但是根据他们的介绍,最后新建的用户还是能对exchange和queue这些组件进行增删操作。我们希望通过对角色的控制的同时,也要做到对exchange和queue这些核心组件的权限控制。

如何通过设置tags来达到目的呢:

RabbitMQ有以下几种tags,management,policymaker,monitoring,administrator,注意这些都是tags,这些tags默认一般都是对Admin一项起作用,对exchange和queue的权限不起作用,比如policymaker角色的用户只能看到policies。

那如何在设置角色的时候,不只对Admin起作用,还要对Exchanges和Queues也起作用呢,我们可以通过设置Permission能达到目的,操作如下:

安装完rabbitmq后,通过命令行,新建一个administrator角色的用户,并赋予读写和配置的权限,命令如下:

rabbitmqctl add_user admin 123456
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin "." "." ".*"

然后用此用户登录RabbitMQ的控制台,就可以对其他用户进行管理。详细步骤如下:

说明:要建一个management角色的用户managementer,它只能访问指定的vhost /ha-exactly,且不能对Exchanges和Queues进行增删操作,只有查看功能。

首先,新建用户managementer:

新设置的用户还没有指定访问的访问vhost,点击managementer,进入对managementer权限控制的界面:

然后:为用户设置权限权限,截屏如下:

说明:Configure 权限比较大,包括对Exchanges和Queues的增删查权限,如果Configure regexp设置为空,则表示没有此项权限。按截屏设置就OK了

Write和Read表示对Queues的写和读,这个可选,若是policymaker,monitor也可以不设置。

设置成功后,清除浏览器缓存,然后重新用managementer登录,然后对exchanges和queue进行增删操作,就会提示权限不够,验证成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章