Hi Simon,<div><br></div><div>My use case is something like this:</div><div><br></div><div>I'm working on a distributed system, which consists of externally facing HTTP servers that can kick off events through RabbitMQ, as well as internally facing components which need to react to those external events but also send internal privileged&nbsp;events to each other.</div><div><br></div><div>I am trying to protect against a situation where a compromised external HTTP server could send privileged events &nbsp;to our internal components.</div><div><br></div><div>Right now I have created two users and two exchanges, one for internal and one external.</div><div><br></div><div>The external user can only post to the external exchange. I have an internal component bound to the external exchange which performs validation on those incoming events before forwarding them on to the internal exchange. The rest of the internal components only bind to the internal exchange and know that the events they receive have been validated.</div><div><br></div><div>I would like another line of defense - if the external machine were compromised and the internal rabbit user's credentials were stolen somehow, there's nothing stopping that external machine from using those internal credentials and compromising the whole system. The firewall allows that machine to talk to RabbitMQ, but no one is enforcing that only the correct, limited user can log in over that channel.</div><div><br></div><div>The only way I see of doing it right now would be to have completely separate RabbitMQ instances, and have that validation component talk to both instances and forward between them, but this would increase complexity.</div><div><br></div><div>Let me know if that makes any sense.</div><div><br></div><div>Thanks in advance!</div><div>&nbsp;&nbsp;- Oren</div>