Panoramica delle visualizzazioni protette parametrizzate

Seleziona una versione della documentazione:

Questa pagina descrive le viste sicure parametrizzate in AlloyDB Omni, che forniscono sicurezza dei dati delle applicazioni e controllo dell'accesso a livello di riga utilizzando le viste SQL e contribuiscono a garantire che gli utenti delle applicazioni possano visualizzare solo i dati a cui devono accedere.

Le viste sicure con parametri sono un'estensione delle viste sicure PostgreSQL, che ti consentono di utilizzare parametri di visualizzazione denominati specifici dell'applicazione nelle definizioni delle viste. Questa funzionalità fornisce un'interfaccia che accetta una query e i valori per i parametri denominati. L'interfaccia esegue la query con questi valori, che vengono utilizzati durante l'esecuzione della query.

Di seguito è riportato un esempio di visualizzazione sicura con parametri:

CREATE VIEW secure_checked_items WITH (security_barrier) AS
       SELECT bag_id, timestamp, location
       FROM checked_items t
       WHERE customer_id = $@app_end_userid;

Puoi eseguire query sulle viste sicure con parametri utilizzando la stored procedure execute_parameterized_query o eseguendo l'istruzione EXECUTE .. WITH VIEW PARAMETERS. Per saperne di più, vedi Gestire la sicurezza dei dati delle applicazioni utilizzando le viste sicure con parametri di AlloyDB Omni.

Vantaggi delle visualizzazioni sicure parametrizzate

Le visualizzazioni sicure parametrizzate sono ideali per gestire la sicurezza dei dati a livello di database, soprattutto quando si ha a che fare con query ad hoc provenienti da origini non attendibili, come quelle tradotte dal linguaggio naturale. Queste viste offrono un modo flessibile per implementare ilcontrollo dell'accessoo granulare.

Ad esempio, considera un'applicazione che monitora i bagagli registrati dei clienti. Un cliente con ID utente 12345 chiede: "Dov'è la mia borsa?" In questo scenario, le visualizzazioni sicure con parametri garantiscono quanto segue:

La query restituisce solo le righe accessibili all'utente che l'ha inviata, ad esempio le righe collegate all'ID utente 12345.

Mitigazione dei rischi per la sicurezza

Le viste sicure con parametri aiutano a mitigare i rischi per la sicurezza quando gli utenti finali eseguono query non attendibili, come query in linguaggio naturale, sul tuo database. Questi rischi includono:

  • Prompt dannosi: gli utenti potrebbero tentare di manipolare il modello sottostante per accedere a tutti i dati dell'applicazione.
  • Query SQL con ambito ampio: i modelli linguistici di grandi dimensioni (LLM) potrebbero generare query SQL che espongono dati sensibili, anche da query utente ben intenzionate.

Utilizzando le viste sicure con parametri, puoi limitare l'intervallo di righe disponibili per i singoli utenti dell'applicazione. Questo controllo garantisce la sicurezza dei dati, indipendentemente da come gli utenti formulano le query.

Gestione dell'accesso ai dati

Le visualizzazioni sicure con parametri risolvono le sfide comuni nella gestione dell'accesso ai dati per un numero elevato e crescente di utenti.

  • Gestione utenti semplificata: con le visualizzazioni sicure parametrizzate, puoi utilizzare un singolo ruolo di database per tutti gli utenti finali, anziché utilizzare metodi che potrebbero richiedere la creazione di un utente o un ruolo di database separato per ogni utente finale. Le viste sicure parametrizzate semplificano la gestione di utenti e connessioni per le applicazioni in cui ogni utente finale deve accedere solo ai propri dati. Ad esempio, in un'applicazione di una compagnia aerea in cui i clienti devono visualizzare solo le proprie prenotazioni, puoi definire una singola vista sicura con parametri parametrizzata in base all'identificatore dell'utente finale. Questa vista consente a un singolo ruolo del database, con accesso alla vista, non alla tabella sottostante, di servire tutti gli utenti, il che semplifica la gestione degli utenti e le connessioni al database.
  • Applicazione semplificata della sicurezza: le viste sicure parametrizzate incorporano intrinsecamente i controlli dell'accesso. Quando viene eseguita una query su una vista, i parametri di sicurezza definiti vengono applicati in modo coerente, indipendentemente dall'utente che accede alla vista. Questo approccio è diverso dalle situazioni in cui le policy di sicurezza sottostanti nelle tabelle di base potrebbero non essere applicate automaticamente alle viste senza una configurazione aggiuntiva.

Per saperne di più sui meccanismi di sicurezza esistenti in PostgreSQL, come le policy di sicurezza a livello di riga (RLS), consulta Policy di sicurezza a livello di riga.

Meccanismo di sicurezza

Le visualizzazioni sicure con parametri aggiungono un ulteriore livello di sicurezza controllando il modo in cui le query accedono ai dati sottostanti. Offrono agli sviluppatori di applicazioni la sicurezza dei dati e controllo dell'accesso alle righe utilizzando i seguenti metodi:

  • Le visualizzazioni create utilizzando l'opzione WITH (security barrier) forniscono la sicurezza a livello di riga impedendo che funzioni e operatori scelti in modo dannoso ricevano valori dalle righe finché la visualizzazione non ha terminato il suo lavoro. Per saperne di più sulla clausola WITH (security barrier), consulta Regole e privilegi.
  • La parametrizzazione tramite parametri di visualizzazione denominati consente una visualizzazione limitata del database parametrizzato in base ai valori forniti dall'applicazione in base alla sicurezza a livello di applicazione, ad esempio l'autenticazione dell'utente finale.
  • L'applicazione di ulteriori limitazioni alle query che accedono alle viste parametrizzate è utile per le applicazioni che eseguono query non attendibili dagli utenti finali, come quelle generate da un'AI che converte il linguaggio naturale in SQL. Ciò impedisce di uscire dall'envelope di sicurezza fornito dalle viste sicure con parametri e di gestire l'utilizzo delle risorse. Per ulteriori informazioni, consulta Limitazioni forzate per le query.

Limitazioni

Passaggi successivi