RabbitMQ多用戶角色權限控制的見解

關於RabbitMQ的權限控制的介紹也有很多(很多都是對官網的翻譯),但是根據他們的介紹,最後新建的用戶還是能對exchange和queue這些組件進行增刪操作。我們希望通過對角色的控制的同時,也要做到對exchange和queue這些核心組件的權限控制。

如何通過設置tags來達到目的呢:

RabbitMQ有以下幾種tags,management,policymaker,monitoring,administrator,注意這些都是tags,這些tags默認一般都是對Admin一項起作用,對exchange和queue的權限不起作用,比如policymaker角色的用戶只能看到policies。

那如何在設置角色的時候,不只對Admin起作用,還要對Exchanges和Queues也起作用呢,我們可以通過設置Permission能達到目的,操作如下:

安裝完rabbitmq後,通過命令行,新建一個administrator角色的用戶,並賦予讀寫和配置的權限,命令如下:

rabbitmqctl add_user admin 123456
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin "." "." ".*"

然後用此用戶登錄RabbitMQ的控制檯,就可以對其他用戶進行管理。詳細步驟如下:

說明:要建一個management角色的用戶managementer,它只能訪問指定的vhost /ha-exactly,且不能對Exchanges和Queues進行增刪操作,只有查看功能。

首先,新建用戶managementer:

新設置的用戶還沒有指定訪問的訪問vhost,點擊managementer,進入對managementer權限控制的界面:

然後:爲用戶設置權限權限,截屏如下:

說明:Configure 權限比較大,包括對Exchanges和Queues的增刪查權限,如果Configure regexp設置爲空,則表示沒有此項權限。按截屏設置就OK了

Write和Read表示對Queues的寫和讀,這個可選,若是policymaker,monitor也可以不設置。

設置成功後,清除瀏覽器緩存,然後重新用managementer登錄,然後對exchanges和queue進行增刪操作,就會提示權限不夠,驗證成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章