DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Snowflake Row-Level Security

Snowflake Row-Level Security

Snowflake Row-Level Security

Nel mondo odierno guidato dai dati, proteggere le informazioni sensibili è cruciale. Con sempre più organizzazioni che migrano i loro dati verso data warehouse basati su cloud come Snowflake, diventa fondamentale implementare misure di sicurezza robuste. Uno strumento potente nell’arsenale di sicurezza di Snowflake è la Row-Level Security (RLS). In questo articolo, esploreremo i fondamenti della Snowflake Row-Level Security e come aiuta a proteggere i tuoi dati.

Che Cos’è la Row-Level Security?

La Row-Level Security protegge i dati permettendo l’accesso solo a righe specifiche in una tabella basato su determinate condizioni. Questo significa che gli utenti possono vedere e interagire solo con i dati per i quali sono autorizzati. Fornisce un ulteriore livello di sicurezza limitando l’accesso alle informazioni sensibili.

Questa funzione aiuta le organizzazioni a controllare chi può visualizzare o modificare i dati all’interno dei loro database. Puoi controllare chi può vedere o cambiare righe specifiche, mantenendo al sicuro i dati sensibili. RLS è utile quando diversi utenti o gruppi necessitano l’accesso a parti specifiche dei dati in una tabella.

Implementare la Row-Level Security in Snowflake

Snowflake, un data warehouse basato su cloud leader, offre un insieme completo di funzionalità di sicurezza, inclusa la Row-Level Security. Entriamo nel dettaglio di come funziona RLS in Snowflake e rispondiamo a alcune domande comuni.

Ci sono “righe” in Snowflake?

Sì, Snowflake organizza i dati in tabelle, che consistono di righe e colonne. Ogni riga rappresenta un record o una voce unica nella tabella. Quando implementi RLS, definisci politiche che determinano quali righe sono accessibili a specifici utenti o ruoli.

Ad esempio, puoi avere dati strutturati in file CSV o semi-strutturati in Amazon S3 e prepararli con Snowflake. Snowflake offre un metodo più organizzato ed efficiente per cercare e analizzare i dati con le tabelle. Ti permette di creare tabelle che puntano ai dati in S3, così puoi usare SQL e il motore di query di Snowflake in modo efficace.

Preparazione dei Dati Sensibili

Per sfruttare la Row-Level Security in Snowflake, devi assicurarti che i dati sensibili siano correttamente preparati. Questo implica identificare le colonne che contengono informazioni sensibili e applicare misure di sicurezza appropriate. Snowflake ti permette di nascondere i dati sensibili utilizzando viste sicure o funzioni SQL basate sui ruoli degli utenti o criteri.

Puoi utilizzare la sicurezza a livello di colonna per impostare regole che filtrano i dati sensibili quando configuri il tuo database.

Esempio usando il comando COPY:

— Crea una tabella per preparare i dati

CREATE TABLE employee_data (
   id INT,
   name STRING,
   email STRING,
   salary DECIMAL
);

La preparazione può essere la seguente:

-- Prepara i dati da un file CSV, escludendo le righe dove il salario supera una soglia
COPY INTO employee_data (id, name, email)
FROM 's3://your-bucket/path/to/file.csv'
FILE_FORMAT = (TYPE = 'CSV')
PATTERN = '.*'
WHERE salary < 100000;

In questo esempio, stiamo spostando i dati da un file CSV nella tabella employee_data. Solo le colonne id, name ed email vengono trasferite. La clausola WHERE filtro le righe dove il salario supera una certa soglia. Questo previene la preparazione di dati sensibili.

Mascheramento di Dati nelle Righe Specifiche

Snowflake fornisce capacità di mascheramento dei dati che ti permettono di oscurare informazioni sensibili in righe specifiche. Utilizzando le politiche di mascheramento, puoi sostituire i dati sensibili con valori o caratteri alternativi, come asterischi (*) o numeri casuali. In questo modo, gli utenti con accesso limitato vedranno dati mascherati anziché le effettive informazioni sensibili.

Esempio:

CREATE MASKING POLICY mask_email AS (val STRING) RETURNS STRING ->
CASE
   WHEN current_role() IN ('admin', 'manager') THEN val
   ELSE '*****'
END;

In questo esempio, viene creata una politica di mascheramento chiamata mask_email. Verifica il ruolo attuale dell’utente e maschera gli indirizzi email con asterischi (*) per gli utenti che non sono nei ruoli ‘admin’ o ‘manager’.

Bloccare l’Accesso per Certi Utenti

Snowflake ti permette di controllare l’accesso a righe specifiche basato sui ruoli degli utenti o altre condizioni. Creando Row Access Policies (RAP), puoi definire regole che determinano quali utenti o ruoli possono accedere a certe righe. RAP sono create usando espressioni SQL e possono essere applicate a tabelle o viste.

Esempio:

CREATE ROW ACCESS POLICY rap_sales AS (department STRING) RETURNS BOOLEAN ->
current_role() = 'sales_manager' OR
(current_role() = 'sales_rep' AND department = 'sales');

In questo esempio, creiamo una politica di accesso a righe chiamata rap_sales. Il sales manager può vedere tutte le righe. Il sales rep può vedere solo le righe dove il dipartimento è sales.

Quando usi RAP con Snowflake, la sicurezza a livello di riga è applicata a tutte le tabelle e viste, anche annidate. Non devi ripetere le condizioni della politica a ogni livello.

Monitoraggio dell’Accesso a Certe Righe

Snowflake fornisce capacità di audit logging che permettono di monitorare l’accesso a tabelle e viste. Abilitando il logging degli accessi per una tabella o vista, puoi tracciare chi ha accesso ai dati e quando. Tuttavia, è importante notare che il logging degli accessi non è sufficientemente dettagliato per tracciare l’accesso a righe specifiche all’interno di una tabella o vista.

Esempio:

ALTER TABLE sensitive_data_table
SET DATA_RETENTION_TIME_IN_DAYS = 30
ENABLE ACCESS_LOGGING = TRUE;

In questo esempio, abbiamo abilitato il logging per la tabella sensitive_data_table. Il sistema conserva le informazioni di log per 30 giorni. I log di accesso registrano chi ha avuto accesso a una tabella e quando, ma non mostrano quali righe specifiche l’utente ha visualizzato.

Se desideri una audit più dettagliata per ogni riga, potrebbe essere necessario aggiungere log extra alla tua app. Potresti anche considerare l’uso di strumenti di terze parti come DataSunrise. Questi strumenti possono tracciare e analizzare i modelli di query e l’accesso ai dati più da vicino.

Conclusione

Snowflake Row-Level Security è uno strumento potente per proteggere i tuoi dati basati su cloud. Implementando RLS, puoi garantire che le informazioni sensibili siano protette e accessibili solo agli utenti autorizzati. Snowflake offre strumenti come il mascheramento dei dati e il logging degli accessi per aiutarti a controllare le impostazioni di sicurezza in modo dettagliato.

Sebbene Snowflake offra funzionalità di sicurezza integrate, gestire e configurare queste caratteristiche può essere complesso. DataSunrise, un fornitore leader di soluzioni di sicurezza del database, offre strumenti user-friendly e flessibili per la sicurezza del database, il mascheramento e la conformità. Con DataSunrise, puoi semplificare l’implementazione della sicurezza del tuo data warehouse e garantire una protezione completa per il tuo data warehouse di Snowflake.

Contatta il nostro team per una demo online per sapere di più su come DataSunrise può proteggere il tuo ambiente Snowflake. I nostri esperti ti mostreranno come DataSunrise funziona con Snowflake per migliorare le caratteristiche e i benefici di sicurezza.

Non compromettere la sicurezza dei dati. Usa Snowflake Row-Level Security e DataSunrise per proteggere i dati sensibili e mantenere la fiducia dei clienti e degli stakeholders.

Successivo

Sicurezza PostgreSQL

Sicurezza PostgreSQL

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

Informazioni generali:
[email protected]
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
[email protected]