权限控制
1.权限控制特性介绍
权限控制(ACL)主要为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代码。
2. 权限控制的定义与属性值
2.1权限定义
对RocketMQ的Topic资源访问权限控制定义主要如下表所示,分为以下四种
权限
含义
DENY
拒绝
ANY
PUB 或者 SUB 权限
PUB
发送权限
SUB
订阅权限
2.2 权限定义的关键属性
字段
取值
含义
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
默认的Topic权限
defaultGroupPerm
DENY;PUB;SUB;PUB|SUB
默认的ConsumerGroup权限
topicPerms
topic=权限
各个Topic的权限
groupPerms
group=权限
各个ConsumerGroup的权限
具体可以参考distribution/conf/plain_acl.yml配置文件
3. 支持权限控制的集群部署
在distribution/conf/plain_a