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:
Zasady ACL
Redis ma obszerną listę reguł ACL, których możesz użyć. Najpierw jednak wymienimy niektóre niezbędne.
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 GenPassPolecenie 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.