In questo tutorial, esploreremo come utilizzare le funzionalità ACL in Redis per migliorare la sicurezza del server Redis.
Come funziona?
Inizi definendo gli utenti nell'ACL. Una volta che un client si collega alla CLI Redis, deve autenticare utilizzando un nome utente e una password specificati nell'elenco di controllo degli accessi.
Dopo un'autenticazione riuscita, Redis associa tale connessione con l'utente e assegna l'autorizzazione definita a tale connessione.
Ad esempio, se un client si autentica con un utente con autorizzazione di sola vista, la connessione erediterà le autorizzazioni dell'utente.
Nota: la funzione ACL è disponibile solo in Redis 6.0 e sopra.
Comando di autenticazione Redis
Nella versione più recente di Redis, utilizziamo il comando Auth seguito dal nome utente e dalla password.
Se viene fornita solo la password, Redis autenticherà automaticamente come utente predefinito.
Redis Configura ACL
Redis viene fornito con un utente predefinito, chiamato impostazione predefinita nell'ACL. Puoi visualizzarlo usando il comando Elenco ACL:
127.0.0.1: 6379> Elenco ACL
1) "utente predefinito SU #5e884898da28047151d0e56f8dc6292773603d0d0d6aabbdd62a11ef721d1542d8 ~* +@Tutto"
L'output del comando Elenco ACL segue uno schema specifico. Rompilo:
Regole ACL
Redis ha un ampio elenco di regole ACL che puoi utilizzare. Innanzitutto, tuttavia, elenchiamo alcuni essenziali.
Redis Configurare gli utenti ACL
Per aggiungere un utente all'elenco ACL, utilizzare il comando ACL SetuSer. Il comando prende il nome utente e l'elenco delle regole da applicare all'utente specificato.
Un esempio è come mostrato di seguito:
127.0.0.1: 6379> ACL setuser linuxhint
OK
Il comando aggiungerà un utente con il nome utente specificato.
Puoi controllare gli utenti nell'elenco ACL come:
127.0.0.1: 6379> Elenco ACL
1) "Predefinito dell'utente su ~* +@all"
2) "Utente LinuxHint Off -@All"
Si noti che l'utente "LinuxHint" è disabilitato per impostazione predefinita e non può eseguire comandi o accedere a qualsiasi chiavi.
Redis creerà un nuovo utente con i minimi privilegi possibili.
Possiamo eseguire il comando di seguito per abilitare l'utente e impostare una password.
127.0.0.1: 6379> ACL setuser linuxhint> password
OK
Nel comando sopra, abilitiamo l'utente impostando il valore su e aggiungendo una password come> password.
Per aggiungere comandi all'utente, possiamo fare:
127.0.0.1: 6379> ACL setuser linuxhint +set | get | DEL
OK
Questo dovrebbe aggiungere alcuni comandi all'utente Linuxhint.
Tuttavia, l'utente non può accedere a nessun tasto. Possiamo abilitare all'utente di accedere a tutte le chiavi come mostrato nel comando seguente:
127.0.0.1: 6379> ACL setuser linuxhint ~*
OK
Tieni presente che i nomi utente sono sensibili al caso.
Ora possiamo elencare gli utenti in ACL come:
1) "Predefinito dell'utente su ~* +@all"
2) "Utente Linuxhint su ~* -@all +set | get | del"
Redis Descrivi l'utente
Per ottenere informazioni descrittive di un utente ACL, eseguire il comando ACL getuser seguito dal nome utente target.
127.0.0.1: 6379> ACL GETUSER LINUXHINT
1) "Flag"
2) 1) "on"
2) "Allkeys"
3) "password"
4) 1) “5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8"
5) "Comandi"
6) “-@All +Set | Ottieni | Del”
7) "Chiavi"
8) 1) "*"
ACL Genera password
Se non si desidera generare una password per il tuo utente, è possibile utilizzare il comando ACL GenPass.
Un esempio è come mostrato:
127.0.0.1: 6379> ACL GenpassIl comando sopra dovrebbe restituire un hash a password casuale.
Conclusione
Questo era un articolo distillato che descriveva la funzione Redis ACL. Abbiamo trattato come abilitare e utilizzare ACL in Redis, aggiungere utenti, impostare le regole ACL, ecc.
Consigliamo vivamente di controllare la documentazione per saperne di più.
Grazie per aver letto, ci vediamo la prossima volta.