我们有很多使用redis的服务,我们通过为每个服务创建一个特定的用户来保护我们新的分片集群redis。为确保集群的安全,每个用户需要禁用哪些redis命令?我们的服务有redis的正常使用(读写密钥、发布/子频道、一些健康检查等(,没有人需要管理或危险的命令。以下ACL是否足以确保我们的redi安全?
user foo reset on>password resetkeys ~{bar:baz}:baz:* resetchannels ${bar:baz}:baz:* +@all -@admin -@dangerous
其目的是基本上保护我们的集群,因为不允许用户修改另一个集群的密钥/通道,或者不允许用户执行集群/实例操作、管理任务等。最后,我们所有的服务都使用https://github.com/StackExchange/StackExchange.Redis和https://www.npmjs.com/package/bull(带连接器https://github.com/luin/ioredis)客户。
您可以执行以下操作:
-
首先:以下是Redis发布的ACL命令的具体列表:https://redis.io/commands/acl-cat/(待阻止(
-
第二:您可以限制Redis用户访问特定前缀
-
最后:您可以使用redis.conf文件中的:rename命令重命名一些命令