资源,需要保护的对象,在RocketMQ中,消息发送涉及的Topic、消息消费涉及的消费组,应该进行保护,故可以抽象成资源。
- 权限
针对资源,能进行的操作,
- 角色
RocketMQ中,只定义两种角色:是否是管理员。
另外,RocketMQ还支持按照客户端IP进行白名单设置。
在讲解如何使用ACL之前,我们先简单看一下RocketMQ ACL的请求流程:
对于上述具体的实现,将在后续文章中重点讲解,本文的目的只是希望给读者一个大概的了解。
3.1 acl配置文件
acl默认的配置文件名:plain_acl.yml,需要放在${ROCKETMQ_HOME}/store/config目录下。下面对其配置项一一介绍。
3.1.1 globalWhiteRemoteAddresses
全局白名单,其类型为数组,即支持多个配置。其支持的配置格式如下:
- 空
表示不设置白名单,该条规则默认返回false。
- “*”
表示全部匹配,该条规则直接返回true,将会阻断其他规则的判断,请慎重使用。
- 192.168.0.{100,101}
多地址配置模式,ip地址的最后一组,使用{},大括号中多个ip地址,用英文逗号(,)隔开。
- 192.168.1.100,192.168.2.100
直接使用,分隔,配置多个ip地址。
- 192.168.*._或192.168.100-200.10-20
每个IP段使用 “_” 或"-"表示范围。