Hvordan bruke Redis ACL

Hvordan bruke Redis ACL
ACL eller Access Control List er en sikkerhetsfunksjon i Redis som lar deg begrense og kontrollere tilkoblingen til Redis -serveren. Du kan for eksempel spesifisere hvilke nøkler og kommandoer en klientforbindelse kan utføre ved hjelp av ACL -funksjonen.

I denne opplæringen vil vi utforske hvordan du bruker ACL -funksjoner i Redis for å forbedre sikkerheten til Redis -serveren.

Hvordan virker det?

Du starter med å definere brukere i ACL. Når en klient kobles til Redis CLI, må de autentisere ved hjelp av et brukernavn og passord som er spesifisert i tilgangskontrolllisten.

Etter vellykket autentisering knytter Redis den forbindelsen med brukeren og tildeler den definerte tillatelsen til den forbindelsen.

For eksempel, hvis en klient autentiserer med en bruker med bare tillatelse til visning, vil tilkoblingen arve den brukerens tillatelser.

Merk: ACL -funksjonen er bare tilgjengelig i Redis 6.0 og over.

Redis Auth Command

I den nyere versjonen av Redis bruker vi Auth -kommandoen etterfulgt av brukernavn og passord.

Hvis bare passordet leveres, vil Redis automatisk autentisere som standardbruker.

Redis konfigurer ACL

Redis kommer med en standardbruker, kalt standard i ACL. Du kan se dette ved hjelp av ACL -liste -kommandoen:

127.0.0.1: 6379> ACL -liste

1) "bruker misligholde #5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8 ~* +@alle

Utgangen fra ACL -listekommandoen følger et spesifikt mønster. La oss bryte det ned:

  1. Den første delen er søkeordbrukeren.
  2. Neste er brukernavnet til brukeren i ACL -listen
  3. Den tredje delen er nøkkelordet “ON”, som definerer brukerens tilgangsnøkler.
  4. Den fjerde delen er passordet som hashes i SHA256 -format. Hvis ikke noe passord er angitt, er verdien satt til nopass
  5. Sist, men ikke minst, er listen over taster brukeren kan få tilgang til. I vårt tilfelle er det alle nøkler, derav (~*).
  6. Til slutt er kommandoene som brukeren kan kjøre. I vårt eksempel er det alle kommandoer.

ACL -regler

Redis har en omfattende liste over ACL -regler du kan bruke. Først la oss imidlertid liste ned noen essensielle.

  1. ON - Dette muliggjør den spesifiserte brukeren. Derfor har klienter lov til å autorisere med dette brukernavnet og passordet.
  2. Av - Deaktiverer den spesifiserte brukeren. Ingen klienter har tilgang til autoritet med det brukernavnet eller passordet.
  3. + - Legger til en kommando i listen over kommandoer en bruker kan kjøre. Hver kommando skilles med et rør. For eksempel, hvis brukeren kan kjøre satt og få, kan vi gjøre +sett | få
  4. - - Fjerner en kommando fra listen over tillatte kommandoer. På samme måte, skill hver kommando med et rør. Eksempel -
  5. @all eller allcommands - lar brukeren kjøre alle kommandoer på serveren.
  6. ~ - Legger til et mønster i typen taster en bruker kan få tilgang til. For eksempel spesifiserer ~* alle nøkler.
  7. > - Legger til det spesifiserte passordet til listen over passord brukeren kan autentisere.
  8. < - Opposite of above.
  9. Resetpass -Delete listen over tillatte passord.
  10. Nopass - La brukeren logge inn uten passord.

Redis konfigurerer ACL -brukere

For å legge til en bruker i ACL -listen, bruk ACL Setuser -kommandoen. Kommandoen tar brukernavnet og listen over regler for å gjelde for den spesifiserte brukeren.

Et eksempel er som vist nedenfor:

127.0.0.1: 6379> ACL Setuser Linuxhint
Ok

Kommandoen vil legge til en bruker med det spesifiserte brukernavnet.

Du kan sjekke brukerne i ACL -listen som:

127.0.0.1: 6379> ACL -liste

1) “Bruker standard på ~* +@alle”

2) “Bruker Linuxhint Off -@alle”

Merk at "Linuxhint" -brukeren er deaktivert som standard og kan utføre ingen kommandoer eller få tilgang til noen nøkler.

Redis vil opprette en ny bruker med minst mulig privilegier.

Vi kan kjøre kommandoen nedenfor for å aktivere brukeren og angi et passord.

127.0.0.1: 6379> ACL SetUser Linuxhint på> Passord
Ok

I kommandoen over aktiverer vi brukeren ved å angi verdien til på og legge til et passord som> passord.

For å legge til kommandoer til brukeren, kan vi gjøre:

127.0.0.1: 6379> ACL Setuser Linuxhint +Set | Get | Del
Ok

Dette bør legge til noen få kommandoer til Linuxhint -brukeren.

Brukeren har imidlertid ikke tilgang til noen nøkkel. Vi kan gjøre det mulig for brukeren å få tilgang til alle nøkler som vist i kommandoen nedenfor:

127.0.0.1: 6379> ACL Setuser Linuxhint ~*
Ok

Husk at brukernavnene er saksfølsomme.

Vi kan nå liste brukerne i ACL som:

1) “Bruker standard på ~* +@alle”

2) “Bruker linuxhint på ~* -@all +set | få | del”

Redis beskriver brukeren

For å få beskrivende informasjon om en ACL -bruker, kjør kommandoen ACL -getUser etterfulgt av målbrukernavnet.

127.0.0.1: 6379> ACL GetUser Linuxhint

1) "Flagg"

2) 1) “On”

2) “Allkeys”

3) “Passord”

4) 1) “5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8”

5) “Kommandoer”

6) “-@alle +sett | få | del”

7) “Keys”

8) 1) “*”

ACL genererer passord

Hvis du ikke vil generere et passord for brukeren din, kan du bruke ACL Genpass -kommandoen.

Et eksempel er som vist:

127.0.0.1: 6379> ACL Genpass
"1AC9687481067647AD39A959AB90F172D9C25EA7265CACDF06C711257125F18B"

Kommandoen ovenfor bør returnere et tilfeldig passord -hasj.

Konklusjon

Dette var en destillert artikkel som beskrev Redis ACL -funksjonen. Vi dekket hvordan vi kan aktivere og bruke ACL i Redis, legge til brukere, angi ACL -regler osv.

Vi anbefaler på det sterkeste å sjekke dokumentasjonen for å lære mer.

Takk for at du leser, vi sees neste gang.