RocketMQ 4.9.4使用(三)开启ACL验证

1、RocketMQ ACL

权限控制(ACL,全称access control list,俗称访问控制列表)主要为RocketMQ提供Topic资源级别的用户访问控制。

用户在使用RocketMQ权限控制时,可以在Client客户端通过 RPCHook注入AccessKey和SecretKey签名;同时,将对应的权限控制属性(包括Topic访问权限、IP白名单和AccessKey和SecretKey签名等)设置在distribution/conf/plain_acl.yml的配置文件中。

Broker端对AccessKey所拥有的权限进行校验,校验不过,抛出异常;

ACL客户端可以参考:org.apache.rocketmq.example.simple包下面的AclClient代码。

官方指南

RocketMQ_Multiple_ACL_Files_设计
ACL使用指南

2、开启ACL验证

在broker.conf文件配置aclEnable=true

aclEnable=true

在conf/plain_acl.yml配置ACL

# 设置IP白名单
globalWhiteRemoteAddresses:
- 10.10.103.*
- 192.168.0.*
# 配置用户信息
accounts:
- accessKey: RocketMQ
  secretKey: 12345678
  # 用户级别的IP地址白名单
  whiteRemoteAddress:
  # 当为true可以执行更新、删除主题或者订阅组
  admin: false
  # DENY拒绝、SUB订阅权限、PUB发送权限
  defaultTopicPerm: DENY
  defaultGroupPerm: SUB
  topicPerms:
  - topicA=DENY
  - topicB=PUB|SUB
  - topicC=SUB
  groupPerms:
  - groupA=DENY
  - groupB=PUB|SUB
  - groupC=SUB

3、权限控制的使用限制

如果ACL与高可用部署(Master/Slave架构)同时启用,那么需要在Broker Master节点的distribution/conf/plain_acl.yml配置文件中 设置全局白名单信息,即为将Slave节点的ip地址设置至Master节点plain_acl.yml配置文件的全局白名单中。

如果ACL与高可用部署(多副本Dledger架构)同时启用,由于出现节点宕机时,Dledger Group组内会自动选主,那么就需要将Dledger Group组 内所有Broker节点的plain_acl.yml配置文件的白名单设置所有Broker节点的ip地址。

猜你喜欢

转载自blog.csdn.net/q283614346/article/details/126530030