Redis权限管理体系(三): ACL 配置持久化

点击上方蓝字关注我

29cc5ba9bc89141f40373a0b20f1d528.png

前面我们已经了解了ACL用户管理的用途及使用:

Redis权限管理体系(一):客户端名及用户名

Redis权限管理体系(二):终于等来了Redis权限控制体系ACL

但因默认配置中ACL的配置未持久化,因此Redis重启后对应的用户(default用户除外)将丢失,因此建议开启ACL配置的持久化。而ACL的持久化有两种方式,以下分别演示。

1. 配置前准备工作

重启Redis服务

127.0.0.1:6479> shutdown
not connected>

再次启动Redis并登录,查看default用户权限

127.0.0.1:6479> ACL LIST
1) "user default on #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
127.0.0.1:6479>

dcccbd133140f1060ef93480221b237b.png

2.  在服务层配置文件中配置ACL

2.1 关闭Redis服务

127.0.0.1:6479> shutdown
not connected>

2.2 在配置文件中添加default用户的配置

7e1b9d4fe452b10d645f2a0b447eebc5.png

登录Redis查看

127.0.0.1:6479> ACL LIST
1) "user default on #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"

2.3 添加新用户

1) "user default on #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
127.0.0.1:6479> ACL SETUSER user1 on >pwd_test1 allkeys +@all 
OK
127.0.0.1:6479> ACL LIST
1) "user default on #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
2) "user user1 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"

此时如果想保存配置,不能使用ACL SAVE命令处理

(error) ERR This Redis instance is not configured to use an ACL file. You may want to specify users via the ACL SETUSER command and then issue a CONFIG REWRITE (assuming you have a Redis configuration file set) in order to store users in the Redis configuration.

bc69d1b6314262a1546fe4241143e75b.png

需要手动将用户信息添加在配置文件中

72d75c5fab91d65c18666c41541c4c3e.png也不能直接从Redis配置文件中加载配置

127.0.0.1:6479> ACL LOAD
(error) ERR This Redis instance is not configured to use an ACL file. You may want to specify users via the ACL SETUSER command and then issue a CONFIG REWRITE (assuming you have a Redis configuration file set) in order to store users in the Redis configuration.

233df9742b4e9cd9bf42a2e435130964.png

不过可以使用config rewrite保存到配置文件

127.0.0.1:6479> ACL SETUSER user2 on >pwd_test1 allkeys +@all
OK
127.0.0.1:6479> CONFIG REWRITE

9d44810da924947ca3f2ded5b3919ed2.png

3.  配置单独的ACL文件

3.1 修改配置

为了方便管理,建议单独使用ACL配置文件来管理用户信息。另外,不可以同时使用服务端配置文件与单独的配置文件共存的方式来配置,否则启动时会报错。

# Configuring Redis with users defined in redis.conf and at the same setting an ACL file path is invalid. This setup is very likely to lead to configuration errors and security holes, please define either an ACL file or declare users directly in your redis.conf, but not both.

因此,需要注释掉原先的方式,只添加aclfile的配置

6485fb16efe0aaf7b8e039815aaeeb7b.png

87f418469e5bbc35644d3cb82252d9e8.png

并且在users.acl中将之前的用户信息复制进去

752f6eafa2ce3c26302a5f81b7b25324.png

再次启动Redis服务。

登录后再次查看,相关用户已存在

127.0.0.1:6479> ACL LIST
1) "user default on sanitize-payload #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
2) "user user1 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"
3) "user user2 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"
127.0.0.1:6479>

23d28aef4a31d40bfc51605404513d43.png

3.2 创建新用户

127.0.0.1:6479> ACL SETUSER u1 on >pwd_u1 allkeys +@write +@read 
OK
127.0.0.1:6479> ACL LIST
1) "user default on sanitize-payload #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
2) "user u1 on #21a1bbcd2c36cb07cd8779b3cba6ab183ecfd8b2a86e11f6dc1f674b90634544 ~* &* -@all +@write +@read"
3) "user user1 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"
4) "user user2 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"

保存配置

127.0.0.1:6479> ACL SAVE
OK

0837b26f960d8d16d9d3d86dc6e032e1.png3.3 直接在配置文件中添加用户

可以直接在用户配置配件中添加用户信息,再通过加载的方式加载用户

407ddee2c8a3fc1bc981ff550499f7d1.png

再次登录Redis中通过ACL LOAD加载配置后查看

127.0.0.1:6479> ACL LOAD
OK
127.0.0.1:6479> ACL LIST
1) "user default on sanitize-payload #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
2) "user u1 on #21a1bbcd2c36cb07cd8779b3cba6ab183ecfd8b2a86e11f6dc1f674b90634544 ~* &* -@all +@write +@read"
3) "user u2 on #21a1bbcd2c36cb07cd8779b3cba6ab183ecfd8b2a86e11f6dc1f674b90634544 ~* &* -@all +@write +@read"
4) "user user1 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"
5) "user user2 on #d9e1f1341d0208467c6c88f61420284e15337d4a0be94b964d62d4b00a9e77d6 ~* &* +@all"

db3d9872712e790a8f16b10d7bfaf32a.png

这样每次用户操作后使用ACL SAVE保存操作,使用ACL LOAD加载配置即可。

b695fb9aa35b30540a672381b9a6a3e0.png

往期精彩回顾

1.  MySQL高可用之MHA集群部署

2.  mysql8.0新增用户及加密规则修改的那些事

3.  比hive快10倍的大数据查询利器-- presto

4.  监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

5.  PostgreSQL主从复制--物理复制

6.  MySQL传统点位复制在线转为GTID模式复制

7.  MySQL敏感数据加密及解密

8.  MySQL数据备份及还原(一)

9.  MySQL数据备份及还原(二)

35be21e3aec705a4536d7b5af704c0a0.png

扫码关注     

cb6faae63ca54883dc4601f1d7defb0a.jpeg

af1cfc362662541e10736000aa22678a.png

d45b1e88f34be9610e70dff500087a53.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/259412.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

oracle怎样才算开启了内存大页?

oracle怎样才算开启了内存大页? 关键核查下面三点: 1./etc/sysctl.conf vm.nr_hugepages16384这是给了32G,计划sga给30G,一般需多分配2-4G sysctl -p生效 看cat /proc/meminfo|grep Huge啥结果? 这种明显是配了…

Go项目快速集成Swagger UI

swag Swag将Go的注释转换为Swagger2.0文档。我们为流行的 Go Web Framework 创建了各种插件,这样可以与现有Go项目快速集成(使用Swagger UI)。 目录 快速开始支持的Web框架如何与Gin集成格式化说明开发现状声明式注释格式 通用API信息API操…

【每日一题】【12.20】2828.判别首字母缩略词

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 1.题目链接 2828. 判别首字母缩略词https://leetcode.cn/problems/check-if-a-string-is-an-acronym-of-words/ 2.题目描述 今天…

RTDETR论文快速理解和代码快速实现(训练与预测)

文章目录 前言一、摘要二、论文目的三、论文贡献四、模型结构1、模型整体结构2、backbone结构3、neck结构4、混合编码器(neck) 五、RTDERT模型训练(data-->train)1、环境安装2、训练1、数据准备2、数据yaml文件3、训练代码4、训练运行结果 3、推理1、推理代码2、推理运行结果…

Nginx快速入门:安装目录结构详解及核心配置解读(二)

0. 引言 上节我们讲解了nginx的应用场景和安装,本节继续针对nginx的各个目录文件进行讲解,让大家更加深入的认识nginx。并通过一个实操案例,带大家来实际认知nginx的核心配置 1. nginx安装目录结构 首先nginx的默认安装目录为:…

原子学习笔记3——使用tslib库

一、tslib介绍 tslib 是专门为触摸屏设备所开发的 Linux 应用层函数库,并且是开源。 tslib 为触摸屏驱动和应用层之间的适配层,它把应用程序中读取触摸屏 struct input_event 类型数据(这是输入设备上报给应用层的原始数据)并进行…

Elasticsearch常见面试题

文章目录 1.简单介绍下ES?2.简单介绍当前可以下载的ES稳定版本?3.安装ES前需要安装哪种软件?4.请介绍启动ES服务的步骤?5.ES中的倒排索引是什么?6. ES是如何实现master选举的?7. 如何解决ES集群的脑裂问题8…

SpringBoot-XXLJOB提供动态API调度任务

目录 一、项目版本 二、XXL-JOB提供动态API controller层 service层 三、SpringBoot项目 pom model XxlJobUtil-工具类 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&…

Gateway网关-网关的cors跨域配置

目录 一、跨域 二、解决方案 三、实际测试 3.1 html调用接口 3.2 跨域问题复现 3.3 application文件中配置CORS 3.4 问题解决 一、跨域 跨域问题:浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题 跨域:…

第四节TypeScript 声明变量

1、typescript变量声明 变量是一种使用方便的占位符,用于引用计算机内存地址。 我们可以把变量看做存储数据的容器。 typescript变量的命名规则: 变量名称可以包含数字和字母。除了下划线_和美元$符号外,不能包含其它特殊字符&#xff0c…

基于Alpha-Beta剪枝树的井字棋人机博弈系统的实现

这篇文章讨论了算法的基本概念与特性,并介绍了五种常见的算法类型:分治法、动态规划、贪心算法、回溯法和分支限界法。文章以井字棋博弈中的Alpha-Beta剪枝树作为示例,详细解释了该算法的应用和原理。Alpha-Beta剪枝树是一种用于实现游戏AI的…

Python数据加密:保障信息安全的最佳实践

更多资料获取 📚 个人网站:ipengtao.com 随着信息技术的发展,数据安全成为越来越重要的议题。在Python中,有多种方法可以用于数据加密,以确保敏感信息在传输和存储过程中不被泄露或篡改。本文将详细介绍Python中数据加…

智能优化算法应用:基于梯度算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于梯度算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于梯度算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.梯度算法4.实验参数设定5.算法结果6.参考文献7.MA…

服务器数据恢复-EMC存储raid5磁盘物理故障离线的数据恢复案例

服务器数据恢复环境&故障: 一台emc某型号存储服务器,存储服务器上组建了一组raid5磁盘阵列,阵列中有两块磁盘作为热备盘使用。存储服务器在运行过程中有两块磁盘出现故障离线,但是只有一块热备盘激活,最终导致该ra…

文件操作入门指南

目录 一、为什么使用文件 二、什么是文件 2.1 程序文件 2.2 数据文件 2.3 文件名 三、文件的打开和关闭 3.1 文件指针 3.2 文件的打开和关闭 四、文件的顺序读写 ​编辑 🌻深入理解 “流”: 🍂文件的顺序读写函数介绍: …

系列十四(面试)、谈谈你对StackOverflowError的理解?

一、StackOverflowError 1.1、概述 StackOverflowError是栈内存溢出的意思。栈中主要存储的是8种基本数据类型 引用类型 实例方法,栈的空间也是有限的,当存储进栈中的容量大于栈的最大容量时,就会报StackOverflowError的错误。 1.2、案例 …

如何入门 GPT 并快速跟上当前的大语言模型 LLM 进展?

入门GPT 首先说第一个问题:如何入门GPT模型? 最直接的方式当然是去阅读官方的论文。GPT模型从2018年的GPT-1到现在的GPT-4已经迭代了好几个版本,通过官方团队发表的论文是最能准确理清其发展脉络的途径,其中包括GPT模型本身和一…

最详细手把手教你安装 Vivado2017.4

软件下载 官网可下载各个版本 百度网盘链接 Vivado2017.4 License 软件安装 解压缩安装包,双击运行安装程序 xsetup.exe: 忽略软件更新,点击 Continue: 点击 Next: 全部勾选 I Agree,点击 Next&#x…

从0到1打造一款WebStyle串口调试工具

Tip:No Ego Some programmers have a huge problem: their own ego. But there is no time for developing an ego. There is no time for being a rockstar. Who is it who decides about your quality as programmer? You? No. The others? Probably. But can …

Python (十二) NumPy操作

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…