当需要对不同的用户或用户组授予不同级别的访问权限时,您可以使用云消息队列 Kafka 版专业版实例的访问控制列表(ACL)功能,为SASL用户赋予对Topic、Group等资源的操作权限,实现细粒度的权限管理。
注意事项
Kafka为公网/VPC类型实例提供默认SASL用户,默认SASL用户仅提供身份校验,支持所有Topic和Group的读写权限。如果需要更细致的权限控制,您需开启ACL,创建自定义SASL用户,按需赋予SASL用户向云消息队列 Kafka 版收发消息的权限。开启ACL之后,默认的SASL用户权限将失效。
开启ACL后,不支持通过发送消息的方式自动创建Topic。
使用限制
开启ACL
在云消息队列 Kafka 版控制台为实例开启ACL前,请确认实例规格类型为专业版。
在概览页面的资源分布区域,选择地域。
在实例列表页面,单击目标实例名称。
在实例详情页面,单击概览区域右上角的开启 ACL。
在提示对话框,单击确认,然后手动刷新页面。
手动刷新页面后,实例详情页面的基础信息区域,运行状态显示升级中。待实例的状态显示服务中,说明开启ACL任务完成。
重要升级完成后,实例才会开启ACL。您才可以创建SASL用户并为其授权,通过SASL接入点接入。升级预计需要15分钟~20分钟。
创建SASL用户
在概览页面的资源分布区域,选择地域。
在实例列表页面,选择已经开启ACL的实例。
在实例详情页面,单击SASL 用户管理页签。
在SASL 用户管理页签中,单击创建 SASL 用户。
在创建 SASL 用户面板,设置SASL用户,然后单击创建。
参数
描述
用户名
SASL用户的名称。
用户类型
云消息队列 Kafka 版支持的SASL机制如下:
PLAIN: 一种简单的用户名密码校验机制。云消息队列 Kafka 版优化了PLAIN机制,支持不重启实例的情况下动态增加SASL用户。
SCRAM:一种用户名密码校验机制,安全性比PLAIN更高。云消息队列 Kafka 版使用SCRAM-SHA-256。
密码
SASL用户的密码。
确认密码
确认SASL用户的密码。
创建完成后,SASL 用户管理页签下方显示您创建的SASL用户。
如果您需要更改SASL用户的密码,单击其操作列的修改密码。在修改SASL用户密码面板,设置新密码并确认新密码。单击确定。
如果您需要删除SASL用户,单击其操作列的删除。
授予SASL用户权限
在实例详情页面,单击SASL 权限管理。
在SASL 权限管理页签,单击添加权限。
在添加权限面板,配置如下参数,然后单击确定。
参数
描述
用户名
SASL用户的名称。云消息队列 Kafka 版支持通配符星号(*)表示所有用户名。
资源类型
云消息队列 Kafka 版支持授权的资源类型如下:
Topic:消息主题。
Group:消费组。
Cluster:实例。
TransactionalId:事务ID。
匹配方式
云消息队列 Kafka 版支持的匹配模式如下:
完全匹配:只会匹配名称完全相同的资源。
前缀匹配:匹配以输入的内容作为前缀的任意资源名称。
资源名
Topic、Group或Cluster的名称,或者是事务的ID。云消息队列 Kafka 版支持通配符星号(*)表示所有资源名。
操作类型
云消息队列 Kafka 版支持的操作类型如下:
写入
读取
幂等写
重要资源类型Group仅支持操作类型读取。
资源类型Cluster仅支持操作类型幂等写。
配置完成之后,在SASL 权限管理页签,可设置资源类型、匹配方式、资源名与用户名,单击查询,查看已创建的用户权限。
完成授权后,被授权的SASL用户可以通过SASL接入点接入云消息队列 Kafka 版并使用PLAIN机制消费消息。
相关操作
如何使用SDK接入,请参见SDK概述。
如果您希望通过API方式为SASL用户授权,请参见CreateSaslUser - 创建SASL用户和CreateAcl - 创建ACL。
SASL接入点的更多信息,请参见接入点对比。