Replies: 1 comment 2 replies
-
@aranvir RabbitMQ 3.13.x is out of community support. Permissions are based on entity names and thus apply to both current and future queues, streams, exchanges. I don't know what you mean by "set config" since except for the default user permissions, none of the permissions are managed via I don't understand what you mean by "ALL or NO" but yes, that's how the permission works: a given user either has a permission on a given entity (based on what the user's permission pattern matches), or does not. Separating publishers is a matter of limiting what exchanges they can access. Publishers often do not need to bind an exchange to anything, consumers do all that. I'd start by picking a naming convention for the exchanges you need (unless you plan on using only the built-in |
Beta Was this translation helpful? Give feedback.
-
Community Support Policy
RabbitMQ version used
3.13.7 or older
How is RabbitMQ deployed?
Community Docker image
Steps to reproduce the behavior in question
Hi I have a hard time wrapping my header around the permission definition https://www.rabbitmq.com/docs/3.13/access-control#authorisation. I want to have a separate publisher and consumer user. For the publisher it is fine to have access rights to everything. However, I want the consumer user to be constraint to, well, consuming. I imagine those are quite basic rabbitmq questions but I just couldn't find a clear explanation on this in the docs.
This consumer user needs the permissions to create a queue, bind it to the exchange, and to read messages from the queue. Here, I want to allow ad-hoc subscriptions of new clients. By default, the expectation is that each client will have its own queue. However, I cannot figure out which permissions to set to make this work.
From the docs, I know that I have to set configure, write, and read permissions. Furthermore, I assume the regex string just specifies "grant X on exchange". For example, does this mean I have to give either ALL or NO configuration rights for an exchange?
Lastly - from the permission table I assume the following:
The only way I could figure out to make it work is to set config and write permissions to
^q-.*$
and then make it mandatory to have queue names start withq-
. Is that how it's supposed to work? Is there no way to give permissions based on "category" like all exchanges or all queues?Beta Was this translation helpful? Give feedback.
All reactions