You need to enable JavaScript to run this app.
导航
创建角色
最近更新时间:2024.11.28 22:00:28首次发布时间:2023.01.19 10:47:32

缓存数据库 Redis 版支持自定义角色权限,您可以根据业务需要,创建新的角色并赋予不同的权限,实现数据库的精细化管理,提升数据安全性。本文介绍如何创建角色。

注意事项

缓存数据库 Redis 版支持通过 disabled-commands 参数来设置禁用命令,且默认情况下禁用了 keysflushdbflushall 命令,因此如果您的账号角色不包含上述这些禁用命令的权限,即使 disabled-commands 参数中移除了上述命令,也无法执行。关于禁用命令的更多说明,请参见禁用命令说明

ACL 语法

缓存数据库 Redis 版将所有支持的命令根据一定的规则进行了分组,每个分组即为一个命令类(Command Category),您可以使用 ACL(Access Control Lists)语法为角色授予指定命令或命令类的调用权限。

说明

  • 缓存数据库 Redis 版支持的命令类以及每种命令类下包含的具体命令详情,请参见 Redis 控制台创建角色对话框内的详细说明。

语法规则

缓存数据库 Redis 版的 ACL 语法规则如下:

  • 每条 ACL 规则都必须以 +- 开头,+- 后可以加上指定的命令或命令类,其中:

    • +:表示允许调用某些命令或命令类。例如 +@all 表示允许调用所有命令。
    • -:表示禁止调用某些命令或命令类。例如 -@dangerous 表示禁止调用 dangerous 命令类中的所有命令。
  • 命令类前面必须使用 @ 表示,便于和具体的命令作区分。例如:

    • 指定命令类: 例如 +@read 表示允许调用 read 命令类中的所有命令。
    • 指定具体命令:例如 -get 表示仅禁止调用 get 命令。
  • 命令和命令类都必须使用小写字母,长度为 1~20 个字符。

  • 缓存数据库 Redis 版默认为所有角色的 ACL 规则自动添加 ~* 语法,表示可以访问所有 Key 和 Channel。

  • 不支持使用 ~<key> 语法来访问指定 Key。

语法示例

缓存数据库 Redis 版默认提供了 Administrator、NotDangerous、ReadWrite 和 ReadOnly 四种角色,每种角色的 ACL 规则不同,支持的权限也不同。下表以默认的四种角色为例介绍角色的 ACL 规则设置方法。

默认角色名称ACL 规则当前角色包含或除外的具体命令
Administrator+@all ~*选择了 Administrator 角色的账号,允许对所有 Key 使用缓存数据库 Redis 版已支持的所有命令。具体详情,请参见命令支持

操作步骤

  1. 登录 Redis 控制台

  2. 在顶部菜单栏的左上角,选择实例所属的项目和地域。

  3. 实例列表页,单击目标实例的名称。

  4. 在实例详情页,单击账号管理页签。

  5. 账号管理页签下,再单击角色页签。

  6. 角色页签下,单击创建角色,在弹出的对话框中,配置如下参数。

    说明

    角色创建后,暂不支持编辑或删除角色。默认允许用户访问所有的 Key 和 Channel。

    参数说明

    角色名称

    角色名称需同时满足以下条件:

    • 由小写字母、连字符(-)、数字组成。
    • 以字母开头,以字母或数字结尾。
    • 长度为 2~63 个字符。

    ACL 规则

    设置角色的 ACL 规则。输入 ACL 规则后,使用空格键或 Enter 键即可生成规则。支持一次输入多条规则。
    关于 ACL 规则的具体说明,请参见 ACL 语法规则

  7. 单击确定

后续操作

角色创建成功后,您可以在创建账号时,根据业务需要为账号选择合适的角色,实现数据库的精细化管理,提升数据安全性。更多详情,请参见创建与管理账号

相关 API

API
描述
CreateDBAccount调用 CreateDBAccount 接口为目标 Redis 实例创建账号。
DescribeDBInstanceAclCommands调用 DescribeDBInstanceAclCommands 接口查询目标 Redis 实例中指定命令类别支持的命令列表。
DescribeDBInstanceAclCategories调用 DescribeDBInstanceAclCategories 接口查询目标 Redis 实例支持的命令类别。