Каковы минимальные права доступа для вышестоящего пользователя при использовании RabbitMQ Exchange Federation

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

Я использую федерацию Exchange между двумя кластерами RabbitMQ и хочу ограничить права пользователя в восходящем кластере, чтобы он мог объединять сообщения только с одного Exchange. Это делается для того, чтобы пользователь, используемый нижестоящим кластером, не мог публиковать/подписываться/настраивать что-либо, выходящее за рамки его предполагаемой цели (или, по крайней мере, настолько, насколько это возможно).

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

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

Федерация работает нормально, когда у пользователя есть эти настройки, но это всемогущий пользователь, и мне это не нравится. Если я попытаюсь перенастроить его на что-то более конкретное, я получу ошибку, подобную приведенной ниже:

      {server_initiated_close,403,
<<"ACCESS_REFUSED - access to exchange 'exchange-a' in vhost 'vhost-a' refused for user 'user-a'">>}

Как я могу ограничить эти разрешения, чтобы пользователь федерации не имел больше доступа, чем ему нужно?

1 ответ

Я не нашел ответа на этот вопрос ни в одной из своих книг или онлайн-ресурсов, поэтому этот ответ основан на наблюдениях, пробах и ошибках...

Решение

Федерация Exchange, по-видимому, требует вышестоящего пользователя, у которого есть разрешения на чтение из целевого вышестоящего обмена, а также на настройку, чтение и запись в обмен и очередь вышестоящей федерации, которые создаются динамически.

Имена динамически созданного обмена и очереди используют исходное имя обмена и оба имеют префикс federation: и суффикс с ->и имя нисходящего кластера. Динамически создаваемая биржа также имеет суффикс дополнительной буквы алфавита.

Основываясь на этом, я обнаружил, что эти минимальные права доступа работают очень хорошо (с исправлением имен Exchange и нисходящего кластера):

Другие вопросы по тегам