最佳实践

 

ACL 最佳实践

更新时间 2023-09-06

应用场景

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

部署方案

  • 配置 requirepass 作为管理员账户使用,拥有全部权限。
  • 添加 write 用户,作为数据操作账户使用, 有读写权限,没有查看和管理服务权限。
  • 添加 read 用户,作为读取数据账户使用,有只读权限和查看槽位权限,没有写权限、查看和管理服务状态权限。
  • 添加 monitor 用户,作为监控服务状态使用,只有查看服务器状态权限,没有调整服务配置以及读写数据权限。

前提条件

  • 已获取管理控制台登录账号和密码,且已获取集群操作权限。
  • 已创建 Redis Cluster 集群,且集群状态为活跃
  • 已在服务器安装 redis-cli 客户端,且服务器与 Redis 之间网络通常。

约束与限制

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

操作步骤

  1. 登录管理控制台。

  2. 选择产品与服务 > 数据库与缓存 > 键值数据库 Redis Standalone,进入集群管理页面。

  3. 选择目标集群,点击目标集群 ID,进入集群详情页面。

  4. 点击配置参数页签,进入集群配置参数管理页面。

  5. 点击修改属性,公共参数进入可编辑状态。

  6. 设置 requirepass 密码。

    • 打开config和save命令:选择 1,方便后续验证。
    • requirepass:修改独立密码,保证后续不能直接登录,避免通过 redis-cli 就可以获取所有管理和读写权限。
  7. 确认参数信息无误后,点击保存,返回参数列表页面。

  8. 用户管理 ACL 页签,点击添加账号

    • 设置读写数据权限用户。

      规则:-@all +@read +@write +cluster|nodes ~*

      +cluster|nodes 是 查看槽位表命令,仅适用于部分客户端。

    • 设置只读权限用户。

      规则:-@all +cluster|nodes +@read ~*

      +cluster|nodes 是 查看槽位表命令,仅适用于部分客户端。

    • 设置只有查看服务状态用户。

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

  9. 查看配置是否正确。

  10. 连接数据库,详细操作请参见Redis-cli 连接

  11. 测试配置。

    • 测试读写权限权限用户,
    • 测试只读权限用户
    • 测试监控权限用户
这篇文档解决了您的问题吗?
0
0