【发布时间】:2022-10-22 17:59:51
【问题描述】:
通常,通过ACL List 可以(dis)允许与特定键模式匹配的键的特定 Redis 命令。
例如,在具有遵循myKeyN 模式(即myKey1 : myField : myVal1、myKey2 : myField : myVal2 等)的哈希的数据库中,将用户配置为只能获取这些密钥可以配置为user myUser -@all +hget ~myKey*,即简单但非常强大和灵活。
但是,当使用RediSearch module 通过数据库进行全文搜索(FT.SEARCH 命令)时,会出现问题。搜索结果的关键模式似乎与搜索命令的 ACL 无关。
在上面的例子中,如果将规则扩展为包含搜索命令(即user myUser -@all +hget +ft.search ~myKey*),并且使用FT.CREATE mySearch ON HASH PREFIX 1 myKey SCHEMA myField TEXT进行搜索索引,则搜索包含myVal*的键将返回访问控制错误NOPERM this user has no permissions to access one of the keys used as arguments,即使所有搜索结果都将遵循允许的键模式myKey*。
如何将搜索配置为仅允许特定用户搜索特定键模式?
【问题讨论】:
标签: security redis full-text-search