當需要對不同的用戶或用戶組授予不同級別的訪問權限時,您可以使用云消息隊列 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 權限管理頁簽,可設置資源類型、匹配方式、資源名與用戶名,單擊查詢,查看已創建的用戶權限。
相關操作
完成授權后,用戶A可以通過SASL接入點接入云消息隊列 Kafka 版并使用PLAIN機制消費消息。如何使用SDK接入,請參見SDK概述。
如果您希望通過API方式為SASL用戶授權,請參見CreateSaslUser - 創建SASL用戶和CreateAcl - 創建ACL。
SASL接入點的更多信息,請參見接入點對比。