消息队列 Kafka版兼容开源 Kafka 的 ACL 权限策略,可以为全部或目标 SASL 用户设置 Topic 或 Group 的自定义权限,实现资源和用户的权限隔离、细粒度的权限控制。
背景信息
在 Kafka 实例的 SASL 用户管理功能中,可以创建 PLAIN 和 SCRAM 两种类型用户并授予 All Permitted 权限,即对实例内所有 Topic 和 Group 均具备读写权限,以用于在 PLAIN 和 SCRAM-SHA-256 机制下生产和消费消息。
如果需要资源和用户的权限隔离、更细致的权限控制,那么可以通过 ACL 管理功能创建一条 ACL,指定全部或目标 SASL 用户对指定资源的权限策略,包括 Topic 和 Group 的读写权限,以及 Topic 的增删改查权限。
说明
- 消息队列 Kafka版的 ACL 的权限类型(PermissionType)为允许(Allow),即允许 SASL 用户通过指定 IP 地址访问指定资源。
- 为 SASL 用户创建 ACL 权限后,默认的 SASL 用户权限将失效。
- 不支持修改已创建的 ACL,若有需要,建议删除后重新创建 ACL。
前提条件
- Kafka 实例状态为运行中。
- 已创建 SASL 用户和 Topic、Group 等资源。
操作步骤
登录消息队列 Kafka版控制台。
在顶部菜单栏中选择地域。
在左侧导航栏中单击实例列表,查找目标实例并单击实例名称。
在ACL管理页签左上角单击新增ACL。
设置 ACL 权限策略。
详细配置说明如下。
配置 | 说明 |
---|
用户 | 待添加权限的 SASL 用户。支持设置为指定用户或全部用户。 |
资源类型 | 消息队列 Kafka版支持的 ACL 资源类型包括: |
资源名称匹配方式 | 资源的匹配方式,支持设置为: - 完全匹配:ACL 策略仅匹配名称完全一致的资源。此时需要设置资源名称。
- 前缀匹配:ACL 策略匹配指定前缀的资源。此时需要设置资源名称前缀。
|
资源名称 | 仅在资源名称匹配方式为完全匹配时设置。
ACL 策略匹配的资源名称,表示指定用户对哪些资源具备权限。支持设置为全部Topic/Group,或指定目标 Topic/Group。 |
资源名称前缀 | 仅在资源名称匹配方式为前缀匹配时设置。
ACL 策略匹配的资源名称前缀,表示指定用户对哪些名称前缀的资源具备权限。 |
IP | SASL 用户使用的 IP 地址,用户仅通过指定 IP 访问指定资源时才具备指定权限。
不同 IP 地址之间英文逗号(,)分隔。支持设置为星号(*),表示所有地址均可访问。 |
权限类型 | 支持配置的权限类型。 - 当资源类型为 Topic 时,支持如下访问权限:
- 读:Read,即读取 Topic 数据的权限。
- 写:Write,即向 Topic 写入数据的权限。
- 创建:Create,即创建 Topic 的权限。
- 变更:Alter,即支持变配 Topic 分区数的权限。
- 删除:Delete,即删除 Topic 的权限。
- 查看:Describe,即查看 Topic 详情的权限。
说明 - 选择创建权限时,其作用范围不受 Topic 的资源限制。同时选择其他权限时,其作用范围受 Topic 的资源限制。
- 具备读、写、变更、删除权限时,则自动拥有查看权限。
- 当资源类型为 Group 时,仅支持读,即访问 Group 的权限。
|
单击确定。
相关操作
创建 ACL 后,您还可以进行以下相关操作:
- 查看 ACL 列表
在目标实例的ACL管理页签中查看 ACL 列表。支持通过用户名称、资源名称/前缀或 IP 地址进行筛选。说明
创建 Topic 时,如果设置了自定义权限,消息队列 Kafka版会同步创建对应的 ACL,并将其显示在 ACL 列表中。
- 删除 ACL