Parametrisierte sichere Ansichten sind eine Erweiterung von sicheren PostgreSQL-Ansichten, mit denen Sie anwendungsspezifische benannte Ansichtsparameter in Ansichtsdefinitionen verwenden können. Diese Funktion bietet eine Schnittstelle, die eine Abfrage und Werte für die benannten Parameter akzeptiert. Die Schnittstelle führt die Abfrage mit diesen Werten aus, die während der gesamten Ausführung der Abfrage verwendet werden.
Hier ist ein Beispiel für eine parametrisierte sichere Ansicht:
CREATE VIEW secure_checked_items WITH (security_barrier) AS
SELECT bag_id, timestamp, location
FROM checked_items t
WHERE customer_id = $@app_end_userid;
Sie können parametrisierte sichere Ansichten mit der gespeicherten Prozedur execute_parameterized_query oder mit der Anweisung EXECUTE .. WITH VIEW PARAMETERS abfragen.
Weitere Informationen finden Sie unter Sicherheit von Anwendungsdaten mit
parametrisierten sicheren Ansichten in AlloyDB Omni verwalten.
Vorteile von parametrisierten sicheren Ansichten
Parametrisierte sichere Ansichten eignen sich gut für die Verwaltung der Datensicherheit auf Datenbankebene, insbesondere bei Ad-hoc-Abfragen aus nicht vertrauenswürdigen Quellen, z. B. solchen, die aus natürlicher Sprache übersetzt wurden. Diese Ansichten bieten eine flexible Möglichkeit, eine detaillierte Zugriffssteuerung zu implementieren.
Stellen Sie sich beispielsweise eine Anwendung vor, mit der das aufgegebene Gepäck von Kunden verfolgt wird. Ein Kunde mit der Nutzer-ID 12345 fragt: „Wo ist mein Koffer?“ In diesem Szenario sorgen parametrisierte sichere Ansichten für Folgendes:
Die Abfrage gibt nur Zeilen zurück, auf die der Nutzer, der die Abfrage gesendet hat, Zugriff hat, z. B. Zeilen, die mit der Nutzer-ID 12345 verknüpft sind.
Minimiertes Sicherheitsrisiko
Parametrisierte sichere Ansichten tragen dazu bei, Sicherheitsrisiken zu minimieren, wenn Endnutzer nicht vertrauenswürdige Abfragen wie Abfragen in natürlicher Sprache für Ihre Datenbank ausführen. Zu diesen Risiken gehören:
- Schädliche Prompts: Nutzer versuchen möglicherweise, das zugrunde liegende Modell zu manipulieren, um auf alle Anwendungsdaten zuzugreifen.
- SQL-Abfragen mit breitem Umfang: Large Language Models (LLMs) können SQL-Abfragen generieren, die sensible Daten preisgeben, auch bei gut gemeinten Nutzerabfragen.
Mit parametrisierten sicheren Ansichten können Sie den Bereich der Zeilen einschränken, die einzelnen Anwendungsnutzern zur Verfügung stehen. Diese Steuerung sorgt für Datensicherheit, unabhängig davon, wie Nutzer ihre Abfragen formulieren.
Verwaltung des Datenzugriffs
Parametrisierte sichere Ansichten lösen häufige Probleme bei der Verwaltung des Datenzugriffs für eine große und wachsende Anzahl von Nutzern.
- Vereinfachte Nutzerverwaltung: Mit parametrisierten sicheren Ansichten können Sie eine einzelne Datenbankrolle für alle Endnutzer verwenden, anstatt Methoden zu verwenden, bei denen Sie möglicherweise für jeden Endnutzer einen separaten Datenbanknutzer oder eine separate Datenbankrolle erstellen müssen. Parametrisierte sichere Ansichten tragen dazu bei, die Nutzer- und Verbindungsverwaltung für Anwendungen zu vereinfachen, bei denen jeder Endnutzer nur Zugriff auf seine Daten benötigt. In einer Fluggesellschaftsanwendung, in der Kunden nur ihre eigenen Buchungen sehen sollen, können Sie beispielsweise eine einzelne parametrisierte sichere Ansicht definieren, die durch die Endnutzer-ID parametrisiert wird. Diese Ansicht ermöglicht es, dass alle Nutzer von einer einzelnen Datenbankrolle bedient werden, die Zugriff auf die Ansicht, aber nicht auf die zugrunde liegende Tabelle hat. Dadurch werden die Nutzerverwaltung und die Datenbankverbindungen vereinfacht.
- Optimierte Durchsetzung der Sicherheit: Parametrisierte sichere Ansichten enthalten von Natur aus Zugriffssteuerungen. Wenn eine Ansicht abgefragt wird, werden die definierten Sicherheitsparameter unabhängig vom Nutzer, der auf die Ansicht zugreift, einheitlich durchgesetzt. Dieser Ansatz unterscheidet sich von Situationen, in denen zugrunde liegende Sicherheitsrichtlinien für Basistabellen ohne zusätzliche Konfiguration möglicherweise nicht automatisch auf Ansichten angewendet werden.
Weitere Informationen zu vorhandenen Sicherheitsmechanismen in PostgreSQL, z. B. Richtlinien zur Sicherheit auf Zeilenebene, finden Sie unter Richtlinien zur Sicherheit auf Zeilenebene.
Sicherheitsmechanismus
Parametrisierte sichere Ansichten bieten eine zusätzliche Sicherheitsebene, indem sie steuern, wie Abfragen auf die zugrunde liegenden Daten zugreifen. Sie bieten Anwendungsentwicklern Datensicherheit und Zugriffssteuerung auf Zeilenebene mit den folgenden Methoden:
- Ansichten, die mit der Option
WITH (security barrier)erstellt wurden, bieten Sicherheit auf Zeilenebene, indem sie verhindern, dass böswillig ausgewählte Funktionen und Operatoren Werte aus Zeilen erhalten, bevor die Ansicht ihre Arbeit erledigt hat. Weitere Informationen zur KlauselWITH (security barrier)finden Sie unter Regeln und Berechtigungen. - Die Parametrisierung mit benannten Ansichtsparametern ermöglicht eine eingeschränkte Ansicht der Datenbank, die durch Werte parametrisiert wird, die von der Anwendung basierend auf der Sicherheit auf Anwendungsebene bereitgestellt werden, z. B. die Endnutzerauthentifizierung.
- Die Durchsetzung zusätzlicher Einschränkungen für Abfragen, die auf parametrisierte Ansichten zugreifen, ist für Anwendungen nützlich, die nicht vertrauenswürdige Abfragen von Endnutzern ausführen, z. B. solche, die durch eine KI-basierte Generierung von natürlicher Sprache zu SQL generiert wurden. Dadurch wird verhindert, dass die Sicherheitsebene, die von parametrisierten sicheren Ansichten bereitgestellt wird, umgangen wird, und die Ressourcennutzung wird verwaltet. Weitere Informationen finden Sie unter Durchgesetzte Einschränkungen für Abfragen.
Beschränkungen
- Sie müssen das Flag für parametrisierte Ansichten für jede Instanz von AlloyDB Omni separat aktivieren. Parametrisierte Ansichtsobjekte, die in der primären Instanz erstellt wurden, werden an Lesepoolinstanzen und regionsübergreifende Replikate weitergegeben.
Die Einstellung des Flags
parameterized_views.enabledwird jedoch nicht automatisch angewendet und muss für jede Instanz manuell festgelegt werden. Weitere Informationen finden Sie unter Vorbereitung. Sie können parametrisierte Ansichten in einer Lesepoolinstanz oder in einem regionsübergreifenden Replikat erst abfragen, nachdem Sie das Flagparameterized_views.enabledfür jede Instanz aktiviert haben.
Nächste Schritte
- Sicherheit von Anwendungsdaten mit parametrisierten sicheren Ansichten verwalten.
- Zugriff auf Anwendungsdaten mit parametrisierten sicheren Ansichten sichern und steuern.