Parametrisierte sichere Ansichten – Übersicht

Auf dieser Seite werden parametrisierte sichere Ansichten in AlloyDB for PostgreSQL beschrieben, die für die Sicherheit von Anwendungsdaten und die Steuerung des Zeilenzugriffs mithilfe von SQL-Ansichten sorgen. So können Sie dafür sorgen, dass Anwendungsnutzer nur die Daten sehen, auf die sie zugreifen dürfen.

Parametrisierte sichere Ansichten sind eine Erweiterung von PostgreSQL-Sicherheitsansichten, 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 entgegennimmt. Die Benutzeroberfläche führt die Abfrage mit diesen Werten aus, die während der gesamten Ausführung der Abfrage verwendet werden.

Hier sehen Sie 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 durch Ausführen der Anweisung EXECUTE .. WITH VIEW PARAMETERS abfragen. Weitere Informationen finden Sie unter Sicherheit von Anwendungsdaten mit parametrisierten sicheren Ansichten in AlloyDB verwalten.

Vorteile von parametrisierten sicheren Ansichten

Parametrisierte sichere Ansichten eignen sich gut für die Verwaltung der Datensicherheit auf Datenbankebene, insbesondere wenn Sie es mit Ad-hoc-Abfragen aus nicht vertrauenswürdigen Quellen zu tun haben, 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, die das aufgegebene Gepäck von Kunden verfolgt. Ein Kunde mit der Nutzer-ID 12345 fragt: „Wo ist mein Gepäck?“ 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, z. B. Abfragen in natürlicher Sprache, für Ihre Datenbank ausführen. Dazu gehören folgende Risiken:

  • Böswillige 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 vertrauliche Daten offenlegen, selbst bei gut gemeinten Nutzeranfragen.

Mit parametrisierten sicheren Ansichten können Sie den Bereich der Zeilen einschränken, die einzelnen Anwendungsnutzern zur Verfügung stehen. Diese Kontrolle sorgt für Datensicherheit, unabhängig davon, wie Nutzer ihre Anfragen formulieren.

Verwaltung des Datenzugriffs

Parametrisierte sichere Ansichten bieten eine Lösung für die häufigen Herausforderungen 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 nutzen, bei denen Sie möglicherweise für jeden Endnutzer einen separaten Datenbanknutzer oder eine separate Datenbankrolle erstellen müssen. Parametrisierte sichere Ansichten vereinfachen die Nutzer- und Verbindungsverwaltung für Anwendungen, in denen jeder Endnutzer nur Zugriff auf seine Daten benötigt.

    In einer Anwendung für eine Fluggesellschaft, 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. Mit dieser Ansicht kann eine einzelne Datenbankrolle mit Zugriff auf die Ansicht, aber nicht auf die zugrunde liegende Tabelle, für alle Nutzer verwendet werden. Das vereinfacht die Nutzerverwaltung und Datenbankverbindungen.

  • Optimierte Sicherheitsdurchsetzung: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 angewendet. Dieser Ansatz steht im Gegensatz zu Situationen, in denen zugrunde liegende Sicherheitsrichtlinien für Basistabellen möglicherweise nicht automatisch auf Ansichten angewendet werden, ohne dass eine zusätzliche Konfiguration erforderlich ist.

Weitere Informationen zu vorhandenen Sicherheitsmechanismen in PostgreSQL, z. B. RLS-Richtlinien (Row Level Security), finden Sie unter Row Security Policies.

Sicherheitsmechanismus

Mit parametrisierten sicheren Ansichten können Anwendungsentwickler die Datensicherheit und die Zeilenzugriffssteuerung mit den folgenden Methoden verbessern:

  • Ansichten, die mit der Option WITH (security barrier) erstellt wurden, bieten Sicherheit auf Zeilenebene, da verhindert wird, dass böswillig ausgewählte Funktionen und Operatoren Werte aus Zeilen erhalten, bevor die Ansicht ihre Arbeit erledigt hat. Weitere Informationen zur WITH (security barrier)-Klausel 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, z. B. der Endnutzerauthentifizierung, bereitgestellt werden.
  • Die Durchsetzung zusätzlicher Einschränkungen für Abfragen, die auf parametrisierte Ansichten zugreifen, ist nützlich für Anwendungen, die nicht vertrauenswürdige Abfragen von Endnutzern ausführen, z. B. solche, die von einer KI-Generierung von natürlicher Sprache zu SQL generiert werden. So wird verhindert, dass die durch parametrisierte sichere Ansichten bereitgestellte Sicherheitsumgebung verlassen wird, und die Ressourcennutzung wird verwaltet. Weitere Informationen finden Sie unter Erzwungene Einschränkungen für Abfragen.

Beschränkungen

  • Sie müssen das Flag für parametrisierte Ansichten für jede AlloyDB-Instanz separat aktivieren. Auf der primären Instanz erstellte parametrisierte Ansichtsobjekte werden an Lesepoolinstanzen und regionenübergreifende Replikate weitergegeben. Die Einstellung des parameterized_views.enabled-Flags wird 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, wenn Sie das Flag parameterized_views.enabled für jede Instanz aktivieren.

Nächste Schritte