Jak używać Redis ACL

Jak używać Redis ACL
ACL lub Lista kontroli dostępu to funkcja bezpieczeństwa w Redis, która umożliwia ograniczenie i kontrolowanie połączenia z serwerem Redis. Na przykład możesz określić, jakie klucze i polecenia połączenia klienta może wykonać za pomocą funkcji ACL.

W tym samouczku zbadamy, jak używać funkcji ACL w Redis, aby zwiększyć bezpieczeństwo serwera Redis.

Jak to działa?

Zaczynasz od zdefiniowania użytkowników w ACL. Gdy klient połączy się z CLI Redis, musi uwierzytelnić za pomocą nazwy użytkownika i hasła określonego na liście kontroli dostępu.

Po pomyślnym uwierzytelnianiu Redis kojarzy to połączenie z użytkownikiem i przypisuje zdefiniowaną zgodę na to połączenie.

Na przykład, jeśli klient uwierzytelni się z użytkownikiem z uprawnieniem tylko do widoku, połączenie odziedziczy uprawnienia tego użytkownika.

Uwaga: Funkcja ACL jest dostępna tylko w Redis 6.0 i powyżej.

Polecenie Redis Auth

W nowszej wersji Redis używamy polecenia Auth, a następnie nazwy użytkownika i hasła.

Jeśli tylko hasło jest dostarczane, Redis automatycznie uwierzytelni się jako domyślny użytkownik.

Redis konfiguruj ACL

Redis jest dostarczany z domyślnym użytkownikiem, zwanym domyślnym w ACL. Możesz to wyświetlić za pomocą polecenia listy ACL:

127.0.0.1: 6379> lista ACL

1) „użytkownik domyślny NA #5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8 ~* +@@Wszystko"

Wyjście polecenia listy ACL jest zgodne z określonym wzorem. Rozbijmy to:

  1. Pierwsza część jest użytkownikiem słowa kluczowego.
  2. Następnie jest nazwa użytkownika na liście ACL
  3. Trzecia część to słowo kluczowe „ON”, które określa klucze dostępu użytkownika.
  4. Czwarta część to hasło osadzone w formacie SHA256. Jeśli nie jest ustawione hasło, wartość jest ustawiona na Nopass
  5. Ostatnia, ale nie przynajmniej listy kluczy, do których użytkownik może uzyskać dostęp. W naszym przypadku są to wszystkie klucze, stąd (~*).
  6. Wreszcie, są polecenia, które użytkownik może uruchomić. W naszym przykładzie to wszystkie polecenia.

Zasady ACL

Redis ma obszerną listę reguł ACL, których możesz użyć. Najpierw jednak wymienimy niektóre niezbędne.

  1. ON - To umożliwia określonego użytkownika. Stąd klienci mogą autoryzować tę nazwę użytkownika i hasło.
  2. Off - wyłącza określonego użytkownika. Żaden klient nie może uzyskać dostępu do autoryzacji z tą nazwą użytkownika lub hasła.
  3. + - Dodaje polecenie do listy poleceń, które użytkownik może uruchomić. Każde polecenie jest oddzielone rury. Na przykład, jeśli użytkownik może uruchomić ustawiony i uzyskanie, możemy zrobić +ustaw | Pobierz
  4. - - Usuwa polecenie z listy dozwolonych poleceń. Podobnie oddzień każde polecenie rurą. Przykład -
  5. @All lub AllCommands - umożliwia użytkownik uruchamianie wszystkich poleceń na serwerze.
  6. ~ - Dodaje wzór do typu kluczy, do którego użytkownik może uzyskać. Na przykład ~* Określa wszystkie klucze.
  7. > - Dodaje określone hasło do listy haseł, które użytkownik może uwierzytelnić.
  8. < - Opposite of above.
  9. RESETPASS -DELETE Lista dozwolonych haseł.
  10. NOPASS - Niech użytkownik zaloguj się bez hasła.

Redis konfiguruj użytkowników ACL

Aby dodać użytkownika do listy ACL, użyj polecenia ACL Setuser. Polecenie przyjmuje nazwę użytkownika i listę reguł, które mają zastosowanie do określonego użytkownika.

Przykładem jest to, jak pokazano poniżej:

127.0.0.1: 6379> ACL Setuser Linuxhint
OK

Polecenie doda użytkownika do określonej nazwy użytkownika.

Możesz sprawdzić użytkowników na liście ACL jako:

127.0.0.1: 6379> lista ACL

1) „Domyślnie użytkownika na ~* +@all”

2) „Użytkownik Linuxhint Off -@all”

Zauważ, że użytkownik „Linuxhint” jest domyślnie wyłączony i może wykonywać żadne polecenia lub uzyskać dostęp do żadnych kluczy.

Redis utworzy nowego użytkownika z możliwymi najmniejszymi uprawnieniami.

Możemy uruchomić poniższe polecenie, aby włączyć użytkownik i ustawić hasło.

127.0.0.1: 6379> ACL SETUSER LINUXHINT ON> Hasło
OK

W powyższym poleceniu włączamy użytkownika, ustawiając wartość włączoną i dodając hasło jako hasło.

Aby dodać polecenia do użytkownika, możemy zrobić:

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

To powinno dodać kilka poleceń do użytkownika Linuxhint.

Jednak użytkownik nie może uzyskać dostępu do żadnego klucza. Możemy umożliwić użytkownikowi dostęp do wszystkich kluczy, jak pokazano w poniższym poleceniu:

127.0.0.1: 6379> ACL SETUSER LINUXHINT ~*
OK

Należy pamiętać, że nazwy użytkowników są wrażliwe.

Możemy teraz wymienić użytkowników w ACL jako:

1) „Domyślnie użytkownika na ~* +@all”

2) „Użytkownik Linuxhint on ~* -@all +SET | GET | DEL”

Redis opisz użytkownika

Aby uzyskać opisowe informacje użytkownika ACL, uruchom polecenie ACL Getuser, a następnie docelowa nazwa użytkownika.

127.0.0.1: 6379> ACL Getuser Linuxhint

1) „Flagi”

2) 1) „ON”

2) „Allkeys”

3) „Hasła”

4) 1) „5E884898DA28047151D0E56F8DC6292773603D0D6AABDD62A11EF721D1542D8” ”

5) „Polecenia”

6) „-@All +Set | Get | Del”

7) „Klucze”

8) 1) „*”

ACL generuje hasło

Jeśli nie chcesz generować hasła dla swojego użytkownika, możesz użyć polecenia ACL GenPass.

Przykładem jest jak pokazano:

127.0.0.1: 6379> ACL GenPass
„1AC9687481067647AD39A959AB90F172D9C25EA7265CACDF06C711257125F18B”

Polecenie powyżej powinno zwrócić losowy hash hasła.

Wniosek

To był destylowany artykuł opisujący funkcję Redis ACL. Omówiliśmy sposób włączenia i używania ACL w Redis, dodawanie użytkowników, ustawianie reguł ACL itp.

Zdecydowanie zalecamy sprawdzenie dokumentacji, aby dowiedzieć się więcej.

Dziękujemy za przeczytanie, do zobaczenia następnym razem.