Как сделать очереди конфиденциальными / безопасными в RabbitMQ в многопользовательской системе? - PullRequest
30 голосов
/ 20 октября 2011

Я прочитал руководство Get Started , предоставленное RabbitMQ, и даже внес шестой пример в stormed-amqp , поэтому у меня есть знания о AMQP.

Однако это руководство не является исчерпывающим и избегает таких вещей, как аутентификация и авторизация.

Мы разрабатываем многопользовательскую систему, которая будет использовать RabbitMQ в RPC-ситуации. Что, возможно, отличается в этой реализации RPC, так это то, что удаленные процедуры на самом деле будут другими программами-арендаторами в системе.

По сути, я хочу изолировать шины данных, которые включают в себя следующие утверждения:

  1. Наш сервер не будет доставлять данные не той программе-арендатору (это легко обрабатывается и актуально, но не подвергается сомнению).
  2. Программы-арендаторы не могут читать данные из не принадлежащих им очередей.
  3. Программы-арендаторы не могут писать в не принадлежащие им очереди.

Этот вопрос касается исключительно безопасности RabbitMQ. Я знаю, что RabbitMQ поддерживает SSL, который обеспечивает сквозное шифрование, и я знаю, что RabbitMQ поддерживает аутентификацию по имени пользователя и паролю. Я не знаю, относятся ли эти вещи к приватизации использования очереди (или ACL), т. Е. Соединение может быть зашифровано, и пользователь может быть проверен, но пользователь может читать и записывать из всех очередей.

Кто-нибудь может просветить меня по этой более сложной теме? Я уверен, что RabbitMQ может поддерживать такую ​​систему, но не совсем позитивную. Я знаю, что в RabbitMQ есть вещи, о которых я просто не знаю, например, что такое vhosts и помогут ли они в этой ситуации? Я просто не вижу решения в моих текущих знаниях, ограниченных ключами маршрутизации, именами очереди и обменами.

Ответы [ 3 ]

6 голосов
/ 11 ноября 2011

В многопользовательской системе вы должны обеспечить безопасность очередей, определяя разрешения, которые имеют пользователи.Прочитайте раздел управления доступом в руководстве администратора RabbitMQ здесь http://www.rabbitmq.com/admin-guide.html

Начните с того, чтобы все происходило внутри vhosts, и полностью блокируйте общий vhost, т.е. не позволяйте никому объявлять очереди и обмены на vhost "/".

2 голосов
/ 24 октября 2011

Я считаю, этот учебник демонстрирует, что вы пытаетесь сделать.
Тот факт, что очередь обратного вызова является эксклюзивным, автоматически удаляется и имеет автоматически генерируемое имя, должен обеспечить достаточную безопасность.

0 голосов
/ 18 апреля 2018

Для обеспечения безопасности на сервере Rabbitmq в RabbitMQ есть некоторый механизм безопасности:

  1. Контроль доступа
  2. SASL-аутентификация
  3. Поддержка SSL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...