當需要對不同的使用者或使用者組授予不同層級的存取權限時,您可以使用雲訊息佇列 Kafka 版專業版或Serverless執行個體的存取控制清單(ACL)功能,為SASL使用者賦予對Topic、Group等資源的操作許可權,實現細粒度的許可權管理。
背景資訊
企業A購買了雲訊息佇列 Kafka 版,企業A希望使用者A只能從雲訊息佇列 Kafka 版的所有Topic中消費訊息,而不能向雲訊息佇列 Kafka 版的任何Topic生產訊息。
注意事項
Kafka為公網/VPC類型執行個體提供預設SASL使用者,預設SASL使用者僅提供身份校正,支援所有Topic和Group的讀寫權限。如果需要更細緻的許可權控制,您需開啟ACL,建立自訂SASL使用者,按需賦予SASL使用者向雲訊息佇列 Kafka 版收發訊息的許可權。開啟ACL之後,預設的SASL使用者權限將失效。
開啟ACL後,不支援通過發送訊息的方式自動建立Topic。
前提條件
您的雲訊息佇列 Kafka 版執行個體必須滿足以下條件:
步驟一:開啟ACL
升級執行個體的小版本後,在雲訊息佇列 Kafka 版控制台為執行個體開啟ACL。
在概览頁面的资源分布地區,選擇地區。
在实例列表頁面,單擊目標執行個體名稱。
在实例详情頁面,單擊概览地區右上方的开启 ACL。
在提示對話方塊,單擊確認,然後手動重新整理頁面。
手動重新整理頁面後,实例详情頁面的基础信息地區,運行状态顯示升级中。待執行個體的状态顯示服务中說明開啟ACL任務完成。
重要升級完成後,執行個體才會開啟ACL。您才可以建立SASL使用者並為其授權,通過SASL存取點接入。升級預計需要15分鐘~20分鐘。
步驟二:建立SASL使用者
執行個體開啟ACL後,為使用者A建立SASL使用者。
在概览頁面的资源分布地區,選擇地區。
在实例列表頁面,選擇已經開啟ACL的執行個體。
在实例详情頁面,單擊SASL 用户管理頁簽。Serverless執行個體請在左側導覽列選擇。
在SASL 用户管理頁面中,單擊创建 SASL 用户。
在创建 SASL 用户面板,設定SASL使用者,然後單擊確定。
參數
描述
用户名
SASL使用者的名稱。
用户类型
雲訊息佇列 Kafka 版支援的SASL機制如下:
PLAIN: 一種簡單的使用者名稱密碼校正機制。雲訊息佇列 Kafka 版最佳化了PLAIN機制,支援不重啟執行個體的情況下動態增加SASL使用者。
SCRAM:一種使用者名稱密碼校正機制,安全性比PLAIN更高。雲訊息佇列 Kafka 版非Serverless例使用SCRAM-SHA-256。Serverless執行個體支援SCRAM-SHA-512,並且是SCRAM的預設配置。
密码
SASL使用者的密碼。
确认密码
確認SASL使用者的密碼。
建立完成後,SASL 用户管理頁簽下方顯示您建立的SASL使用者。
如果您需要更改SASL使用者的密碼,單擊其操作列的修改密码。在修改SASL使用者密碼面板,設定新密码並确认新密码。單擊確定。
如果您需要刪除SASL使用者,單擊其操作列的删除。
步驟三:授予SASL使用者權限
為使用者A建立SASL使用者後,為該SASL使用者授予從Topic和Consumer Group讀取訊息的許可權。
在实例详情頁面,單擊SASL 权限管理頁簽。
在SASL 权限管理頁簽,單擊添加权限。
在添加权限面板,配置如下參數,然後單擊确定。
參數
描述
用户名
SASL使用者的名稱。雲訊息佇列 Kafka 版支援萬用字元星號(*)表示所有使用者名稱。
资源类型
雲訊息佇列 Kafka 版支援授權的資源類型如下:
Topic:訊息主題。
Group:消費組。
Cluster:執行個體。
TransactionalId:事務ID。
匹配方式
雲訊息佇列 Kafka 版支援的匹配模式如下:
完全匹配:只會匹配名稱完全相同的資源。
前缀匹配:匹配以輸入的內容作為首碼的任意資源名稱。
资源名
Topic、Group或Cluster的名稱,或者是事務的ID。雲訊息佇列 Kafka 版支援萬用字元星號(*)表示所有資源名。
操作类型
雲訊息佇列 Kafka 版支援的操作類型如下:
写入
读取
幂等写
重要資源類型Group僅支援操作類型读取。
資源類型Cluster僅支援操作類型幂等写。
Serverless執行個體參數配置
參數
描述
用户名
SASL使用者的名稱。雲訊息佇列 Kafka 版支援萬用字元星號(*)表示所有使用者名稱。
资源类型
雲訊息佇列 Kafka 版支援授權的資源類型如下:
Topic:訊息主題。
Group:消費組。
Cluster:執行個體。
TransactionalId:事務ID。
匹配方式
雲訊息佇列 Kafka 版支援的匹配模式如下:
完全匹配:只會匹配名稱完全相同的資源。
前缀匹配:匹配以輸入的內容作為首碼的任意資源名稱。
资源名
Topic、Group或Cluster的名稱,或者是事務的ID。雲訊息佇列 Kafka 版支援萬用字元星號(*)表示所有資源名。
來源IP
限制IP可以允許訪問或者攔截。
授權方式
ALLOW:允許訪問。
DENY:拒絕訪問。
操作类型
雲訊息佇列 Kafka 版支援的操作類型如下:
WRITE:寫入
READ:讀取
CREATE:建立
DELETE:刪除
DESCRIBE:查看metadata資訊和位點資訊。
DESCRIBE_CONFIGS:查看配置資訊。
IDEMPOTENT_WRITE:等冪寫入。
重要3.0以上的用戶端預設開啟等冪寫入,需要設定
enable.idempotence=true添加IDEMPOTENT_WRITE許可權才能正常發送。當授權WRITE、READ、DELETE、ALTER任何一個許可權時,預設具有DESCRIBE許可權。
資源類型Cluster僅支援操作類型IDEMPOTENT_WRITE。
配置完成之後,在SASL 权限管理頁簽,可設定资源类型、匹配方式、资源名與用户名,單擊查询,查看已建立的使用者權限。