1、RocketMQ ACL
アクセス制御 (ACL、フルネーム アクセス制御リスト、一般にアクセス制御リストとして知られる) は、主に RocketMQ にトピック リソース レベルのユーザー アクセス制御を提供します。
ユーザーが RocketMQ 権限制御を使用する場合、クライアント側で RPCHook を介して AccessKey および SecretKey 署名を挿入できます。同時に、対応する権限制御属性 (トピック アクセス権限、IP ホワイトリスト、AccessKey および SecretKey 署名など) をdistribution/conf /plain_acl.yml 設定ファイル。
ブローカー側は、AccessKey が所有する権限を検証します。検証が失敗した場合は、例外がスローされます。
ACL クライアントは、 org.apache.rocketmq.example.simple パッケージの AclClient コードを参照できます。
公式ガイド
RocketMQ_Multiple_ACL_Files_Design
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 と高可用性展開 (マスター/スレーブ アーキテクチャ) が同時に有効になっている場合は、ブローカー マスター ノードの distribution/conf/plain_acl.yml 構成ファイルにグローバル ホワイトリスト情報を設定する必要があります。 plain_acl.yml 設定ファイルのグローバル ホワイトリスト内のスレーブ ノードからマスター ノードへの IP アドレス。
ACL と高可用性展開 (マルチコピー Dledger アーキテクチャ) が同時に有効になっている場合、ノードがダウンしたときに Dledger グループが自動的にマスターを選択するため、すべての plain_acl.yml 設定ファイルをホワイトニングする必要があります。 Dledger グループのブローカー ノード このリストには、すべてのブローカー ノードの IP アドレスが設定されます。