Секреты движка RabbitMQ
Механизм секретов RabbitMQ динамически генерирует учетные данные пользователей на основе настроенных разрешений и виртуальных хостов. Это означает, что службам, которым необходим доступ к виртуальному хосту, больше не нужно жестко прописывать учетные данные.
Поскольку каждая служба обращается к очереди сообщений с уникальными учетными данными, аудит значительно упрощается при обнаружении сомнительного доступа к данным. Легко отслеживайте проблемы вплоть до конкретного экземпляра службы по имени пользователя RabbitMQ.
StarVault использует как собственную внутреннюю систему отзыва, так и функцию удаления пользователей RabbitMQ при создании пользователей RabbitMQ, чтобы гарантировать, что пользователи станут недействительными в течение разумного срока действия аренды.
1. Установка
Большинство секретных модулей необходимо настроить заранее, прежде чем они смогут выполнять свои функции. Эти действия обычно выполняет оператор или инструмент управления конфигурацией.
-
Включите механизм секретов RabbitMQ:
$ starvault secrets enable rabbitmq Success! Enabled the rabbitmq secrets engine at: rabbitmq/По умолчанию движок секретов будет монтироваться по имени движка. Чтобы включить движок секретов по другому пути, используйте аргумент -path.
-
Настройте учетные данные, которые StarVault использует для связи с RabbitMQ для генерации учетных данных:
$ starvault write rabbitmq/config/connection \ connection_uri="http://localhost:15672" \ username="admin" \ password="password" Success! Data written to: rabbitmq/config/connectionПользователь StarVault должен обладать правами администратора для управления другими пользователями.
-
Настройте роль, которая сопоставляет имя в StarVault с разрешениями виртуального хоста:
$ starvault write rabbitmq/roles/my-role \
vhosts='{"/":{"write": ".*", "read": ".*"}}'
Success! Data written to: rabbitmq/roles/my-role
Записывая путь roles/my-role, мы определяем роль my-role. Эта роль будет создана путём оценки заданных выражений vhosts, vhost_topics и tags . По умолчанию роли не назначены ни теги, ни виртуальные хосты, ни разрешения на доступ к топикам. Если разрешения на доступ к топикам не определены и используется бэкэнд авторизации по умолчанию, публикация в topic exchange или подписка на топик всегда разрешены.
2. Использование
После настройки механизма секретов и получения пользователем/машиной токена StarVault с необходимыми разрешениями он может генерировать учетные данные.
-
Создайте новые учетные данные, прочитав из конечной точки
/credsимя роли:
$ starvault read rabbitmq/creds/my-role
Key |
Value |
|---|---|
|
rabbitmq/creds/my-role/I39Hu8XX0mbof4wiK5bKMn9 |
|
768h |
|
true |
|
3yNDBikgQvrkx2VA2zhq5IdSM7Iwk1rYMYJr |
|
root-39669250-3894-8032-c420-3d58483ebfc4 |
Используя списки управления доступом (ACL), можно ограничить использование движка секретов rabbitmq, так что доверенные операторы смогут управлять определениями ролей, а пользователи и приложения будут ограничены в учетных данных, которые им разрешено читать.