借助的ACL,您可以按需为SASL用户赋予向收发消息的权限,从而实现权限分割。

前提条件

您的实例必须满足以下条件:
  • 实例规格类型为专业版。
  • 实例运行状态为服务中
  • 大版本为2.2.0版本及以上。如何升级实例大版本,请参见升级实例版本
  • 小版本为最新版。如何升级实例小版本,请参见升级实例版本
注意 公网/VPC实例的默认SASL用户是没有任何权限的。开启ACL后,公网/VPC实例的默认SASL用户会因为没有任何权限而收发消息失败。您需要为该SASL用户授予所有Topic和Consumer Group的读写权限。

背景信息

企业A购买了,企业A希望用户A只能从的所有Topic中消费消息,而不能向的任何Topic生产消息。

步骤一:开启ACL

升级实例的小版本后,在控制台为实例开启ACL。

  1. 实例详情页面,单击概览区域右上角的开启 ACL
  2. 提示对话框,单击确认,然后手动刷新页面。
    手动刷新页面后, 实例详情页面的 基础信息区域,运行 状态显示 升级中。待实例的 状态显示 服务中说明开启ACL任务完成。
    注意 升级完成后,实例才会开启ACL。您才可以创建SASL用户并为其授权后,通过SASL接入点接入。升级预计需要15分钟~20分钟。

步骤二:创建SASL用户

实例开启ACL后,为用户A创建SASL用户。

  1. 实例列表页面,选择已经开启ACL的实例。
  2. 实例详情页面,单击SASL 用户管理页签。
  3. SASL 用户管理页签中,单击创建 SASL 用户
  4. 创建 SASL 用户面板,设置SASL用户,然后单击创建
    pg_create_sasl_user
    参数 描述
    用户名 SASL用户的名称。
    用户类型 支持的SASL机制如下:
    • PLAIN: 一种简单的用户名密码校验机制。优化了PLAIN机制,支持不重启实例的情况下动态增加SASL用户。
    • SCRAM:一种用户名密码校验机制,安全性比PLAIN更高。使用SCRAM-SHA-256。
    密码 SASL用户的密码。
    确认密码 确认SASL用户的密码。
    创建完成后, SASL 用户管理页签下方显示您创建的SASL用户。
    • 如果您需要更改SASL用户的密码,单击其操作列的修改密码。在修改SASL用户密码面板,设置新密码确认新密码。单击确定
    • 如果您需要删除SASL用户,单击其操作列的删除

步骤三:授予SASL用户权限

为用户A创建SASL用户后,为该SASL用户授予从Topic和Consumer Group读取消息的权限。

  1. 实例详情页面,单击SASL 权限管理页签。
  2. SASL 权限管理页签,单击添加权限
  3. 添加权限面板,配置如下参数,然后单击确定
    pg_read_from_Topic
    参数 描述
    用户名 SASL用户的名称。支持通配符星号(*)表示所有用户名。
    资源类型 支持授权的资源类型如下:
    • Topic:消息主题。
    • Group:消费组。
    匹配方式 支持的匹配模式如下:
    • 完全匹配:按字面值匹配资源名称。全匹配模式只会匹配名称完全相同的资源。
    • 前缀匹配:按前缀匹配资源名称。前缀匹配模式会匹配以匹配名称开头的任意资源名称。
    资源名 Topic或Consumer Group的名称。支持通配符星号(*)表示所有资源名。
    操作类型 支持的操作类型如下:
    • 写入
    • 读取
    注意 资源类型Group仅支持操作类型 读取
    配置完成之后,在 SASL 权限管理页签,可设置 资源类型匹配方式资源名用户名,单击 查询,查看已创建的用户权限。

相关操作

完成授权后,用户A可以通过SASL接入点接入并使用PLAIN机制消费消息。如何使用SDK接入,请参见SDK概述