Konfigurieren der rollenbasierten Zugriffssteuerung mit Datenzugriffsrichtlinie
Die Verwaltung des Zugriffs auf Ihre Azure Cache for Redis-Instanz ist wichtig, um sicherzustellen, dass die richtigen Benutzer Zugriff auf die richtigen Daten und Befehle haben. In Redis Version 6 wurde die Zugriffssteuerungsliste (Access Control List, ACL) eingeführt. ACL schränkt ein, welcher Benutzer welche Befehle ausführen und auf welche Schlüssel er zugreifen kann. Beispielsweise können Sie bestimmten Benutzern das Löschen von Schlüsseln im Cache mit dem DEL-Befehls verbieten.
Azure Cache for Redis integriert diese ACL-Funktionalität jetzt in Microsoft Entra ID, damit Sie Ihre Datenzugriffsrichtlinien für den Dienstprinzipal und die verwaltete Identität Ihrer Anwendung konfigurieren können.
Azure Cache for Redis bietet drei integrierte Zugriffsrichtlinien: Datenbesitzer, Datenmitwirkender und Datenleser. Wenn die integrierten Zugriffsrichtlinien Ihre Datenschutz- und Isolationsanforderungen nicht erfüllen, können Sie wie unter Konfigurieren einer benutzerdefinierten Datenzugriffsrichtlinie beschrieben eine eigene benutzerdefinierte Datenzugriffsrichtlinie erstellen und verwenden.
Umfang der Verfügbarkeit
Tier | Basic, Standard und Premium | Enterprise, Enterprise Flash |
---|---|---|
Verfügbarkeit | Ja | Nein |
Voraussetzungen und Einschränkungen
- Redis-ACL- und Datenzugriffsrichtlinien werden auf Azure Cache for Redis-Instanzen, auf denen Redis Version 4 ausgeführt wird, nicht unterstützt.
- Die Microsoft Entra-Authentifizierung und -Autorisierung werden nur für SSL-Verbindungen unterstützt.
- Einige Redis-Befehle sind gesperrt.
Berechtigungen für Ihre Datenzugriffsrichtlinie
Wie in der Redis-Zugriffssteuerungsliste dokumentiert, ermöglicht ACL in Redis Version 6.0 das Konfigurieren von Zugriffsberechtigungen für drei Bereiche:
Befehlskategorien
Redis hat Gruppierungen von Befehlen erstellt, z. B. administrative Befehle, gefährliche Befehle usw., damit sie Berechtigungen für Befehlsgruppen einfacher festlegen können.
- Verwenden Sie
+@commandcategory
um eine Befehlskategorie zuzulassen. - Verwenden Sie
-@commandcategory
um eine Befehlskategorie nicht zuzulassen.
Diese Befehle sind weiterhin gesperrt. Die folgenden Gruppen sind nützliche Befehlskategorien, die von Redis unterstützt werden. Weitere Informationen zu Befehlskategorien finden Sie in der vollständigen Liste unter der Überschrift Befehlskategorien.
admin
- Administrative Befehle. Normale Anwendungen müssen diese niemals verwenden, einschließlich
MONITOR
,SHUTDOWN
und andere.
- Administrative Befehle. Normale Anwendungen müssen diese niemals verwenden, einschließlich
dangerous
- Potenziell gefährliche Befehle. Jeder sollte aus verschiedenen Gründen mit Vorsicht betrachtet werden, einschließlich
FLUSHALL
,RESTORE
,SORT
,KEYS
,CLIENT
,DEBUG
,INFO
,CONFIG
und andere.
- Potenziell gefährliche Befehle. Jeder sollte aus verschiedenen Gründen mit Vorsicht betrachtet werden, einschließlich
keyspace
- Schreiben oder Lesen aus Schlüsseln, Datenbanken oder deren Metadaten auf typunabhängige Weise, einschließlich
DEL
,RESTORE
,DUMP
,RENAME
,EXISTS
,DBSIZE
,KEYS
,EXPIRE
,TTL
,FLUSHALL
und mehr. Befehle, die den Keyspace, den Schlüssel oder die Metadaten ändern können, verfügen ebenfalls über die Schreibkategorie. Befehle, die nur den Keyspace, den Schlüssel oder die Metadaten lesen, verfügen über die Lesekategorie.
- Schreiben oder Lesen aus Schlüsseln, Datenbanken oder deren Metadaten auf typunabhängige Weise, einschließlich
pubsub
- PubSub-bezogene Befehle.
read
- Lesen aus Schlüsseln, Werten oder Metadaten. Befehle, die nicht mit Schlüsseln interagieren, haben weder Lese- noch Schreibzugriff.
set
- Datentyp: verwandte Mengen.
sortedset
- Datentyp: verwandte sortierte Mengen.
stream
- Datentyp: verwandte Datenströme.
string
- Datentyp: verwandte Zeichenfolgen.
write
- Schreiben in Schlüssel (Werte oder Metadaten).
Befehle
Mit Befehlen können Sie steuern, welche spezifischen Befehle von einem bestimmten Redis-Benutzer ausgeführt werden können.
- Verwenden Sie
+command
, um einen Befehl zuzulassen. - Verwenden Sie
-command
um einen Befehl nicht zuzulassen.
Tasten
Mit Schlüsseln können Sie den Zugriff auf bestimmte Schlüssel oder Schlüsselgruppen steuern, die im Cache gespeichert sind.
Verwenden Sie
~<pattern>
, um ein Muster für Schlüssel bereitzustellen.Verwenden Sie
~*
oderallkeys
, um anzugeben, dass die Befehlskategorieberechtigungen für alle Schlüssel in der Cache-Instanz gelten.
Angeben von Berechtigungen
Um Berechtigungen anzugeben, müssen Sie eine Zeichenfolge erstellen, die als benutzerdefinierte Zugriffsrichtlinie gespeichert werden soll, und diese dann Ihrem Azure Cache for Redis-Benutzer zuweisen.
Die folgende Liste enthält einige Beispiele für Berechtigungszeichenfolgen für verschiedene Szenarien.
Zulassen, dass die Anwendung alle Befehle auf allen Schlüsseln ausführt
Berechtigungszeichenfolge:
+@all allkeys
Zulassen, dass die Anwendung nur Lesebefehle ausführt
Berechtigungszeichenfolge:
+@read ~*
Lassen Sie zu, dass die Anwendung Befehle der KategorieLesen ausführt, und legen Sie den Befehl für den Schlüssel mit dem Präfix
Az
fest.Berechtigungszeichenfolge:
+@read +set ~Az*
Konfigurieren einer benutzerdefinierten Datenzugriffsrichtlinie für Ihre Anwendung
Wählen Sie im Azure-Portal die Azure Cache for Redis-Instanz aus, für die Sie die tokenbasierte Authentifizierung von Microsoft Entra konfigurieren möchten.
Wählen Sie im Menü „Ressource“ die Option Datenzugriffskonfiguration aus.
Wählen Sie Hinzufügen und dann Neue Zugriffsrichtlinie aus.
Geben Sie einen Namen für Ihre Zugriffsrichtlinie an.
Konfigurieren Sie Berechtigungen gemäß Ihren Anforderungen.
Wenn Sie der Zugriffsrichtlinie mithilfe von Microsoft Entra ID einen Benutzer hinzufügen möchten, müssen Sie zuerst Microsoft Entra ID aktivieren, indem Sie im Menü „Ressource“ die Option Authentifizierung auswählen.
Wählen Sie Microsoft Entra-Authentifizierung aktivieren als die Registerkarte im Arbeitsbereich aus.
Wenn dies noch nicht der Fall ist, aktivieren Sie das Kontrollkästchen Microsoft Entra-Authentifizierung aktivieren, und wählen Sie OK aus. Wählen Sie anschließend Speichern aus.
In einem Popupdialogfeld wird angezeigt, in dem Sie gefragt werden, ob Sie Ihre Konfiguration aktualisieren möchten, und Sie werden informiert, dass es mehrere Minuten dauert. Wählen Sie Ja aus.
Wichtig
Sobald der Aktivierungsvorgang abgeschlossen ist, werden die Knoten in Ihrer Cache-Instanz neu gestartet, um die neue Konfiguration zu laden. Es wird empfohlen, diesen Vorgang während der Wartung oder außerhalb Ihrer Spitzenarbeitszeiten durchzuführen. Dieser Vorgang kann bis zu 30 Minuten in Anspruch nehmen.
Konfigurieren des Redis-Clients für die Verwendung von Microsoft Entra ID
Nachdem Sie die Redis-Benutzer- und Datenzugriffsrichtlinie für die Konfiguration der rollenbasierten Zugriffssteuerung konfiguriert haben, müssen Sie Ihren Clientworkflow aktualisieren, um die Authentifizierung mithilfe eines bestimmten Benutzers/Kennworts zu unterstützen. Informationen zum Konfigurieren Ihrer Clientanwendung, um eine Verbindung mit Ihrer Cache-Instanz als ein bestimmter Redis-Benutzer herzustellen, finden Sie unter Konfigurieren Ihres Redis-Clients für die Verwendung von Microsoft Entra.