tutorial que how enable ejemplos security rabbitmq amqp multi-tenant

security - que - ¿Cómo se pueden hacer las colas privadas/seguras en RabbitMQ en un sistema de multitenencia?



rabbitmq que es (3)

He leído la guía de introducción proporcionada por RabbitMQ e incluso he contribuido con el sexto ejemplo de stormed-amqp , por lo que tengo un indicio del conocimiento sobre AMQP.

Sin embargo, la guía no es exhaustiva y evita cosas como la autenticación y la autorización.

Estamos diseñando un sistema de multitenencia que usará RabbitMQ en una situación de tipo RPC. Lo que quizás sea diferente acerca de esta implementación de RPC es que los procedimientos remotos serán en realidad otros programas inquilinos en el sistema.

Básicamente, quiero aislar los buses de datos, que incluyen las siguientes afirmaciones:

  1. Nuestro servidor no entregará datos al programa del inquilino incorrecto (esto se maneja fácilmente y es relevante pero no cuestionado).
  2. Los programas de arrendatarios no pueden leer datos de colas que no son suyas.
  3. Los programas para inquilinos no pueden escribir en colas que no son las suyas.

Esta pregunta es estrictamente sobre la seguridad de RabbitMQ. Sé que RabbitMQ es compatible con SSL, que proporciona un cifrado de extremo a extremo, y sé que RabbitMQ es compatible con la autenticación de nombre de usuario / contraseña. No sé si esto se aplica a la privatización del uso de la cola (también conocido como ACL), es decir, la conexión puede estar encriptada y el usuario puede ser verificado, pero el usuario puede leer y escribir en todas las colas.

¿Alguien puede iluminarme sobre este tema más avanzado? Estoy seguro de que RabbitMQ puede soportar este tipo de sistema pero no es exactamente positivo. Sé que hay cosas en RabbitMQ que simplemente no conozco, por ejemplo, ¿qué son vhosts y ayudarán en esta situación? Simplemente no veo la solución en mi conocimiento actual limitado a las claves de enrutamiento, nombres de cola e intercambios.


Creo que this tutorial demuestra lo que estás tratando de hacer.
El hecho de que la cola de devolución de llamada sea ​​exclusiva, se elimine automáticamente y su nombre se genere automáticamente debe proporcionar suficiente seguridad.


En un sistema de multitenencia, las colas serían seguras al definir los permisos que tienen los usuarios. Lea la sección de control de acceso de la guía de administración de RabbitMQ aquí http://www.rabbitmq.com/admin-guide.html

Comience por hacer que todo suceda dentro de vhosts y bloquee el host virtual por completo, es decir, no permita que nadie declare colas e intercambios en el host "/".


Para la seguridad en el servidor Rabbitmq, existen algunos mecanismos de seguridad en RabbitMQ:

  1. Control de acceso
  2. Autenticación SASL
  3. Soporte SSL