RabbitMQ用户角色及权限控制

作者: | 2017年10月25日

一、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  onepeople 123456

赋予其administrator角色:

1
sudo rabbitmqctl set_user_tags onepeople administrator

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

1
sudo rabbitmqctl list_users

四、为用户赋权:

1
sudo rabbitmqctl  set_permissions -p / onepeople '.*' '.*' '.*'

根据用户名查看权限:

1
sudo rabbitmqctl list_user_permissions onepeople