zfo*_*fou 6 permissions amqp rabbitmq
我有一个用例,我需要创建一个用户并授予他在现有队列中只有pub/sub的权限,这是一个例子:
我没有得到设置这样的用户管理策略的方法,我发现的唯一方法是为每个用户创建一个vhost,这样,用户将在其自己的vhost中拥有完全访问权限,但是有一个很大的缺点:我有一个消费者应用程序,订阅所有队列并等待用户输入,如果每个用户都有自己的vhost,那么我需要每个vhost有1个用户,因为我没有办法使用与rabbitmq相同的连接从多个vhost使用.
Der*_*ley 13
小清晰度:您应该发布到交换,并订阅队列.话虽这么说,你可能想要一个"ex-foo"和"ex-bar"用于你的交流...基本上每个用户一个.它可以以不同的方式完成,但这可行.
添加权限时,您可以使用正则表达式来设置允许用户执行的操作.
例如,使用rabbitmqctl命令行设置权限,您可以这样做:
rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*"
此命令指示RabbitMQ代理向名为tonyg的用户授予对名为/ myvhost的虚拟主机的访问权限,并对名称以"tonyg-"开头的所有资源具有配置权限,并对所有资源具有写入和读取权限.
请注意,三个"引号"中的权限顺序为:configure,write,read.
在您的情况下,您可能希望设置这样的权限:
这将授予权限的foo用户读取和写入到开头的交易所或队列ex-foo或Q-foo
你可能能够摆脱更严格的限制,比如
在通过交换发布时,我不确定您是否需要对队列的写权限.我还没有必要在我的安全性中设置这种级别的粒度.
| 归档时间: |
|
| 查看次数: |
7942 次 |
| 最近记录: |