云消息队列 Kafka 版专业版和Serverless实例提供ACL功能,您可以在开启此功能后按需为SASL用户授权,通过SASL接入点接入实例。
功能说明
ACL(Access Control List,访问控制列表)是云消息队列 Kafka 版提供的用户权限控制机制。开启 ACL 后,可以按需为 SASL 用户配置对 Topic 和 Consumer Group 资源的细粒度操作权限,防止未授权访问,保护业务数据安全。
ACL 与网络层白名单(安全组)的区别
网络层白名单(安全组)控制哪些 IP 地址可以连接到实例;ACL 在此基础上提供用户级别的权限控制,精确到 Topic(读取/写入)和 Consumer Group(读取)的操作类型。建议将两者结合使用:先通过安全组限制网络访问来源,再通过 ACL 控制各用户的操作权限,构建多层访问防护。
云消息队列 Kafka 版安全体系
云消息队列 Kafka 版通过以下机制保障数据安全:
RAM 权限管理:管控控制台操作权限,支持子账号权限策略控制。
ACL + SASL 认证:实例消息收发的用户级权限管控。开启 ACL 后,客户端需通过 SASL 接入点接入。
SSL/TLS 传输加密:保障数据传输链路安全。
云监控与审计:监控实例运行状态并记录操作日志,支持安全合规审计。
前提条件
操作步骤
在概览页面的资源分布区域,选择地域。
在实例列表页面,单击目标实例名称。
在实例详情页面,单击概览区域右上角的开启 ACL。
在开启ACL风险说明对话框,单击确认,然后手动刷新页面。
手动刷新页面后,实例详情页面的基础信息区域,运行状态显示升级中。待实例的状态显示服务中说明开启ACL任务完成。
说明升级完成后,实例才会开启ACL。您可以在控制台上创建SASL用户并为其授权,通过SASL接入点接入。升级预计持续约30分钟(集群越大持续时间会越久)。更多信息,请参见创建SASL用户。
您也可以在部署实例时选择开启ACL功能。
常见问题
Q:消费者连接报错 GroupAuthorizationException 如何处理?
问题原因:Consumer Group 缺少 ACL 读取权限。开启 ACL 后,所有资源访问均需显式授权,Consumer Group 默认无任何权限。
解决方法:
确认实例已开启 ACL 功能(仅专业版和 Serverless 实例支持 ACL)。
登录云消息队列 Kafka 版控制台,进入实例详情页,单击SASL 权限管理页签。
单击添加权限,在弹窗中配置以下参数,然后单击确定:
用户名:选择消费者使用的 SASL 用户名,或选择"授权给全部用户"。
资源类型:选择 Group。
匹配方式:选择完全匹配后在资源名中选择对应的 Consumer Group 名称;或选择前缀匹配后在资源名前缀中输入 Group 名称前缀。
操作类型:选择读取。
重新启动消费者客户端,验证报错是否消除。
标准版实例不支持 ACL 功能,无法通过以上方式解决。建议为 RAM 用户授予 AliyunKafkaFullAccess 权限后重试,或参考标准版接入配置文档配置客户端连接。