Создание пользователей ACL, проверка разрешений и сохранение
RedisБезопасностьКоманда
# Application user: only app:* keys and channels, dangerous commands excluded:
ACL SETUSER app_rw on >S3cret-Change ~app:* resetchannels &app:* +@read +@write -@dangerous
# Monitoring user: no key access, only specific commands:
ACL SETUSER monitor on >M0n-Secret resetkeys resetchannels -@all +info +ping +client|list +slowlog|get +latency +config|get
# Test permissions without running the command:
ACL DRYRUN app_rw GET app:1001
ACL GETUSER app_rw
ACL LIST
# Make it persistent: ACL SAVE if aclfile is set, otherwise CONFIG REWRITE into redis.conf
ACL SAVEЧто делает
Создаёт пользователей для приложений и мониторинга с правами по префиксу ключей, каналу pub/sub и категории команд; проверяет через DRYRUN, разрешена ли команда, не выполняя её, и записывает ACL на диск.
Когда использовать
При переходе от одного общего пароля (requirepass) к доступу по пользователям, изоляции приложений от ключей друг друга или создании учётной записи только для чтения для инструмента мониторинга.
Внимание
Порядок правил важен: resetchannels удаляет все правила &channel, заданные до него. -@dangerous блокирует также команды KEYS, FLUSHALL, CONFIG и DEBUG; проверьте команды, используемые приложением, через DRYRUN. Если пользователь default остаётся включённым с nopass и +@all, ACL не дают защиты; выполните ACL SETUSER default off после создания администратора. В redis-cli, если AUTH с --user/--pass не удался, соединение продолжается от пользователя default, и команда всё равно выполняется; поэтому для проверки разрешений используйте DRYRUN.