实现适当的身份验证和访问控制对于保障您的 Redis 环境安全至关重要。本节介绍 Redis 实例的密码管理和基于角色的访问控制配置。
Redis 5.0 仅支持单一凭证集的基础密码认证,而 Redis 6.0 及更高版本实现了全面的访问控制列表(ACL)系统,支持多个用户及细粒度权限。Redis 6.0+ 为向后兼容旧客户端,保留了默认用户。
以下方法允许您查看与 Redis 实例关联的所有用户。
Redis 实例(版本 6.0+)使用 RedisUser
自定义资源(CR)来管理用户账户。要列出特定实例关联的所有用户:
例如,列出名为 s6
的实例的所有用户:
输出字段说明如下:
字段 | 说明 |
---|---|
NAME | RedisUser 自定义资源标识 |
INSTANCE | 关联的 Redis 实例名称 |
USERNAME | Redis 中注册的用户名 |
PHASE | 同步状态:
|
每个 Redis 实例包含一个内置的 operator 用户,该账户在实例创建时自动创建。此系统账户拥有全面权限(包括用户管理能力),并使用复杂的 64 字符密码进行保护。
该账户专用于系统操作,严禁用于应用访问。对该账户配置的任何修改可能导致实例严重不稳定,甚至出现不可恢复的故障状态。
以下操作步骤允许您更新用户密码以增强安全性。建议定期更换密码作为安全最佳实践。
以下操作仅适用于 Redis 6.0 及以上版本。Redis 5.0 请参见“Redis 5.0 CLI”标签页。
从 RedisUser 列表中确定目标用户。
本示例将更新实例 s6
的 default
用户密码。
获取 RedisUser 资源以确定关联的密码 Secret:
从 spec.passwordSecrets[0]
字段可见密码存储在 Secret redis-s6-2hqxb
中。
查看当前密码 Secret:
注意:
password
键是 Redis Operator 预留字段,值为 base64 编码字符串。
使用新密码更新 Secret:
验证密码更新:
更新密码后,RedisUser 资源会暂时进入 Pending
状态,等待变更同步至所有 Redis 节点。同步完成后状态恢复为 Success
。
Redis 6.0+ 通过 ACL 系统支持细粒度访问控制。平台提供了常用的预定义权限配置:
权限配置 | ACL 规则 | 说明 |
---|---|---|
NotDangerous | +@all -@dangerous ~* | 允许访问所有键的所有命令,除被归类为潜在危险操作的命令外 |
ReadWrite | -@all +@write +@read -@dangerous ~* | 允许对所有键进行读写操作,阻止危险命令 |
ReadOnly | -@all +@read -keys ~* | 限制对所有键的只读访问 |
Administrator | +@all -acl ~* | 提供除 ACL 管理命令外的所有 Redis 功能的全面访问权限 |
对于高级用例,支持自定义 ACL 规则。详情请参阅 Redis ACL 文档。
注意:所有权限配置(包括自定义)均显式撤销 ACL 管理权限。用户修改必须通过平台的用户管理界面进行。
创建成功后,用户会随机进入 Pending
状态。请等待状态变为 Success
,表示更新成功。
为 Redis 集群实例创建用户。