MQ在生产环境的使用为了保证集群的稳定,和故障的快速确认和恢复,都会开启权限验证。保证所有在生产环境的topic以及消费者都是有归属的,可查的。
RocketMQ 开启校验的步骤大致如下:
broker 配置
需要开启broker的鉴权,需要将配置项aclEnable
设置为true
设置相关账号
配置文件plain_acl.yml
默认是在${ROCKETMQ_HOME}/conf/plain_acl.yml
,核心配置项如下:
字段 | 取值 | 含义 |
---|---|---|
globalWhiteRemoteAddresses | *;192.168.*.*;192.168.0.1 | 全局IP白名单 |
accessKey | 字符串 | Access Key |
secretKey | 字符串 | Secret Key |
whiteRemoteAddress | *;192.168.*.*;192.168.0.1 | 用户IP白名单 |
admin | true;false | 是否管理员账户 |
defaultTopicPerm | DENY;PUB;SUB;PUB | SUB |
defaultGroupPerm | DENY;PUB;SUB;PUB | SUB |
topicPerms | topic=权限 | 各个Topic的权限 |
groupPerms | group=权限 | 各个ConsumerGroup的权限 |
权限配置示例
globalWhiteRemoteAddresses: null
accounts:
- accessKey: RocketMQ
secretKey: 12345678
whiteRemoteAddress: null
admin: false
defaultTopicPerm: DENY
defaultGroupPerm: SUB
topicPerms:
- topicA=DENY
- topicB=PUB|SUB
- topicC=SUB
groupPerms:
- groupA=DENY
- groupB=PUB|SUB
- groupC=SUB
- accessKey: rocketmq2
secretKey: 123456789
admin: true
- accessKey: cscec-udp-ops
secretKey: cscec-udp-ops
admin: false
defaultTopicPerm: DENY
defaultGroupPerm: DENY
topicPerms:
- auto-create-test2=SUB
groupPerms:
- cscec-udp-ops=SUB
dataVersion:
- counter: 1
timestamp: 1716882311760