ACL-Benutzer anlegen, Berechtigungen testen und dauerhaft speichern
RedisSicherheitBefehl
# 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 SAVEWas es tut
Legt Anwendungs- und Monitoring-Benutzer an, die nach Key-Präfix, Pub/Sub-Kanal und Befehlskategorie berechtigt sind; testet mit DRYRUN, ob ein Befehl erlaubt ist, ohne ihn auszuführen, und schreibt die ACLs auf die Platte.
Wann einsetzen
Beim Umstieg von einem gemeinsamen Passwort (requirepass) auf Zugriff pro Benutzer, beim Isolieren von Anwendungen von den Keys der anderen oder beim Anlegen eines Nur-Lese-Kontos für ein Monitoring-Tool.
Vorsicht
Die Reihenfolge der Regeln zählt: resetchannels entfernt alle vorher angegebenen &channel-Regeln. -@dangerous blockiert auch Befehle wie KEYS, FLUSHALL, CONFIG und DEBUG; prüfe die von der Anwendung genutzten Befehle mit DRYRUN. Bleibt der Benutzer default mit nopass und +@all aktiv, bieten ACLs keinen Schutz; nach dem Anlegen eines Admin-Benutzers ACL SETUSER default off ausführen. Schlägt in redis-cli AUTH mit --user/--pass fehl, läuft die Verbindung als Benutzer default weiter und der Befehl wird trotzdem ausgeführt; nutze deshalb DRYRUN für Berechtigungstests.