嚴華 发表于 2024-7-31 11:30:00

RabbitMQ3.13.x之四_RabbitMQ脚色阐明及创建用户与授权

RabbitMQ3.13.x之四_脚色阐明及创建用户与授权



1. 访问和授权

   官网阐明:Management Plugin | RabbitMQ

[*] RabbitMQ中的访问和授权时以Tag来控制的
[*] 请留意,由于“管理员”做“监视”做的所有事变,而“监视”完成“管理”做的一切事变,因此每个用户通常最多需要一个标记,也即一个用户只能分配一个Tag
1. Tags阐明

管理 UI 需要身份验证和授权,就像 RabbitMQ 需要的那样 它来自连接客户端。除了乐成的身份验证外,管理 UI 访问还由用户标记控制。 这些标签使用 rabbitmqctl 举行管理。 默认情况下,新创建的用户不会设置任何标签。
有关用户和根据的一般建议,请参阅生产清单 管理。
Tag(标记)Capabilities(能力)None(无)无法访问管理插件management(管理)用户可以通过消息通报协议执行的任何操纵,以及:列出他们可以通过 AMQP 登录的虚拟主机在“他们的”中查看所有队列、互换和绑定 虚拟主机查看和关闭自己的频道和连接查看涵盖其所有“环球”统计数据 虚拟主机,包括其他用户的运动 在他们内里policymaker(决议者)“管理”可以加上的一切:查看、创建和删除虚拟策略和参数 他们可以通过 AMQP 登录的主机monitoring(监测)“管理”可以加上的一切:列出所有虚拟主机,包括它们可以 不使用消息通报协议举行访问查看其他用户的连接和频道查看节点级数据,例如内存使用情况和集群查看所有虚拟主机的真正全局统计信息administrator(管理员)“政策订定者”和“监督者”可以加上的一切:创建和删除虚拟主机查看、创建和删除用户查看、创建和删除权限关闭其他用户的连接 请留意,由于“管理员”会执行所有“监视” 做,“监控”做“管理”做的一切, 每个用户通常最多需要一个标签。
对资源的正常 RabbitMQ 权限仍适用于监视器和 管理员;仅仅由于用户是监视器或 管理员未授予他们对交易所的完全访问权限, 通过管理的队列和绑定 插件或其他方式。
所有用户只能列出虚拟中的对象 他们拥有任何权限的主机。
假如由于缺少用户而无法访问管理 UI 具有富足的权限或忘记/不正确的权限,CLI 工具必须 用于管理用户及其根据。rabbitmqctl add_user 应该用于创建用户,rabbitmqctl set_permissions授予 用户所需的权限,最后是 rabbitmqctl set_user_tags应用于授予用户管理 UI 访问权限。
2. 命令行示例

以下示例创建一个对管理 UI/HTTP API 具有完全访问权限的用户(如 所有虚拟主机和管理功能):
# create a user
rabbitmqctl add_user full_access s3crEt
# tag the user with "administrator" for full management UI and HTTP API access
rabbitmqctl set_user_tags full_access administrator
2. 管理界面新建用户及访问授权

   rabbitmq默认的guest用户具有所有的操纵权限,因此只能限定当地访问,不能远程访问
1. 管理界面新建用户

https://i-blog.csdnimg.cn/blog_migrate/7fca812a1162e0b39ec35d69e24b6d8c.png
2. 管理界面中的授权阐明

   Comma-separated list of tags to apply to the user. Currently supported by the management plugin:


[*] management
User can access the management plugin
[*] policymaker
User can access the management plugin and manage policies and parameters for the vhosts they have access to.
[*] monitoring
User can access the management plugin and see all connections and channels as well as node-related information.
[*] administrator
User can do everything monitoring can do, manage users, vhosts and permissions, close other user’s connections, and manage policies and parameters for all vhosts.
Note that you can set any tag here; the links for the above four tags are just for convenience.
要应用于用户的逗号分隔的标记列表。目前由管理插件支持:
谋划
用户可以访问管理插件
-决议者
用户可以访问管理插件,并管理他们可以访问的vhosts的策略和参数。
-监测
用户可以访问管理插件,查看所有连接和通道以及节点相干信息。
管理员
用户可以做监控所能做的一切,管理用户、vhosts和权限,关闭其他用户的连接,并管理所有vhosts的策略和参数。
请留意,您可以在此处设置任何标记;上面四个标签的链接只是为了方便。
3. guest用户不能远程登录提示

https://i-blog.csdnimg.cn/blog_migrate/5063a9e0c9b10141e09fad91f83b247f.png
3. 创建用户

1. 根本命令

# 创建vhost
rabbitmqctl add_vhost <vhost_name>
# 创建用户
rabbitmqctl add_user <username> <password>
# 给用户分配tag(角色)
rabbitmqctl set_user_tags <username> <tag>
# 查看用户列表
rabbitmqctl list_users
# 修改用密码
rabbitmqctlchange_password<username> <newPassword>
# 开启某个用户远程访问
rabbitmqctl set_permissions -p "<vhost_name>" <username> ".*" ".*" ".*"
# 删除用户
rabbitmqctldelete_user<username>
2. 现实案例

# 创建用户
rabbitmqctl add_user mytest test123
# 给用户分配tag(角色)
rabbitmqctl set_user_tags mytest administrator
# 开启远程访问
rabbitmqctl set_permissions -p "/" mytest ".*" ".*" ".*"
3. bat脚本创建用户


[*]Windows中一个bat脚本执行多条命令的阐明
   cmd1 & cmd2 & cmd3 : 无论前面命令是否执行乐成,后面命令都会执行
cmd1 && cmd2 && cmd3: 仅当前面命令乐成时,才执行后面的命令
cmd1 || cmd2 || cmd3: 仅当前面命令失败时.才执行后面命令

[*]编写脚本如下
   新建一个createRabbitUser.bat,内容如下
留意:所有命令必须在同一行,不能换行,否则会执行失败
rabbitmqctl add_user mytest test123 && rabbitmqctl set_user_tags mytest administrator && rabbitmqctl set_permissions -p "/" mytest ".*" ".*" ".*"
pause
4. 查看用户列表_命令行

   输入命令rabbitmqctl list_users,查看用户如下
https://i-blog.csdnimg.cn/blog_migrate/bc6ea3eda5c40060a8157e0955e5afeb.png
5. 查看用户列表_管理界面


[*]通过脚本创建用户后,如下
https://i-blog.csdnimg.cn/blog_migrate/bc6acba2a4982abd45ebd29058c079b2.png
点击用户名,如下图
https://i-blog.csdnimg.cn/blog_migrate/3564dc04f668797a51b7d269132cdc92.png

[*]mytest用户远程登录如下
https://i-blog.csdnimg.cn/blog_migrate/81509c94a1ca592857344d106ba8c4fd.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: RabbitMQ3.13.x之四_RabbitMQ脚色阐明及创建用户与授权