应用场景

一组 Redis 集群赋予多个应用使用,需要每个应用限定权限,需要设置有监控,但为确保数据安全,不宜给全部权限。

部署方案

  • 为管理员用户配置密码参数 requirepass,详情可参考配置集群参数。若未进行设置,则默认无密码。

  • 添加 用户,作为数据操作账户使用,有读写权限,没有查看和管理服务权限。

  • 添加 用户,作为读取数据账户使用,有只读权限和查看槽位权限,没有写权限、没有查看和管理服务状态权限。

  • 添加 监控 用户,作为监控服务状态使用,只有查看服务器状态权限,没有调整服务配置以及读写数据权限。

前提条件

  • 已获取管理控制台登录账号和密码,且已获取集群操作权限。

  • 已创建 Redis Cluster 集群,且集群状态为 活跃

  • 已在服务器安装 redis-cli 客户端,且服务器与 Redis 之间网络通常。

约束限制

Redis Cluster 6.2.5-v1.0.0 及其以上版本。

操作步骤

步骤一:设置密码

  • 创建 Redis Cluster 实例时设置密码

    创建 Redis Cluster 实例时,设置更多参数中的 requirepass,详细操作可参考创建 Redis Cluster 集群

  • 修改配置参数设置密码

    Redis Cluster 集群创建完成后,可通过修改配置参数 requirepass 来设置密码,详细操作可参考修改 Redis Cluster 参数

步骤二:添加不同权限的用户

  • 设置读写数据权限用户

    按如下格式,填写权限规则,其中 +cluster\|nodes 是查看槽位表命令,仅适用于部分客户端。

    -@all +@read +@write +cluster|nodes ~*
  • 设置只读权限用户

    按如下格式,规则填写,其中 +cluster\|nodes 是查看槽位表命令,仅适用于部分客户端。

    -@all +cluster|nodes +@read ~*
  • 设置监控用户

    监控用户只有查看服务状态权限,规则填写如下

-@all +config|get +cluster|nodes +cluster|info +client|list +client|info +time +role +ping +info

步骤三:权限验证

  1. 在 Console 页面确认权限配置是否正确。详情参考前文内容,进入用户管理 ACL 页面。

  2. 连接 Redis 数据库,详情参考连接数据库

  3. 测试配置。

    • 测试读写权限权限用户

      acl config 06
    • 测试只读权限用户

      acl config 07
    • 测试监控权限用户

      acl config 08