分布式消息服务Kafka支持对Topic进行ACL(Access Control List)权限管理,您可以在Topic中为不同的SASL_SSL用户设置不同的权限,以达到SASL_SSL用户之间的权限隔离。
本章节主要介绍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 登录管理控制台。
步骤 2 在管理控制台右上角单击,选择区域。
说明请选择Kafka实例所在的区域。
步骤 3 在管理控制台左上角单击,选择“企业中间件”-“分布式消息服务”-“Kafka专享版”,进入分布式消息服务Kafka专享版页面。
步骤 4 单击Kafka实例名称,进入实例详情页面。
步骤 5 在导航栏单击“Topic管理”,进入Topic列表页面。
步骤 6 在需要设置用户权限的Topic所在行,单击“设置用户权限”,弹出“设置用户权限”对话框。
在“设置用户权限”对话框顶部显示Topic的信息,包括Topic名称、分区数、老化时间、副本数和是否同步落盘。其次为默认用户选项,勾选此选项,为所有用户分配统一的权限。中间为用户名的搜索框,SASL_SSL用户过多时,在搜索框中输入用户名,快速查找用户。在“用户列表”区域,展示已创建的SASL_SSL用户列表。在“已选择”区域,为SASL_SSL用户授权。
步骤 7 为用户设置Topic权限。
- 如果需要为所有用户设置相同的权限,勾选“默认用户”,并设置权限。如下图所示,所有用户都拥有发布此Topic的权限。
图 为所有用户设置相同的权限
如果需要为某个用户设置权限,不勾选“默认用户”,在“用户列表”区域,勾选需要订阅/发布/发布+订阅此Topic的用户名。在“已选择”区域,为用户设置不同的权限。如下图所示,此时只有“test”、“send”和“receive”用户可以订阅/发布此Topic,“send_receive”用户无法订阅/发布此Topic。
图 为某个用户设置权限
同时设置了“默认用户”权限和单个用户权限时,取两者的并集。 如下图所示,“test”和“receive”用户可以订阅+发布此Topic,“send”用户只能发布此Topic。
图 为用户设置Topic权限
步骤 8 单击“确定”,完成为SASL_SSL用户的授权。
完成授权后,进入Topic列表页面,在Topic名称前单击,查看已经授权的用户及其对应的权限。
图查看已经授权的用户及其对应的权限
(可选)删除Topic权限
步骤 1 登录管理控制台。
步骤 2 在管理控制台右上角单击,选择区域。
说明请选择Kafka实例所在的区域。
步骤 3 在管理控制台左上角单击,选择“企业中间件”-“分布式消息服务”-“Kafka专享版”,进入分布式消息服务Kafka专享版页面。
步骤 4 单击Kafka实例名称,进入实例详情页面。
步骤 5 在导航栏单击“Topic管理”,进入Topic列表页面。
步骤 6 在待删除用户权限的Topic所在行,单击“设置用户权限”,弹出“设置用户权限”对话框。
步骤 7 在“已选择”区域,在待删除权限的SASL_SSL用户所在行,单击“删除”,然后单击“确定”。