缓存数据库 Redis 版支持自定义角色权限,您可以根据业务需要,创建新的角色并赋予不同的权限,实现数据库的精细化管理,提升数据安全性。本文介绍如何创建角色。
缓存数据库 Redis 版支持通过 disabled-commands
参数来设置禁用命令,且默认情况下禁用了 keys
、flushdb
和 flushall
命令,因此如果您的账号角色不包含上述这些禁用命令的权限,即使 disabled-commands
参数中移除了上述命令,也无法执行。关于禁用命令的更多说明,请参见禁用命令说明。
缓存数据库 Redis 版将所有支持的命令根据一定的规则进行了分组,每个分组即为一个命令类(Command Category),您可以使用 ACL(Access Control Lists)语法为角色授予指定命令或命令类的调用权限。
说明
缓存数据库 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 版已支持的所有命令。具体详情,请参见命令支持。 |
登录 Redis 控制台。
在顶部菜单栏的左上角,选择实例所属的项目和地域。
在实例列表页,单击目标实例的名称。
在实例详情页,单击账号管理页签。
在账号管理页签下,再单击角色页签。
在角色页签下,单击创建角色,在弹出的对话框中,配置如下参数。
说明
角色创建后,暂不支持编辑或删除角色。默认允许用户访问所有的 Key 和 Channel。
参数 | 说明 |
---|---|
角色名称 | 角色名称需同时满足以下条件:
|
ACL 规则 | 设置角色的 ACL 规则。输入 ACL 规则后,使用空格键或 Enter 键即可生成规则。支持一次输入多条规则。 |
单击确定。
角色创建成功后,您可以在创建账号时,根据业务需要为账号选择合适的角色,实现数据库的精细化管理,提升数据安全性。更多详情,请参见创建与管理账号。
API | 描述 |
---|---|
CreateDBAccount | 调用 CreateDBAccount 接口为目标 Redis 实例创建账号。 |
DescribeDBInstanceAclCommands | 调用 DescribeDBInstanceAclCommands 接口查询目标 Redis 实例中指定命令类别支持的命令列表。 |
DescribeDBInstanceAclCategories | 调用 DescribeDBInstanceAclCategories 接口查询目标 Redis 实例支持的命令类别。 |