《Linux运维总结:Redis7.4.5哨兵集群开启ACL并配置用户》

发布于:2025-09-15 ⋅ 阅读:(24) ⋅ 点赞:(0)

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:Linux运维实战总结


一、背景说明

1、Redis开启ACL是提升数据库安全性的关键措施,尤其是在生产环境中。核心原因:Redis 默认“裸奔”,极其不安全。
1、无用户概念:所有客户端连接都拥有“超级管理员”权限。
2、无密码保护(除非配置了 requirepass,但这只是简单密码,不支持多用户)。
3、任意客户端可执行任何命令:包括 FLUSHALL、CONFIG SET、SHUTDOWN 等危险操作。


2、开启 ACL 后,你可以:
1、创建多个用户
2、为每个用户分配不同的权限(能访问哪些 key、能执行哪些命令)
3、实现最小权限原则


3、开启ACL的五大核心价值

价值 说明
权限隔离 不同应用、服务使用不同用户,避免越权操作
最小权限原则 用户只能访问必要的 key 和命令,降低误操作或攻击影响
审计追踪 日志中记录是哪个用户执行了命令,便于安全事件溯源
多租户支持 一个 Redis 实例服务多个应用/团队,互不干扰
符合安全合规 满足等保、GDPR、PCI-DSS 等安全审计要求

三、配置ACL

说明:这里以哨兵节点为例,这里为了方便就只配置了一个管理用户lolage,具有拥有所有权限。

节点类型 是否需要 ACL 配置项 说明
主节点(Master) 必须 aclfile, users.acl 定义所有用户(admin、app、repl、sentinel)
从节点(Replica) 不需要客户端 ACL,但需配置主节点认证 masteruser, masterauth 用于连接主节点复制数据
哨兵节点(Sentinel) 必须配置主从节点的 ACL 凭据 sentinel auth-user, sentinel auth-pass 用于监控和故障转移

1、master节点配置

# 1、修改redis master节点配置文件
# redis主节点上正确配置ACL(Access Control List),就完全不需要再使用 requirepass
# requirepass 123456
aclfile /opt/redis/conf/user.acl

# 创建user.acl文件
vim /opt/redis/conf/user.acl
user default off
user lolaage on >NX1wsMnTWVHHYbFy +@all ~* &* allkeys

2、salve节点配置

masterauth NX1wsMnTWVHHYbFy
masteruser lolaage

3、sentinel节点配置

sentinel auth-pass mymaster NX1wsMnTWVHHYbFy
sentinel auth-user mymaster lolaage