【问题标题】:Is VirtualHost a good pattern in RabbitMQ? [closed]VirtualHost 是 RabbitMQ 中的一个好模式吗? [关闭]
【发布时间】:2015-03-30 23:26:17
【问题描述】:

我有 100 个客户。每个客户端都有唯一的用户名、密码和两个频道(用户不能连接到除了自己的不同频道)。我应该为每个用户创建 VirtualHost 吗?

以下情况如何写正确的用户权限?:

  • my_user 只能使用 usernamepassword 连接到名为 user_vhost 的 vahost
  • my_user 只能从 user_channel 频道消费
  • my_user 只能发布到user_channel 频道
  • my_user可以远程连接

谢谢!

【问题讨论】:

    标签: rabbitmq virtualhost


    【解决方案1】:

    RabbitMQ 中的虚拟主机更像是一个逻辑容器,连接到特定虚拟主机的用户无法从另一个虚拟主机访问任何资源(交换、队列...)。我一直认为它是一种管理域之类的东西。

    根据您的解释,我认为每个用户都有一个虚拟主机是保持事情简单和干净的好方法。另外,这样你就不需要想出复杂的权限规则,只需根据虚拟主机授予权限即可。

    【讨论】:

    • 创建、删除、声明队列、交换等怎么样?消费者不应有权访问此操作。我可以通过仅授予每个虚拟主机权限来实现此目的吗?
    • 是的,可以设置这种权限,例如,rabbitmqctl
    • 怎么做? :-) 我正在搜索几个小时的示例 :-)
    • 好吧,你可以使用类似 rabbitmqctl set_permissions your_user "^$" "^$" "your_user_.*" 的东西。如果我没记错的话,这将授予 your_user 读取以名称“your_user_”开头的资源的权限。正则表达式^$ 用于拒绝。
    • 这里是权限文档rabbitmq.com/access-control.html
    猜你喜欢
    • 2022-01-10
    • 2020-08-25
    • 2012-11-01
    • 2011-12-17
    • 2011-12-18
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    相关资源
    最近更新 更多