Come usare Redis ACL

Come usare Redis ACL
L'elenco ACL o Access Control è una funzione di sicurezza in Redis che consente di limitare e controllare la connessione al server Redis. Ad esempio, è possibile specificare quali chiavi e comandi una connessione client può eseguire utilizzando la funzione ACL.

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:

  1. La prima parte è l'utente della parola chiave.
  2. Il prossimo è il nome utente dell'utente nell'elenco ACL
  3. La terza parte è la parola chiave "on", che definisce le chiavi di accesso dell'utente.
  4. La quarta parte è la password hash in formato Sha256. Se non è impostata alcuna password, il valore è impostato su NOPASS
  5. Ultimo ma non meno importante è l'elenco delle chiavi a cui l'utente può accedere. Nel nostro caso, sono tutte le chiavi, quindi (~*).
  6. Infine, sono i comandi che l'utente può eseguire. Nel nostro esempio, sono tutti i comandi.

Regole ACL

Redis ha un ampio elenco di regole ACL che puoi utilizzare. Innanzitutto, tuttavia, elenchiamo alcuni essenziali.

  1. ON - Questo consente all'utente specificato. Pertanto, i clienti sono autorizzati ad autenticare con questo nome utente e password.
  2. Off: disabilita l'utente specificato. Nessun client può accedere all'auth con quel nome utente o password.
  3. + - Aggiunge un comando all'elenco dei comandi che un utente può eseguire. Ogni comando è separato con un tubo. Ad esempio, se l'utente può eseguire set e ottenere, possiamo fare +imposta | ottieni
  4. - - Rimuove un comando dall'elenco dei comandi consentiti. Allo stesso modo, separare ogni comando con un tubo. Esempio -
  5. @All o AllCommands - consente all'utente di eseguire tutti i comandi sul server.
  6. ~ - Aggiunge uno schema al tipo di chiavi a cui un utente può accedere. Ad esempio, ~* specifica tutte le chiavi.
  7. > - Aggiunge la password specificata all'elenco delle password che l'utente può autenticare.
  8. < - Opposite of above.
  9. ResetPass -delete L'elenco delle password consentite.
  10. NOPASS - Lascia che l'utente accedi senza password.

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 Genpass
"1AC9687481067647AD39A959AB90F172D9C25EA7265CACDF06C711257125F18B"

Il 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.