Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Filtraggio dei dati e sicurezza a livello di cella in Lake Formation
Quando concedi le autorizzazioni di Lake Formation su una tabella Data Catalog, puoi includere specifiche di filtraggio dei dati per limitare l'accesso a determinati dati nei risultati delle query e nei motori integrati con Lake Formation. Lake Formation utilizza il filtraggio dei dati per ottenere la sicurezza a livello di colonna, la sicurezza a livello di riga e la sicurezza a livello di cella. Puoi definire e applicare filtri di dati sulle colonne nidificate se i dati di origine contengono strutture nidificate.
Con le funzionalità di filtraggio dei dati di Lake Formation, puoi implementare i seguenti livelli di sicurezza dei dati.
Sicurezza a livello di colonna
La concessione delle autorizzazioni su una tabella del Catalogo dati con sicurezza a livello di colonna (filtro delle colonne) consente agli utenti di visualizzare solo colonne specifiche e colonne nidificate a cui hanno accesso nella tabella. Prendiamo in considerazione una persons
tabella utilizzata in più applicazioni per una grande società di comunicazioni multiregionale. La concessione di autorizzazioni per le tabelle di Data Catalog con filtro a colonne può impedire agli utenti che non lavorano nel reparto risorse umane di visualizzare informazioni di identificazione personale (PII) come il numero di previdenza sociale o la data di nascita. È inoltre possibile definire politiche di sicurezza e concedere l'accesso solo a sottostrutture parziali di colonne annidate.
Sicurezza a livello di riga
La concessione delle autorizzazioni su una tabella del Catalogo dati con sicurezza a livello di riga (filtro di riga) consente agli utenti di visualizzare solo righe di dati specifiche a cui hanno accesso nella tabella. Il filtraggio si basa sui valori di una o più colonne. È possibile includere strutture di colonne annidate quando si definiscono espressioni di filtro di riga. Ad esempio, se diversi uffici regionali della società di comunicazioni hanno i propri reparti delle risorse umane, è possibile limitare i record relativi alle persone che i dipendenti delle risorse umane possono vedere ai soli record relativi ai dipendenti della propria regione.
Sicurezza a livello di cella
La sicurezza a livello di cella combina il filtraggio di righe e il filtraggio di colonne per un modello di autorizzazioni altamente flessibile. Se si visualizzano le righe e le colonne di una tabella come griglia, utilizzando la sicurezza a livello di cella, è possibile limitare l'accesso ai singoli elementi (celle) della griglia in qualsiasi punto delle due dimensioni. In altre parole, è possibile limitare l'accesso a diverse colonne a seconda della riga. Ciò è illustrato dal diagramma seguente, in cui le colonne con restrizioni sono ombreggiate.

Continuando l'esempio della tabella delle persone, puoi creare un filtro dati a livello di cella che limita l'accesso alla colonna dell'indirizzo se la riga ha la colonna del paese impostata su «UK», ma consente l'accesso alla colonna dell'indirizzo se la riga ha la colonna del paese impostata su «US».
I filtri si applicano solo alle operazioni di lettura. Pertanto, puoi concedere solo l'autorizzazione SELECT
Lake Formation con filtri.
Sicurezza a livello di cella sulle colonne annidate
Lake Formation consente di definire e applicare filtri di dati con sicurezza a livello di cella su colonne annidate. Tuttavia, i motori analitici integrati come Amazon AthenaEMR, Amazon e Amazon Redshift Spectrum supportano l'esecuzione di query su tabelle annidate gestite da Lake Formation con sicurezza a livello di riga e colonna.
Per le limitazioni, consulta Limitazioni del filtraggio dei dati.
Argomenti
Filtri di dati in Lake Formation
Puoi implementare la sicurezza a livello di colonna, riga e cella tramite la creazione di filtri di dati. Quando concedi l'autorizzazione SELECT
Lake Formation sulle tabelle, selezioni un filtro dati. Se la tabella contiene strutture di colonne nidificate, è possibile definire un filtro dati includendo o escludendo le colonne secondarie e definire espressioni di filtro a livello di riga sugli attributi nidificati.
Ogni filtro di dati appartiene a una tabella specifica del Data Catalog. Un filtro dati include le seguenti informazioni:
-
Nome del filtro
-
Il catalogo IDs della tabella associata al filtro
-
Nome tabella
-
Nome del database che contiene la tabella
-
Specificazione delle colonne: un elenco di colonne e colonne annidate (con
struct
tipi di dati) da includere o escludere nei risultati della query. -
Espressione di filtro di riga: un'espressione che specifica le righe da includere nei risultati della query. Con alcune restrizioni, l'espressione ha la sintassi di una
WHERE
clausola nel linguaggio PartiQL. Per specificare tutte le righe, scegli Accesso a tutte le righe in Accesso a livello di riga nella console o Utilizza nelle chiamate.AllRowsWildcard
APIPer ulteriori informazioni su ciò che è supportato nelle espressioni di filtro di riga, consulta. Supporto PartiQL nelle espressioni di filtro di riga
Il livello di filtraggio ottenuto dipende da come si popola il filtro dati.
-
Quando specifichi il carattere jolly "tutte le colonne" e fornisci un'espressione di filtro di riga, stabilisci solo la sicurezza a livello di riga (filtraggio di riga).
-
Quando si includono o si escludono colonne specifiche e colonne nidificate e si specifica «tutte le righe» utilizzando il carattere jolly per tutte le righe, si stabilisce solo la sicurezza a livello di colonna (filtraggio delle colonne).
-
Quando includi o escludi colonne specifiche e fornisci anche un'espressione di filtro di riga, stabilisci la sicurezza a livello di cella (filtraggio delle celle).
La seguente schermata della console Lake Formation mostra un filtro dati che esegue il filtraggio a livello di cella. Per le interrogazioni sulla orders
tabella, limita l'accesso alla customer_name
colonna e i risultati della query restituiscono solo le righe in cui la colonna contiene «pharma». product_type

Nota l'uso di virgolette singole per racchiudere la stringa letterale,. 'pharma'
Puoi utilizzare la console Lake Formation per creare questo filtro di dati oppure puoi fornire il seguente oggetto di richiesta all'CreateDataCellsFilter
APIoperazione.
{ "Name": "restrict-pharma", "DatabaseName": "sales", "TableName": "orders", "TableCatalogId": "111122223333", "RowFilter": {"FilterExpression": "product_type='pharma'"}, "ColumnWildcard": { "ExcludedColumnNames": ["customer_name"] } }
Puoi creare tutti i filtri di dati di cui hai bisogno per una tabella. A tal fine, è necessaria l'SELECT
autorizzazione con l'opzione di concessione su una tabella. Per impostazione predefinita, gli amministratori di Data Lake dispongono dell'autorizzazione per creare filtri di dati su tutte le tabelle di quell'account. In genere si utilizza solo un sottoinsieme dei possibili filtri di dati quando si concedono le autorizzazioni sulla tabella a un responsabile. Ad esempio, è possibile creare un secondo filtro di dati per la orders
tabella che è un row-security-only filtro di dati. Facendo riferimento alla schermata precedente, è possibile scegliere l'opzione Accesso a tutte le colonne e includere un'espressione di filtro di riga di. product_type<>pharma
Il nome di questo filtro di dati potrebbe essere. no-pharma
Limita l'accesso a tutte le righe la cui product_type
colonna è impostata su «pharma».
L'oggetto di richiesta per l'CreateDataCellsFilter
APIoperazione per questo filtro di dati è il seguente.
{ "Name": "no-pharma", "DatabaseName": "sales", "TableName": "orders", "TableCatalogId": "111122223333", "RowFilter": {"FilterExpression": "product_type<>'pharma'"}, "ColumnNames": ["customer_id", "customer_name", "order_num" "product_id", "purchase_date", "product_type", "product_manufacturer", "quantity", "price"] }
È quindi possibile concedere la licenza SELECT
sulla orders
tabella con il filtro restrict-pharma
dati a un utente amministrativo e SELECT
sulla orders
tabella con il filtro no-pharma
dati a utenti non amministrativi. Agli utenti del settore sanitario, potresti SELECT
concedere alla orders
tabella l'accesso completo a tutte le righe e le colonne (nessun filtro per i dati) o magari aggiungere un altro filtro di dati che limiti l'accesso alle informazioni sui prezzi.
È possibile includere o escludere colonne annidate quando si specifica la sicurezza a livello di colonna e di riga all'interno di un filtro dati. Nell'esempio seguente, l'accesso al product.offer
campo viene specificato utilizzando nomi di colonna qualificati (racchiusi tra virgolette doppie). Questo è importante per i campi annidati per evitare che si verifichino errori quando i nomi delle colonne contengono caratteri speciali e per mantenere la compatibilità con le versioni precedenti delle definizioni di sicurezza a livello di colonna.
{ "Name": "example_dcf", "DatabaseName": "example_db", "TableName": "example_table", "TableCatalogId": "111122223333", "RowFilter": { "FilterExpression": "customer.customerName <> 'John'" }, "ColumnNames": ["customer", "\"product\".\"offer\""] }