多くの異なるユーザーが接続し、次の質問があるコンテキストで RabbitMQ を評価しています。
- RabbitMQ ユーザーを作成し、Rabbit に接続したいシステムのユーザーごとに実行時にその権限を設定し、セッションが終了した後にこの RabbitMQ ユーザーを削除することは可能ですか?
- 何千、何百万ものユーザーが大量に接続している場合でも?
- その場合、RabbitMQ Management API (REST) を使用する必要がありますか?
- RabbitMQ のユーザーと ACL システムを通じてセキュリティを強化する代わりに、他のユーザーが推測できないランダムな (ある種のセッション キー) 名前を持つ排他的な Exchange を各ユーザーに提供する必要がありますか?
前もって感謝します。
編集 - 明確化
システムに接続する各ユーザーは、動的に作成された特定のキューまたはエクスチェンジに対してのみ書き込みおよび読み取りができる必要があります。承認されていないユーザーが他の人のキューにサブスクライブできるようにしたくありません。また、システムへの匿名ユーザーの接続を許可する場合もありますが、同じセキュリティ ルールに従う必要があります。
私たちが見つけた解決策は次のとおりです。
- RabbitMQ の認証および承認システムを使用します。このダイナミックになるように設計されているかどうかはわかりません。それともそうでしたか?
- ユーザーごとにある種のセッションを作成し、そのランダムなセッション キーを使用して、ユーザーの交換やキューに名前を付けます。このようにして、サブスクライブする必要があるキューをユーザーのみが認識します。私たちのニーズには十分に安全に思えます。これはより良いアプローチですか?