Parametrisierte sichere Ansichten – Übersicht

Wählen Sie eine Dokumentationsversion aus:

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

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 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 Omni 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, mit der das aufgegebene Gepäck von Kunden verfolgt wird. 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, zugreifen kann, 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:

  • Böswillige Prompts: Nutzer versuchen möglicherweise, das zugrunde liegende Modell zu manipulieren, um auf alle Anwendungsdaten zuzugreifen.
  • SQL-Abfragen mit breitem Umfang: 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, 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 durchgesetzt. Das ist anders als in Situationen, in denen zugrunde liegende Sicherheitsrichtlinien für Basistabellen möglicherweise nicht automatisch auf Ansichten angewendet werden, ohne dass zusätzliche Konfigurationen erforderlich sind.

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

Sicherheitsmechanismus

Parametrisierte sichere Ansichten bieten eine zusätzliche Sicherheitsebene, da sie steuern, wie auf die zugrunde liegenden Daten zugegriffen wird. Sie bieten Anwendungsentwicklern Datensicherheit und Zeilenzugriffssteuerung mit den folgenden Methoden:

  • 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 bereitgestellt werden, z. B. der Endnutzerauthentifizierung.
  • Die Erzwingung 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 und die Ressourcennutzung verwaltet werden kann. 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 Instanz von AlloyDB for PostgreSQL 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 einem regionenübergreifenden Replikat erst abfragen, wenn Sie das parameterized_views.enabled-Flag für jede Instanz aktivieren.

Nächste Schritte