Înainte de Redis 6, securitatea la nivel de instanță era extrem de rudimentară: exista o singură parolă globală configurată prin requirepass. Odată autentificat, orice client deținea drepturi depline de administrator și putea executa comenzi distructive fatale precum FLUSHALL sau CONFIG SET.
Sistemul Access Control Lists (ACL) aduce securitate de nivel enterprise: permite crearea de utilizatori distincți, asociați cu parole unice, restricționați la anumite categorii de comenzi și limitate la prefixe specifice de chei (Key Pattern Matching).
# 1. Creăm utilizatorul 'worker_backend' activat (on), cu parolă dedicată (>ParolaSecreta42!):
# Reguli aplicate:
# ~cache:* -> Permite accesul EXCLUSIV pe chei care încep cu 'cache:'
# +@read +@write -> Permite comenzile standard de citire și scriere (GET, SET, DEL, HGET etc.)
# -@dangerous -> Interzice toate comenzile periculoase (FLUSHALL, KEYS, SHUTDOWN, DEBUG)
# -@admin -> Interzice comenzile administrative (CONFIG, MONITOR, ACL)
ACL SETUSER worker_backend on >ParolaSecreta42! ~cache:* +@read +@write -@dangerous -@admin
# 2. Testarea autentificării din client:
AUTH worker_backend ParolaSecreta42!
# 3. Operațiune permisă:
SET cache:sesiune_utilizator "token_abc"
# Răspuns: OK
# 4. Operațiune respinsă la nivel de prefix de cheie:
SET date_financiare:sold 50000
# Răspuns de eroare:
# (error) NOPERM this user has no permissions to access the 'date_financiare:sold' key
# 5. Operațiune respinsă la nivel de comandă:
FLUSHALL
# Răspuns de eroare:
# (error) NOPERM this user has no permissions to run the 'flushall' command
Monitorizarea Tentativelor Neautorizate cu ACL LOG
Dacă un atacator încearcă să acceseze chei nepermise sau să execute comenzi restricționate, Redis înregistrează automat incidentul în jurnalul de securitate:
ACL LOG 5
# Afișează ultimele 5 încălcări de securitate: adresa IP sursă, utilizatorul, comanda apelată și cheia accesată nepermis.
Întrebări & Exemple de Cod:
Securitate Enterprise cu Liste de Control al Accesului (ACL) în Redis: ACL SETUSER și Permisiuni GranulareAi o nelămurire despre utilizarea comenzii
Securitate Enterprise cu Liste de Control al Accesului (ACL) în Redis: ACL SETUSER și Permisiuni Granularesau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.