Redis 6.0 ACL

期待已久的ACL终于来了,大家知道在redis集群中只有一个db,在多项目操作时可以通过key前缀来区分,但是还是能获取其它key,这样就带来了安全风险.

Access Control Lists ACL

在之前 登录可以AUTH pwd 有了ACL后AUTH user pwd

ACL LIST

我们可以使用 ACL LIST 命令来检查当前活动的 ACL

> ACL LIST
1) "user default on nopass ~* +@all"

user 代表是用户

default 代表默认用户(反之 为自己创建的用户)

on 代表激活(反之off,默认新增的为off)

nopass 代表不需要密码

~* 代表可以访问的key

+@all 代表可以操作的command

key

~<pattern>  ~* 所有key
allkeys 别名 ~*
resetkeys 刷新允许的键模式列表
可以多个一起使用,如:
~foo:* ~bar:* resetkeys ~objects:*
只能访问 ~objects:*

command

+<command> 添加命令
-<command> 移除命令
+@<category> 添加一类命令,如:@admin, @set, @sortedset, ... 可以ACL CAT 查看 如:+@geo -@readonly 会排除geo的只读命令 -@<category> 移除一类命令
+<command>|subcommand 允许一个特定的子命令,没有-<command>|subcommand
allcommands 所有cmd 别名 +@all
nocommands 别名 -@all

配置密码

>pwd  添加密码列表
<pwd 移除密码列表 #hash 添加SHA-256值
!hash 移除SHA-256值 nopass 移除所有密码 resetpass 刷新密码列表,并且也不会回到nopass 状态,之后一定要添加密码
没有使用nopass标记的用户并且没有有效密码列表 是不能登录的 reset 重置用户 实际上是执行 resetpass, resetkeys, off, -@all

另外,在默认用户的特殊情况下,拥有 nopass 规则意味着新的连接将通过默认用户的自动身份验证,而不需要任何显式的 AUTH 调用。

ACL CAT

第一大类

127.0.0.1:0>ACL CAT
1) "keyspace"
2) "read"
3) "write"
4) "set"
5) "sortedset"
6) "list"
7) "hash"
8) "string"
9) "bitmap"
10) "hyperloglog"
11) "geo"
12) "stream"
13) "pubsub"
14) "admin"
15) "fast"
16) "slow"
17) "blocking"
18) "dangerous"
19) "connection"
20) "transaction"
21) "scripting"
127.0.0.1:0>ACL CAT set
1) "spop"
2) "sunionstore"
3) "sinter"
4) "sdiffstore"
5) "sscan"
6) "sunion"
7) "smembers"
8) "sinterstore"
9) "sismember"
10) "smove"
11) "srem"
12) "sdiff"
13) "srandmember"
14) "sort"
15) "sadd"
16) "scard"

ACL SETUSER

添加用户 - 区分大小写

ACL SETUSER alice

检查一下默认的用户状态:

> ACL LIST
1) "user alice off -@all"
2) "user default on nopass ~* +@all"

设置密码

ACL SETUSER alice on >p1pp0 ~cached:* +get

> AUTH alice p1pp0
OK
> GET foo
(error) NOPERM this user has no permissions to access one of the keys used as arguments
> GET cached:1234
(nil)
> SET cached:1234 zap
(error) NOPERM this user has no permissions to run the 'set' command or its subcommnad

查看单独用户

打开一个新的连接

> ACL GETUSER alice
1) "flags"
2) 1) "on"
3) "passwords"
4) 1) "2d9c75..."
5) "commands"
6) "-@all +get"
7) "keys"
8) 1) "cached:*"

返回 field-value 数组

如果使用RESP3

> ACL GETUSER alice
1# "flags" => 1~ "on"
2# "passwords" => 1) "2d9c75..."
3# "commands" => "-@all +get"
4# "keys" => 1) "cached:*"

新增权限

ACL SETUSER alice ~objects:* ~items:* ~public:*

> ACL LIST
1) "user alice on #2d9c75... ~cached:* ~objects:* ~items:* ~public:* -@all +get"
2) "user default on nopass ~* +@all" ACL SETUSER alice +set
ACL SETUSER alice +get > ACL LIST
1) "user alice on #2d9c75... ~cached:* ~objects:* ~items:* ~public:* -@all +get +set"
2) "user default on nopass ~* +@all"

其它

ACL GENPASS

生成随机数、密码

redis.conf

配置文件中可以保存用户信息

如: user worker +@list +@connection ~jobs:* on >ffa9203c493aa99

也可以指定外部acl文件信息

如:aclfile /etc/redis/users.acl

ACL LOAD 重置加载acl文件(如果你修改了acl文件)

ACL SAVE 保存acl文件

哨兵和副本

略...

参考

Redis 6.0 新增功能 - ACL的更多相关文章

  1. Redis 7.0 新功能新特性总览

    说明:本文根据Redis 7 RC2 的release note 整理并翻译 近日,Redis 开源社区发布了7.0的两个预览版.在这两个预览版中,有很多Redis 7.0中新增加的特性,新增加的命令 ...

  2. Redis 4.0新功能介绍

    Redis 的作者 antirez 在三天之前通过博客文章<The first release candidate of Redis 4.0 is out>发布了 Redis 4.0 的第 ...

  3. Redis 6.0 新特性 ACL 介绍

    Redis 6.0 新特性 ACL 介绍 Intro 在 Redis 6.0 中引入了 ACL(Access Control List) 的支持,在此前的版本中 Redis 中是没有用户的概念的,其实 ...

  4. C#基础拾遗系列之二:使用ILSpy探索C#7.0新增功能点

    C#基础拾遗系列之二:使用ILSpy探索C#7.0新增功能点   第一部分: C#是一种通用的,类型安全的,面向对象的编程语言.有如下特点: (1)面向对象:c# 是面向对象的范例的一个丰富实现, 它 ...

  5. C#2.0新增功能06 协变和逆变

    连载目录    [已更新最新开发文章,点击查看详细] 在 C# 中,协变和逆变能够实现数组类型.委托类型和泛型类型参数的隐式引用转换. 协变保留分配兼容性,逆变则与之相反. 以下代码演示分配兼容性.协 ...

  6. Redis 5.0新功能介绍

    Redis 5.0 Redis5.0版是Redis产品的重大版本发布,我们先看一下它的最新特点: 新的流数据类型(Stream data type) https://redis.io/topics/s ...

  7. Redis 6.0 访问控制列表ACL说明

    背景 在Redis6.0之前的版本中,登陆Redis Server只需要输入密码(前提配置了密码 requirepass )即可,不需要输入用户名,而且密码也是明文配置到配置文件中,安全性不高.并且应 ...

  8. C#基础拾遗系列之二:C#7.0新增功能点

    第一部分: C#是一种通用的,类型安全的,面向对象的编程语言.有如下特点: (1)面向对象:c# 是面向对象的范例的一个丰富实现, 它包括封装.继承和多态性.C#面向对象的行为包括: 统一的类型系统 ...

  9. C#7.0新增功能点

    原文地址:  https://www.cnblogs.com/runningsmallguo/p/8972678.html 第二部分:C#7.0新增的功能 (1)数字字面量的提升: C#7中的数字文字 ...

随机推荐

  1. 移动端使用mint-ui组件loadmore填坑

      链接地址为 https://mint-ui.github.io/docs/#/en2/loadmore ,这里需要注意引入的方式,我这里是用cdn的方式引入的.请结合官方API阅读本文章. 2.在 ...

  2. 我去,你写的 switch 语句也太老土了吧

    昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意.但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:& ...

  3. Python 十大语法

    前言 Python 是一种代表简单思想的语言,其语法相对简单,很容易上手.不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了.本文精心筛选了最能展现 Python 语法之精妙的十个知识 ...

  4. CentOS7 安装python 3.5 及 pip安装

    1.CentOS7 安装Python 的依赖包 # yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-d ...

  5. 可视化工作流程设计开发OA系统,一两个程序员就搞定!

    随着信息化的发展,越来越多的公司老板要求实现企业审批流程化.一个公司在初期,人员少,流程简单,员工也会经常不按工作流程来走,甚至有些跨部门的工作因为关系原因,没有走工作流程就实施,导致后期出现问题或者 ...

  6. VUE实现Studio管理后台(一):鼠标拖放改变窗口大小

    近期改版RXEditor,把改版过程,用到的技术点,记录下来.昨天完成了静态页面的制作,制作过程并未详细记录,后期已经不愿再补了,有些遗憾.不过工作成果完整保留在github上,地址:https:// ...

  7. 学习Vue.js-Day2

    书接上文/思考反馈 react,ng,vue作用差不多,那各个都有什么特点啊,实际工作中应该用哪一个? 答:其实在实际工作中,组员会通过讨论而选择框架:这三个框架都能解放你的工作量,也适合做单页面应用 ...

  8. html/css系列-图片上下居中

    本文详情:http://www.zymseo.com/276.html图片上下居中的问题常用的几种方法:图片已知大小和未知大小,自行理解 .main{ width: 400px;height: 400 ...

  9. Ansible-安装配置

    主机规划 主机名称 操作系统版本 内网IP 外网IP(模拟) 安装软件 ansi-manager CentOS7.5 172.16.1.180 10.0.0.180 ansible ansi-hapr ...

  10. 10个机器学习人工智能开发框架和AI库(优缺点对比表)/贪心学院

    概述 通过本文我们来一起看一些用于人工智能的高质量AI库,它们的优点和缺点,以及它们的一些特点. 人工智能(AI)已经存在很长时间了.然而,由于这一领域的巨大进步,近年来它已成为一个流行语.人工智能曾 ...