AUTH и ACL
Тема дорожной карты · Redis
Аутентификация и управление доступом в Redis настраиваются с помощью команды AUTH и системы ACL (Access Control List — список контроля доступа), введённой в Redis 6. Устаревшая директива requirepass в redis.conf задаёт единый пароль для всех клиентов, тогда как современная система ACL поддерживает нескольких пользователей с детальными правами на команды и ключи через ACL SETUSER. Каждый ACL-пользователь может быть ограничен определёнными командами (например, +get -set), шаблонами ключей (~cache:*) и каналами подключения, что делает Redis ACL подходящим для мультиарендных сред. Команда ACL LIST отображает всех настроенных пользователей, а ACL LOG фиксирует попытки несанкционированного доступа для целей аудита безопасности. Сочетание Redis AUTH с TLS-шифрованием гарантирует, что учётные данные никогда не передаются в открытом виде по сети.
Как это работает
AUTH и ACL через пакеты дистрибутива (apt/dnf), официальный tarball + make, Docker (redis:7-alpine) или managed cloud (Yandex Managed Redis, AWS ElastiCache). Конфиг в /etc/redis/redis.conf. Критичные параметры: maxmemory, maxmemory-policy (allkeys-lru — дефолт для кеша), appendonly + appendfsync для AOF persistence, save snapshots для RDB persistence, requirepass для auth, bind для прослушиваемых интерфейсов.
Когда применять
Docker — для dev; bare-metal/VM или managed cloud — для production. Всегда выставляйте maxmemory ниже всей RAM (оставьте запас для fork() при persistence). maxmemory-policy = allkeys-lru для чистого кеша, volatile-lru для микса (вытеснять только ключи с TTL), noeviction если потеря = баг (сами обрабатываете full-memory). Никогда не светите 6379 в интернет — bind только на localhost или приватную сеть.
Типичные ошибки
Ловушки AUTH и ACL: дефолт bind 0.0.0.0 + без пароля (мгновенный компромисс — Redis-сканеры повсюду); пропущенный maxmemory на кеше (OOM kill); AOF appendfsync always (каждая запись = fsync; throughput падает в 100×); хост со swap (paging памяти хуже, чем drop, для in-memory БД).