Redis ACL Listen

von

Redis ACL-Listen: Effektive Zugriffskontrolle


Redis ist eine leistungsstarke Open-Source-Datenbank, die für ihre Geschwindigkeit und Flexibilität bekannt ist. Da Redis häufig in geschäftskritischen Anwendungen eingesetzt wird, ist es von entscheidender Bedeutung, den Zugriff auf die Datenbank zu kontrollieren und unbefugte Aktivitäten zu verhindern. Eine wirksame Methode zur Zugriffskontrolle in Redis besteht in der Verwendung von ACL-Listen (Access Control Lists). In diesem Blogbeitrag werden wir uns ausführlich mit Redis ACL-Listen befassen und ihre Funktionsweise anhand von Beispielen erläutern.

Grundlagen von Redis ACL

Redis ACL ermöglicht die Feinsteuerung des Zugriffs auf Datenbanken, Befehle und Schlüssel. Mit Redis 6 wurde die ACL-Funktionalität eingeführt, die es ermöglicht, Benutzer, Gruppen und Berechtigungen zu definieren, auf effektive Weise. Durch die Verwendung von ACL-Listen können Sie den Zugriff auf Redis-Datenbanken auf individueller Ebene steuern und sicherstellen, dass nur autorisierte Benutzer auf die Daten zugreifen und Modifikationen vornehmen können.

Beispiel 1: Erstellen und Konfigurieren eines Benutzers

Um zu demonstrieren, wie ACL-Listen in Redis funktionieren, betrachten wir ein einfaches Beispiel zur Erstellung und Konfiguration eines Benutzers. Wir verwenden den Redis-Befehlszeilenclient, um die Aktionen auszuführen.

1. Starten Sie den Redis-Befehlszeilenclient:

redis-cli

2. Erstellen Sie einen neuen Benutzer mit dem Namen „user1“ und einem Passwort:

ACL SETUSER user1 on >mypass123 ~* +@all

In diesem Beispiel haben wir einen Benutzer namens „user1“ erstellt und ihm ein Passwort „mypass123“ zugewiesen. Die ACL-Konfiguration on >mypass123 legt das Passwort für den Benutzer fest. Der Teil ~* gibt die Benutzerrechte an, wobei ~ für alle Befehle und * für alle Schlüssel steht. Die Berechtigung +@all gewährt dem Benutzer Zugriff auf alle Redis-Befehle.

3. Authentifizieren Sie sich mit dem erstellten Benutzer:

AUTH mypass123

Hier authentifizieren wir uns mit dem Passwort des Benutzers „user1“.

Nach diesen Schritten haben wir einen Benutzer „user1“ erstellt und uns mit diesem Benutzer authentifiziert. Nun können wir die Redis-Befehle ausführen, für die der Benutzer die Berechtigung hat.

Beispiel 2: Einschränkung des Zugriffs auf Befehle und Schlüssel

In Redis können ACL-Regeln verwendet werden, um den Zugriff auf bestimmte Befehle und Schlüssel einzuschränken. Hier ist ein Beispiel zur Einschränkung des Zugriffs eines Benutzers auf bestimmte Befehle und Schlüssel.

1. Erstellen Sie einen Benutzer mit eingeschränktem Zugriff:

ACL SETUSER user2 on >mypass456 ~get,set -*set*

In diesem Beispiel haben wir einen Benutzer „user2“ erstellt und ihm ein Passwort zugewiesen. Die ACL-Konfiguration ~get,set -*set* legt fest, dass der Benutzer nur Lese- und Schreibbefehle (get und set) ausführen kann, jedoch nur auf Schlüssel, die den Begriff „set“ nicht enthalten.

2. Authentifizieren Sie sich mit dem erstellten Benutzer:

AUTH mypass456

Hier authentifizieren wir uns mit dem Passwort des Benutzers „user2“.

Nach der Authentifizierung können wir Befehle wie GET und SET ausführen, jedoch nur auf Schlüsseln, die nicht den Begriff „set“ enthalten.

Beispiel 3: Erstellung und Konfiguration eines Benutzers in der users.acl-Datei

Um zu demonstrieren, wie ACL-Listen in Redis funktionieren, betrachten wir ein einfaches Beispiel zur Erstellung und Konfiguration eines Benutzers. Wir verwenden den Redis-Befehlszeilenclient, um die Aktionen auszuführen.

1. Erstellung einer users.acl-Datei:

Sie können eine users.acl-Datei erstellen und darin die Benutzer und ihre Berechtigungen definieren. Hier ist ein Beispiel für den Inhalt der Datei:

user1 on >mypass123 ~* +@all
user2 on >mypass456 ~get,set -*set*

In diesem Beispiel werden zwei Benutzer, „user1“ und „user2“, mit ihren jeweiligen Berechtigungen definiert.

2. Konfiguration der Redis-Konfigurationsdatei:

Öffnen Sie die Redis-Konfigurationsdatei (redis.conf) und suchen Sie nach der Konfiguration aclfile. Falls diese nicht vorhanden ist, fügen Sie sie hinzu. Hier ist ein Beispiel, wie die Konfiguration aussehen könnte:

aclfile /path/to/users.acl

Ersetzen Sie „/path/to/users.acl“ durch den tatsächlichen Pfad zu Ihrer erstellten users.acl-Datei. Speichern Sie die Konfigurationsdatei und starten Sie Redis neu, damit die Änderungen wirksam werden.

3. Verwendung der Benutzer aus der users.acl-Datei:

Nachdem Sie die Benutzer in der users.acl-Datei definiert und die Redis-Konfiguration aktualisiert haben, können Sie sich mit den Benutzern authentifizieren und auf die Redis-Datenbank zugreifen.

Zum Beispiel können Sie sich mit „user1“ authentifizieren:

redis-cli --user user1 --pass mypass123

Oder mit „user2“:

redis-cli --user user2 --pass mypass456

Durch die Verwendung einer users.acl-Datei können Sie die Benutzer und ihre Berechtigungen zentral verwalten. Bei Bedarf können Sie neue Benutzer hinzufügen oder bestehende Benutzer bearbeiten, ohne die Redis-Konfiguration zu ändern. Dies bietet Flexibilität und eine einfachere Verwaltung der Zugriffskontrolle in Redis.

Wichtiger Tipp: Deaktivieren Sie den Standardbenutzer in Redis

Bei der Konfiguration der Zugriffskontrolle in Redis ist es ratsam, den Standardbenutzer zu deaktivieren. Standardmäßig gibt es in Redis einen Benutzer namens „default“, der Zugriff auf alle Befehle und Schlüssel hat. Das Deaktivieren dieses Benutzers ist ein wichtiger Schritt, um die Sicherheit Ihrer Redis-Datenbank zu erhöhen. Hier sind die Gründe und Schritte, um den Standardbenutzer zu deaktivieren:

Warum den Standardbenutzer deaktivieren?

  1. Reduzierung des Angriffsvektors: Durch die Deaktivierung des Standardbenutzers reduzieren Sie den potenziellen Angriffsvektor für potenzielle Angreifer. Wenn der Standardbenutzer aktiv bleibt, könnte ein Angreifer versuchen, ihn auszunutzen, um unerwünschte Aktionen durchzuführen.
  2. Feinere Zugriffskontrolle: Durch die Deaktivierung des Standardbenutzers können Sie sicherstellen, dass nur die spezifisch definierten Benutzer und deren Berechtigungen Zugriff auf Ihre Redis-Datenbank haben. Dies ermöglicht eine präzisere und granularere Zugriffskontrolle.

Wie den Standardbenutzer deaktivieren?

  1. Öffnen Sie die Redis-Konfigurationsdatei (redis.conf) in einem Texteditor.
  2. Suchen Sie nach der Zeile, die den Standardbenutzer definiert. Es sollte eine Zeile ähnlich wie diese aussehen: user default on nopass ~* +@all.
  3. Ändern Sie diese Zeile, indem Sie das Wort „default“ durch einen anderen Benutzernamen ersetzen, den Sie zuvor definiert haben. Zum Beispiel: user default off.
  4. Speichern Sie die Änderungen an der Konfigurationsdatei und starten Sie Redis neu, damit die Änderungen wirksam werden.

Durch diese Änderung haben Sie den Standardbenutzer deaktiviert und stattdessen einen eigenen Benutzernamen festgelegt. Dies stellt sicher, dass nur die explizit definierten Benutzer Zugriff auf Ihre Redis-Datenbank haben und unerwünschte Zugriffe vermieden werden.

Indem Sie den Standardbenutzer deaktivieren, verbessern Sie die Sicherheit Ihrer Redis-Datenbank erheblich. Es ist ein einfacher, aber wirkungsvoller Schritt, um potenzielle Angriffsvektoren zu reduzieren und die Zugriffskontrolle zu stärken. Nehmen Sie sich die Zeit, diesen Tipp umzusetzen, um Ihre Redis-Instanz besser abzusichern.

Fazit

Die Verwendung von ACL-Listen in Redis ermöglicht eine granulare Zugriffskontrolle auf Datenbanken, Befehle und Schlüssel. Sie können Benutzer und Gruppen erstellen, individuelle Berechtigungen festlegen und den Zugriff auf spezifische Operationen einschränken. Dadurch wird die Sicherheit Ihrer Redis-Datenbank erhöht und das Risiko unbefugter Zugriffe minimiert. Indem Sie die Prinzipien der Redis ACL-Listen verstehen und anwenden, können Sie Ihre Datenbank effektiv schützen und gleichzeitig die gewünschte Funktionalität aufrechterhalten.

Pfeil links

zur vorherigen Seite zurückkehren