天天看點

RabbitMQ系列(二)VirtualHost作用及角色權限管理實戰

VirtualHost 作用及用法

Virtual Hosts的使用場景

多租戶的使用場景,比如主機資源緊缺情況下開發和測試共用一個RabbitMQ,可以使用Virtual Hosts将開發和測試隔離開

1.管理界面
RabbitMQ系列(二)VirtualHost作用及角色權限管理實戰

2.VirtualHost介紹

RabbitMQ系列(二)VirtualHost作用及角色權限管理實戰

從上圖可以看到,Admin界面可以看到User、VirtulalHost、Policies、Limits、Cluster 等幾個選項,今天要介紹的VirtualHost就在其中

RabbitMq的 VirtualHost(虛拟消息伺服器),每個VirtualHost相當于一個相對獨立的RabbitMQ伺服器,像mysql有資料庫的概念并且可以指定使用者對庫和表等操作的權限。每個VirtualHost之間是互相隔離的,exchange-交換機、queue-隊列、message-消息 不能互通

拿資料庫(用MySQL)來對比:RabbitMq相當于MySQL,RabbitMq中的VirtualHost就相當于MySQL中的一個db庫,你可以在mysql中建立很多庫,設定庫的權限操作。

建立一個VirtualHost ,可以看到

預設的 / host下面有兩個使用者 admin、guest

建立的 jzj 下面隻有1個使用者 admin

RabbitMQ系列(二)VirtualHost作用及角色權限管理實戰

3.User資訊

我們先看User資訊,有2個User,admin和guest,點開Virtual 也可以看到使用者資訊

RabbitMQ系列(二)VirtualHost作用及角色權限管理實戰

建立一個User資訊test

RabbitMQ系列(二)VirtualHost作用及角色權限管理實戰

4.将virtualHost和User 權限綁定賦權

選擇jzj 虛拟消息伺服器,然後選擇使用者test,賦予test權限

RabbitMQ系列(二)VirtualHost作用及角色權限管理實戰

可以看到 virtualHost jzj 已經添加了使用者 test,現在擁有兩個使用者admin和test

當然我們也可以用指令來建立使用者和賦予權限,參考 RabbitMQ系列(一)https://editor.csdn.net/md/?articleId=106609072

建立使用者并配置權限
建立使用者:
rabbitmqctl add_user 使用者名 密碼
例如:
rabbitmqctl add_user test test

為使用者配置權限:
rabbitmqctl set_permissions -p / 使用者名 ".*" ".*" ".*"
例如:
rabbitmqctl set_permissions -p jzj test ".*" ".*" ".*"
其中[/]可以通路預設虛拟伺服器(virtual host),如果改成虛拟伺服器名稱jzj,表示該使用者能通路這個虛拟伺服器

配置角色:
rabbitmqctl set_user_tags 使用者名 角色類型
例如:
rabbitmqctl set_user_tags test administrator
           

5.角色管理

配置角色

rabbitmqctl set_user_tags [user] [role]

RabbitMQ中的角色分為如下五類:none、management、policymaker、monitoring、administrator

5.1 none

不能通路 management plugin

5.2 management

使用者可以通過AMQP做的任何事外加:

列出自己可以通過AMQP登入的virtual hosts

檢視自己的virtual hosts中的queues, exchanges 和 bindings

檢視和關閉自己的channels 和 connections

檢視有關自己的virtual hosts的“全局”的統計資訊,包含其他使用者在這些virtual hosts中的活動。

5.3 policymaker

management可以做的任何事外加:

檢視、建立和删除自己的virtual hosts所屬的policies和parameters

5.4 monitoring

management可以做的任何事外加:

列出所有virtual hosts,包括他們不能登入的virtual hosts

檢視其他使用者的connections和channels

檢視節點級别的資料如clustering和memory使用情況

檢視真正的關于所有virtual hosts的全局的統計資訊

5.5 administrator

policymaker和monitoring可以做的任何事外加:

建立和删除virtual hosts

檢視、建立和删除users

檢視建立和删除permissions

關閉其他使用者的connections

下一篇介紹 實戰 RabbitMQ進階-Queue隊列特性 (一)簡單隊列