[rabbitmq-discuss] User Permissions

Matthias Radestock matthias at rabbitmq.com
Wed Jan 30 20:01:50 GMT 2013


On 30/01/13 19:33, Jerry Kuch wrote:
> I'd suggest you avoid the "generate obscure queue names"
> as a security policy.

That actually works pretty well as long as the names are 
cryptographically strong, since names of queues, exchanges, etc are not 
discoverable through AMQP or the various other messaging protocol 
RabbitMQ speaks; though they *are* visible in the management API.

Server-generated names (i.e. the ones a client gets back when declaring 
a queue with a blank name) fit that bill. So would client generated 
names that, say, were created by cryptographically hashing a salted 
client identify.

Things can get tricky though when it comes to remembering these names 
(or salts) across restarts of the app, and doing so in a sufficiently 
secure manner.

> You might also consider declaring *exclusive*
> queues which can only be used by the declaring consumer.

More precisely, exclusive queues are only accessible from the connection 
that declared them, and they get deleted when that connection terminates.

> Mixing those
> with the *auto-delete* property can be a convenient way to make
> transient, private queues that will go away when your consumer departs

Actually, "auto-delete" queues are typically shared between consumers on 
multiple connections (which implies that they cannot be exclusive 
queues), with the server deleting the queue when the last such consumer 
disappears.

Matthias.


More information about the rabbitmq-discuss mailing list