本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
阿帕奇·卡夫卡 ACLs
阿帕奇卡夫卡有一個可插拔的授權者,並附帶授權者實現。 out-of-box MSKAmazon 在經紀人的server.properties
文件中啟用此授權者。
阿帕奇卡夫卡ACLs的格式為「主體 P 是 [允許/拒絕] 操作 O 從主機 H 上的任何資源 R 匹配 RP」. ResourcePattern 如果 RP 與特定資源 R 不匹配,則 R 沒有關聯ACLs,因此除了超級使用者之外沒有任何其他人可以訪問 R。若要更改此 Apache Kafka 行為,請allow.everyone.if.no.acl.found
將屬性設置為 true。Amazon 默認情況下將其MSK設置為 true。這表示使用 Amazon MSK 叢集時,如果您未在資源ACLs上明確設定,則所有主體都可以存取此資源。如果您在資源ACLs上啟用,則只有授權的主參與者可以存取該資源。如果要限制對主題的訪問,並使用TLS相互身份驗證授權客戶端,請ACLs使用 Apache Kafka 授權者添加。CLI有關添加,刪除和列出的更多信息ACLs,請參閱 Kafka 授權命令行界
除了用戶端之外,您還需要授予所有代理程式存取您的主題,以便代理程式可以從主分區複製訊息。如果代理程式無法存取主題,主題的複寫就會失敗。
若要新增或移除主題的讀取和寫入權限
-
將您的經紀人添加到ACL表格中,以允許他們從已經到位的所有主題ACLs中讀取。若要授與代理程式主題的讀取權限,請在可與MSK叢集通訊的用戶端機器上執行下列命令。
Replace (取代)
Distinguished-Name
使用DNS任何叢集的啟動程式代理程式,然後以星號 (*
) 取代此辨別名稱中第一個句點之前的字串。例如,如果您的一個群集的引導代理程序具有 DNSb-6.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com
,替換Distinguished-Name
在下面的命令中使用*.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com
. 如需有關如何取得引導代理程式的資訊,請參閱獲取 Amazon MSK 集群的引導程序代理。<path-to-your-kafka-installation>
/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name
" --operation Read --group=* --topicTopic-Name
-
若要授與主題的讀取權限,請在用戶端機器上執行下列命令。如果您使用相互TLS身份驗證,請使用相同的
Distinguished-Name
您在創建私鑰時使用。<path-to-your-kafka-installation>
/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name
" --operation Read --group=* --topicTopic-Name
若要移除讀取權限,您可以執行相同的命令,將
--add
取代為--remove
。 -
若要授與主題的寫入權限,請在用戶端機器上執行下列命令。如果您使用相互TLS身份驗證,請使用相同的
Distinguished-Name
您在創建私鑰時使用。<path-to-your-kafka-installation>
/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name
" --operation Write --topicTopic-Name
若要移除寫入權限,您可以執行相同的命令,將
--add
取代為--remove
。