Panoramica delle visualizzazioni protette parametrizzate

Seleziona una versione della documentazione:

Questa pagina descrive le viste sicure parametrizzate in AlloyDB Omni, che forniscono la sicurezza dei dati delle applicazioni e controllo dell'accesso alle righe utilizzando le viste SQL e contribuiscono a garantire che gli utenti delle applicazioni possano visualizzare solo i dati a cui sono autorizzati ad accedere.

Le viste sicure con parametri sono un'estensione delle viste sicure di 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 vista sicura parametrizzata:

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 protette parametrizzate utilizzando la stored procedure execute_parameterized_query o l'istruzione EXECUTE .. WITH VIEW PARAMETERS. Per saperne di più, consulta Gestisci la sicurezza dei dati delle applicazioni utilizzando le viste sicure parametrizzate di AlloyDB Omni.

Vantaggi delle viste sicure parametrizzate

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

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 viste sicure parametrizzate 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 parametrizzate aiutano a mitigare i rischi per la sicurezza quando gli utenti finali eseguono query non attendibili, come le 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 ad ampio raggio: i modelli linguistici di grandi dimensioni (LLM) potrebbero generare query SQL che espongono dati sensibili, anche da query degli utenti con buone intenzioni.

Utilizzando le viste sicure parametrizzate, 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 viste sicure parametrizzate affrontano le sfide comuni nella gestione dell'accesso ai dati per un numero elevato e in crescita di utenti.

  • Gestione semplificata degli utenti: con le viste sicure parametrizzate, puoi utilizzare un unico ruolo del database per servire tutti gli utenti finali, anziché utilizzare metodi che potrebbero richiedere la creazione di un utente o un ruolo del database separato per ogni utente finale. Le viste sicure parametrizzate semplificano la gestione degli utenti e delle 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 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, semplificando la gestione degli utenti e le connessioni al database.
  • Applicazione semplificata della sicurezza: le viste sicure parametrizzate incorporano intrinsecamente i controlli degli accessi. 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 è in contrasto con le situazioni in cui le policy di sicurezza sottostanti sulle 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 viste sicure parametrizzate 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 viste create utilizzando l'opzione WITH (security barrier) forniscono sicurezza a livello di riga impedendo che funzioni e operatori scelti in modo dannoso ricevano valori dalle righe fino a quando la vista non ha terminato il suo lavoro. Per saperne di più sulla clausola WITH (security barrier), consulta Regole e privilegi.
  • La parametrizzazione che utilizza parametri di visualizzazione denominati consente una visualizzazione limitata del database parametrizzata 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 limitazioni aggiuntive alle query che accedono alle viste parametrizzate è utile per le applicazioni che eseguono query non attendibili degli utenti finali, come quelle generate da una generazione di linguaggio naturale in SQL con l'AI. In questo modo, si evita di uscire dall'envelope di sicurezza fornito dalle viste sicure parametrizzate e di gestire l'utilizzo delle risorse. Per saperne di più, consulta Limitazioni applicate alle query.

Limitazioni

  • Devi attivare il flag della vista parametrizzata separatamente su ogni istanza di AlloyDB Omni. Gli oggetti vista parametrizzata creati nell'istanza principale vengono propagati alle istanze del pool di lettura e alle repliche tra regioni. Tuttavia, l'impostazione del flag parameterized_views.enabled non viene applicata automaticamente e deve essere impostata manualmente su ogni istanza. Per saperne di più, consulta Prima di iniziare. Non puoi eseguire query sulle viste parametrizzate su un'istanza di pool di lettura o su una replica tra regioni prima di attivare il flag parameterized_views.enabled su ogni istanza.

Passaggi successivi