分布式(shi)消息服務(wu)Kafka支(zhi)持對Topic進行ACL(Access Control List)權(quan)限(xian)管(guan)理(li),您可以在(zai)Topic中為不(bu)同(tong)的(de)SASL_SSL用(yong)戶設(she)置不(bu)同(tong)的(de)權(quan)限(xian),以達(da)到SASL_SSL用(yong)戶之間的(de)權(quan)限(xian)隔離。
本章節主要介紹Kafka實例開啟SASL_SSL后,如何對Topic進行SASL_SSL用戶授權。創建SASL_SSL用戶的操作,請參見創建SASL_SSL用戶。
約束與限制
- 如果Topic并未授權任何SASL_SSL用戶,此時所有的SASL_SSL用戶都可以訂閱/發布此Topic。
- 如果Topic已授權某一個或多個SASL_SSL用戶,此時只有授權的SASL_SSL用戶可以訂閱/發布此Topic,其他未授權的SASL_SSL用戶不能訂閱/發布此Topic。
- 如果Topic同時設置了“默認用戶”權限和單個用戶權限,取兩者的并集。
前提條件
- 創建Kafka實例時,已開啟SASL_SSL功能。
- (可選)已創建SASL_SSL用戶。
設置Topic權限
步驟 1 登錄管(guan)理控制臺。
步驟 2 在管理控制臺右上角單擊
,選擇區域。
說明請選擇Kafka實例所在的區(qu)域。
步驟 3 在管理控制臺左上角單擊
,選擇“企業中間件”-“分布式(shi)消息(xi)服(fu)務”-“Kafka專(zhuan)享(xiang)版”,進入分布式(shi)消息(xi)服(fu)務Kafka專(zhuan)享(xiang)版頁面。
步驟 4 單擊Kafka實例(li)名稱,進入實例(li)詳情(qing)頁面。
步驟 5 在導(dao)航欄單(dan)擊(ji)“Topic管理”,進入Topic列表頁面。
步驟(zou) 6 在(zai)需要(yao)設(she)置用戶權限(xian)的Topic所(suo)在(zai)行,單擊“設(she)置用戶權限(xian)”,彈出“設(she)置用戶權限(xian)”對話(hua)框。
在(zai)“設置用(yong)戶權(quan)限”對話框(kuang)頂部(bu)顯示Topic的(de)信息,包(bao)括(kuo)Topic名稱、分(fen)區數、老(lao)化時間(jian)、副本數和是否(fou)同步落盤。其次為默認用(yong)戶選(xuan)(xuan)(xuan)項,勾選(xuan)(xuan)(xuan)此選(xuan)(xuan)(xuan)項,為所(suo)有用(yong)戶分(fen)配統一的(de)權(quan)限。中(zhong)間(jian)為用(yong)戶名的(de)搜(sou)索(suo)框(kuang),SASL_SSL用(yong)戶過多時,在(zai)搜(sou)索(suo)框(kuang)中(zhong)輸入(ru)用(yong)戶名,快(kuai)速查找用(yong)戶。在(zai)“用(yong)戶列表”區域(yu)(yu),展示已(yi)(yi)創建的(de)SASL_SSL用(yong)戶列表。在(zai)“已(yi)(yi)選(xuan)(xuan)(xuan)擇”區域(yu)(yu),為SASL_SSL用(yong)戶授權(quan)。
步驟 7 為用戶設置Topic權限。
- 如果需要為所有用戶設置相同的權限,勾選“默認用戶”,并設置權限。如下圖所示,所有用戶都擁有發布此Topic的權限。
圖 為所(suo)有用(yong)戶設置(zhi)相同(tong)的權限


如果需要為(wei)某個用(yong)(yong)戶(hu)設(she)置權限,不勾選“默認用(yong)(yong)戶(hu)”,在(zai)(zai)“用(yong)(yong)戶(hu)列表”區域,勾選需要訂閱(yue)(yue)/發布/發布+訂閱(yue)(yue)此(ci)(ci)Topic的(de)用(yong)(yong)戶(hu)名。在(zai)(zai)“已選擇”區域,為(wei)用(yong)(yong)戶(hu)設(she)置不同的(de)權限。如下圖所示,此(ci)(ci)時只有“test”、“send”和“receive”用(yong)(yong)戶(hu)可以訂閱(yue)(yue)/發布此(ci)(ci)Topic,“send_receive”用(yong)(yong)戶(hu)無法訂閱(yue)(yue)/發布此(ci)(ci)Topic。
圖(tu) 為某個用戶設置權限


同時設置了“默認用戶”權限和單個用戶權限時,取兩者的并集。 如下圖所(suo)示(shi),“test”和“receive”用(yong)戶(hu)可(ke)以訂閱(yue)+發布(bu)此(ci)Topic,“send”用(yong)戶(hu)只能發布(bu)此(ci)Topic。
圖 為(wei)用(yong)戶設置Topic權限(xian)


步(bu)驟(zou) 8 單擊(ji)“確定”,完成為SASL_SSL用戶的授權。
完成授權后,進入Topic列表頁面,在Topic名稱前單擊
,查看已經授權(quan)(quan)的用戶及其對應(ying)的權(quan)(quan)限(xian)。
圖(tu)查(cha)看已經授權(quan)的用(yong)戶(hu)及其對應(ying)的權(quan)限


(可選)刪除Topic權限
步驟 1 登錄管(guan)理控(kong)制臺。
步驟 2 在管理控制臺右上角單擊
,選擇區域。
說明請選擇Kafka實例所在的區域。
步驟 3 在管理控制臺左上角單擊
,選擇“企業中(zhong)間(jian)件”-“分布式消息服(fu)務”-“Kafka專享版(ban)”,進入分布式消息服(fu)務Kafka專享版(ban)頁面(mian)。
步驟 4 單擊(ji)Kafka實例(li)名稱,進入實例(li)詳情頁面(mian)。
步驟 5 在導航欄單擊(ji)“Topic管理”,進(jin)入(ru)Topic列表頁(ye)面。
步驟 6 在待刪除用(yong)戶(hu)(hu)權(quan)限的Topic所在行(xing),單擊(ji)“設置(zhi)用(yong)戶(hu)(hu)權(quan)限”,彈出“設置(zhi)用(yong)戶(hu)(hu)權(quan)限”對話框。
步驟(zou) 7 在(zai)“已選(xuan)擇(ze)”區域,在(zai)待刪除(chu)權限的SASL_SSL用戶所在(zai)行,單(dan)擊“刪除(chu)”,然后單(dan)擊“確定”。