redis acl

redis acl

redis 安全访问控制

官网

本文基于redis 6.2.17 版本进行测试验证

使用方式

redis 使用 acl 的配置有2种方式:使用 redis.conf 文件配置,和在 redis.conf 文件中配置 aclfile path 指定外部 aclfile 文件路径

使用 redis.conf 文件配置

首先,打开redis-cli,配置用户访问控制权限,如密码、可执行的命令等

# redis-cli中执行命令
## 配置用户信息
acl setuser 用户名 on +@all -eval -evalsha >明文密码

其次,手动将配置写入 redis.conf 文件中,持久化保存

user 用户名 on +@all -eval -evalsha >明文密码

通过 aclfile 指定其他配置文件路径

首先,在redis.conf配置文件中配置 aclfile /x/x/x/users.acl 配置文件,根据需求替换路径

aclfile /x/x/x/users.acl

接下来有2种方式使规则生效,任选一种即可

方式1,在 redis-cli 中配置规则,最后通过acl save命令将配置写入/x/x/x/users.acl配置文件

# redis-cli中执行命令
## 配置用户信息
acl setuser 用户名 on +@all -eval -evalsha >明文密码

## 查看配置
acl list

## 持久化存储
acl save

方式2,在/x/x/x/users.acl中写入规则,在redis-cli 执行 acl load命令使配置生效
/x/x/x/users.acl中添加规则

user 用户名 on +@all -eval -evalsha >明文密码

redis-cli中执行命令

# redis-cli中执行命令
acl load

acl配置语法和常用配置项

使用acl list可以查看当前系统中的配置

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

上面acl list 命令的响应信息可以直接写入到配置文件中,下面讲解中有几部分:

  1. user 是一个固定的单词
  2. default 是默认用户信息,如果需要配置其他用户,可使用其他的用户名
  3. on 表示用户启用,可以使用off禁用某个用户,但已经建立的连接不会关闭
  4. nopass 表示没有启用密码控制
    1. 设置密码,可以在命令的最后添加>password,其中>标记后面的事明文的密码,password可以替换成自己需要的密码,如
      user default on ~* &* +@all >123456
  5. ~* 访问每个可能的密钥
  6. &* 访问每个可能的Pub/Sub 通道
  7. +@all 访问所有命令

如果需要禁用某个命令,使用 -命令,如-eval -evalsha表示禁用 eval 和 evalsha 命令

使用技巧

  1. 常用配置

    给出一条常用的命令,每次新增用户权限可直接复制命令,然后根据实际需求进行调整

    redis-cli

        acl setuser 用户名 on ~* &* +@all -eval -evalsha -flushdb -flushall >明文密码
    

    users.acl文件

        user 用户名 on ~* &* +@all -eval -evalsha -flushdb -flushall >明文密码
    
  2. 通过acl list命令的响应内容,快速修改配置

    redis-cli 交互式窗口中,使用acl list可以查看redis中目前生效的配置信息,可以复制其响应内容,在命令后使用+xxx -xxx来快速修改对应用户可执行和禁用的命令

    ### 使用 acl list,查看响应内容
    127.0.0.1:6379> acl list
    1) "user alice on #8bb0cf6eb9b17d0f7d22b456f121257dc1254e1f01665370476383ea776df414 &* +@all"
    2) "user default on sanitize-payload #8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 ~* &* +@all"
    ### 复制第一条,在前方增加acl set,并在后方增加 -flushdb -flushall
    127.0.0.1:6379>acl setuser alice on #8bb0cf6eb9b17d0f7d22b456f121257dc1254e1f01665370476383ea776df414 &* +@all
    OK
    
  3. acl list 中显示的是加密后的密码,如果项目要求不允许在配置文件中出现明文密码,可以将acl list中的内容复制到配置文件中

  4. 不建议使用命令重命名的方式(rename-command),如果需要恢复权限很不方便

  5. 使用acl配置,则可以不使用和redis默认的requirepass

  6. redis.conf中,直接配置user xxxx和指定aclfile xxxx.acl,两种方式只能二选一

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

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

相关文章

【自动化测试】—— Appium安装配置保姆教程(图文详解)

目录 一. 环境准备 二. JDK安装 1. 下载JDK 2. 安装JDK 3. 配置环境 4. 验证安装 三. Android SDK安装 1. 下载Android SDK 2. 安装Android SDK 3. 安装工具 4. 配置环境 5. 验证安装 四. NodeJS安装 1. 下载NodeJS 2. 安装NodeJS 3. 验证安装 4. 安装淘宝镜像…

vs2022+QT6.7.3打包程序流程

1、新建目录test 2、将项目配置为Release X64,生成XXX.exe 3、将XXX.exe放到test目录 4、管理员方式打开Qt 6.7.3 (MSVC 2022 64-bit),进入test目录,执行:windeployqt6.exe XXX.exe 5、管理员方式打开x64 Native Tools Command…

RabbitMQ---消息确认和持久化

(一)消息确认 1.概念 生产者发送消息后,到达消费端会有以下情况: 1.消息处理成功 2.消息处理异常 如果RabbitMQ把消息发送给消费者后就把消息删除,那么就可能会导致,消息处理异常想要再获取这条消息的时…

【C++】反向迭代器

反向迭代器 一.源码及框架分析二.反向迭代器实现代码1.ReverseIterator.h2.Vector.h3.List.h4.Test.cpp 一.源码及框架分析 SGI-STL30版本源代码,反向迭代器实现的核心源码在stl_iterator.h中,反向迭代器是一个适配器,各个容器中再适配出自己…

浅谈云计算02 | 云计算模式的演进

云计算计算模式的演进 一、云计算计算模式的起源追溯1.2 个人计算机与桌面计算 二、云计算计算模式的发展阶段2.1 效用计算的出现2.2 客户机/服务器模式2.3 集群计算2.4 服务计算2.5 分布式计算2.6 网格计算 三、云计算计算模式的成熟与多元化3.1 主流云计算服务模式的确立3.1.…

WEB 攻防-通用漏-XSS 跨站脚本攻击-反射型/存储型/DOMBEEF-XSS

XSS跨站脚本攻击技术(一) XSS的定义 XSS攻击,全称为跨站脚本攻击,是指攻击者通过在网页中插入恶意脚本代码,当用户浏览该网页时,恶意脚本会被执行,从而达到攻击目的的一种安全漏洞。这些恶意脚…

Vue3组件设计模式:高可复用性组件开发实战

Vue3组件设计模式:高可复用性组件开发实战 一、前言 在Vue3中,组件设计和开发是非常重要的,它直接影响到应用的可维护性和可复用性。本文将介绍如何利用Vue3组件设计模式来开发高可复用性的组件,让你的组件更加灵活和易于维护。 二、单一职责…

深度剖析RabbitMQ:从基础组件到管理页面详解

文章目录 一、简介二、Overview2.1 Overview->Totals2.2 Overview->Nodesbroker的属性2.3 Overview->Churn statistics2.4 Overview->Ports and contexts2.5 Overview->Export definitions2.6 Overview->Import definitions 三、Connections连接的属性 四、C…

Unity 语音转文字 Vosk 离线库

市场有很多语音库,这里介绍Vosk SDK 除了支持untiy外还有原生开发服务器等 目录 安装unity示例demo下载语音训练文件运行demo结尾一键三联 注意事项 有可能debug出来的文本是空的,(确保麦克风正常,且索引正确)分大…

播放音频文件同步音频文本

播放音频同步音频文本 对应单个文本高亮显示 使用audio音频文件对应音频文本资源 音频文本内容(Json) [{"end": 4875,"index": 0,"speaker": 0,"start": 30,"text": "70号二啊,","tex…

【React】新建React项目

目录 create-react-app基础运用React核心依赖React 核心思想:数据驱动React 采用 MVC体系package.jsonindex.html好书推荐 官方提供了快速构建React 项目的脚手架: create-react-app ,目前使用它安装默认是19版本,我们这里降为18…

mac homebrew配置使用

本文介绍mac上homebrew工具的安装、配置过程。homebrew功能类似于centos的yum,用于软件包的管理,使用上有命令的差异。 本次配置过程使用mac,看官方文档,在linux上也可以用,但我没试过,有兴趣的同学可以试试…

第一次作业三种方式安装mysql(Windows和linux下)作业

在Windows11上安装sever(服务)端和客户端 server端安装 打开官网MySQL 进入到主页 点击DOWMLOAD 进入下载界面 点击下方MySQL Community (GPL) Downloads 进入社区版mysql下载界面 点击 MySQL Community Server 进入server端下载 选择8.4.3LTS&…

基于Media+Unity的手部位姿三维位姿估计

使用mediapipe Unity 手部位姿三维位姿估计 参考文章 基于Mediapipe的姿势识别并同步到Unity人体模型中 MediapipeUnity3d实现虚拟手_unity mediapipe-CSDN博客 需求 我的需求就是快速、准确的跟踪手部位姿并实现一个三维显示。 主要思路 搭建mdeiapipe系统&#xff0c…

【C++】IO 流

文章目录 👉C 语言的输入与输出👈👉流是什么👈👉C IO 流👈C 标准 IO 流C 和 C 语言的输入格式问题C 的多次输入内置类型和自定义类型的转换日期的多次输入C 文件 IO 流文本文件和二进制文件的读写 &#x1…

成功案例分享 — 芯科科技助力涂鸦智能打造Matter over Thread模块,简化Matter设备开发

芯科科技(Silicon Labs)的愿景之一是让开发者每天都能够更轻松地开发无线物联网(IoT)。特别是在拥有相同愿景的合作伙伴的帮助下,我们每天都在取得进步。但是要想弥合知识水平和物联网开发之间的差距仍会面临一定的挑战…

MySQL主从部署(保姆版)

一、mysql 同步复制有关概述 一般数据库都是读取压力大于写数据压力,主从复制即为了实现数据库的负载均衡和读写分离。通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,主服务器只负责写,而从服务器只负责读。…

浅谈计算机网络02 | SDN控制平面

计算机网络控制平面 一、现代计算机网络控制平面概述1.1 与数据平面、管理平面的关系1.2 控制平面的发展历程 二、控制平面的关键技术剖析2.1 网络层协议2.1.1 OSPF协议2.1.2 BGP协议 2.2 SDN控制平面技术2.2.1 SDN架构与原理2.2.2 OpenFlow协议2.2.3 SDN控制器 一、现代计算机…

基于网络爬虫技术的网络新闻分析【源码+文档+部署讲解】

目 录 1 绪论 1.1 论文研究背景与意义 1.2 论文研究内容 2 系统需求分析 2.1 系统需求概述 2.2 系统需求分析 2.2.1 系统功能要求 2.2.2 系统IPO图 2.2 系统非功能性需求分析 3系统概要设计 3.1 设计约束 3.1.1需求约束 3.1.2设计策略 3.1.3 技术实现 3.3 模块…

WeakAuras NES Script(lua)

WeakAuras NES Script 修星脚本字符串 脚本1:NES !WA:2!TMZFWXX1zDxVAs4siiRKiBN4eV(sTRKZ5Z6opYbhQQSoPtsxr(K8ENSJtS50(J3D7wV3UBF7E6hgmKOXdjKsgAvZFaPTtte0mD60XdCmmecDMKruyykDcplAZiGPfWtSsag6myGuOuq89EVDV9wPvKeGBM7U99EFVVVV33VFFB8Z2TJ8azYMlZj7Ur3QDR(…