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.
  • Redis-ACL- und Datenzugriffsrichtlinien werden auf Azure Cache for Redis-Instanzen, die von Cloud Services abhängen, 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.
  • 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.
  • 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, FLUSHALLund 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.
  • 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 ~* oder allkeys, 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

  1. 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.

  2. Wählen Sie im Menü „Ressource“ die Option Datenzugriffskonfiguration aus.

    Screenshot des Menüs „Ressource“ mit hervorgehobener Zugriffssteuerungskonfiguration.

  3. Wählen Sie Hinzufügen und dann Neue Zugriffsrichtlinie aus.

    Screenshot eines Formulars zum Hinzufügen einer benutzerdefinierten Zugriffsrichtlinie.

  4. Geben Sie einen Namen für Ihre Zugriffsrichtlinie an.

  5. Konfigurieren Sie Berechtigungen gemäß Ihren Anforderungen.

  6. 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.

  7. Wählen Sie Microsoft Entra-Authentifizierung aktivieren als die Registerkarte im Arbeitsbereich aus.

  8. 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.

    Screenshot der Microsoft Entra ID-Zugriffsautorisierung.

  9. 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.

Nächste Schritte