Redis 6.0 新增功能 - ACL
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的更多相关文章
- Redis 7.0 新功能新特性总览
说明:本文根据Redis 7 RC2 的release note 整理并翻译 近日,Redis 开源社区发布了7.0的两个预览版.在这两个预览版中,有很多Redis 7.0中新增加的特性,新增加的命令 ...
- Redis 4.0新功能介绍
Redis 的作者 antirez 在三天之前通过博客文章<The first release candidate of Redis 4.0 is out>发布了 Redis 4.0 的第 ...
- Redis 6.0 新特性 ACL 介绍
Redis 6.0 新特性 ACL 介绍 Intro 在 Redis 6.0 中引入了 ACL(Access Control List) 的支持,在此前的版本中 Redis 中是没有用户的概念的,其实 ...
- C#基础拾遗系列之二:使用ILSpy探索C#7.0新增功能点
C#基础拾遗系列之二:使用ILSpy探索C#7.0新增功能点 第一部分: C#是一种通用的,类型安全的,面向对象的编程语言.有如下特点: (1)面向对象:c# 是面向对象的范例的一个丰富实现, 它 ...
- C#2.0新增功能06 协变和逆变
连载目录 [已更新最新开发文章,点击查看详细] 在 C# 中,协变和逆变能够实现数组类型.委托类型和泛型类型参数的隐式引用转换. 协变保留分配兼容性,逆变则与之相反. 以下代码演示分配兼容性.协 ...
- Redis 5.0新功能介绍
Redis 5.0 Redis5.0版是Redis产品的重大版本发布,我们先看一下它的最新特点: 新的流数据类型(Stream data type) https://redis.io/topics/s ...
- Redis 6.0 访问控制列表ACL说明
背景 在Redis6.0之前的版本中,登陆Redis Server只需要输入密码(前提配置了密码 requirepass )即可,不需要输入用户名,而且密码也是明文配置到配置文件中,安全性不高.并且应 ...
- C#基础拾遗系列之二:C#7.0新增功能点
第一部分: C#是一种通用的,类型安全的,面向对象的编程语言.有如下特点: (1)面向对象:c# 是面向对象的范例的一个丰富实现, 它包括封装.继承和多态性.C#面向对象的行为包括: 统一的类型系统 ...
- C#7.0新增功能点
原文地址: https://www.cnblogs.com/runningsmallguo/p/8972678.html 第二部分:C#7.0新增的功能 (1)数字字面量的提升: C#7中的数字文字 ...
随机推荐
- Ubuntu 14.10 进入单用户模式
1. 开机,进入grub界面 2. 此时会有一个选项:Advanced Options for Ubuntu(ubuntu高级), 选中直接回车 3. 看到里面有很多选项,选中后面带recovery ...
- 先治再扶,重灾区后的P2P你还敢投吗?
互联网强大的包容性和创新性,给予很多新生事物成长的空间.而其全面普及与快速传播的特性,也让任何事物都像被放在放大镜乃至显微镜下,几乎无形遁形.这样一来,新生事物很容易被"神化" ...
- 选题在线提交系统(html+JS+php)
前言: 作为学习委员还是有挺多的事情要忙的,比如经常统计同学们的课设题目选择结果.如果老师的要求少一点,我还可以轻松一点.但是当老师对选题有种种限制的时候,自己就估计不会那么好办了.这 ...
- Dubbo源码解析之SPI(一):扩展类的加载过程
Dubbo是一款开源的.高性能且轻量级的Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用.智能容错和负载均衡,以及服务自动注册和发现. Dubbo最早是阿里公司内部的RPC框架,于 ...
- Sentinel基于Apollo的持久化改造
Sentinel基于Apollo的持久化改造 sentinel默认是将用户在dashboard中编辑过的流控信息保存在内存中,所以在重启后,所有之前配置过的流控规则也就不见了.但是sentinel给用 ...
- http请求缓存头详解
缓存的作用:1.减少延迟(页面打开的速度).2.降低服务器负载(先取缓存,无缓存在请求服务器,有效降低服务器的负担).3.保证稳定性(有个笑话是手机抢购时为了保证服务器的稳定性,在前端写个随机数限制百 ...
- Java 8 Optional 良心指南,建议收藏
想学习,永远都不晚,尤其是针对 Java 8 里面的好东西,Optional 就是其中之一,该类提供了一种用于表示可选值而非空引用的类级别解决方案.作为一名 Java 程序员,我真的是烦透了 Null ...
- 搭建flutter开发
最近入坑flutter,dart还没开始学,搭环境就干了我一天半,不容易,记录一下, 我们先立个目标,这是我已经配好的,我是真的有强迫症,需要打四个对勾,真的不容易,我们一个一先说一下每一个都代表什么 ...
- C#桌面开发的未来WebWindow
目录 WebWindow 源码 作者博客 基于Chromium的Edge 体验 体验方式一: 体验方式二: 遗留的问题 WebWindow WebWindow是跨平台的库. Web Window的当前 ...
- 基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境
基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境 前言一.环境准备环境介绍软件下载VMware下安装UbuntuUbuntu下Anaconda的安 ...