Limitazioni del filtraggio dei dati - AWS Lake Formation

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à.

Limitazioni del filtraggio dei dati

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.

Note e restrizioni per il filtraggio a livello di colonna

Esistono tre modi per specificare il filtraggio delle colonne:

  • Utilizzando filtri di dati

  • Utilizzando un semplice filtraggio a colonne o un filtraggio a colonne annidate.

  • Utilizzando. TAGs

Il semplice filtraggio delle colonne specifica solo un elenco di colonne da includere o escludere. Sia la console Lake Formation che laAPI, AWS CLI supportano il semplice filtraggio delle colonne. Per vedere un esempio, consulta Grant with Simple Column Filtering.

Le seguenti note e restrizioni si applicano al filtraggio delle colonne:

  • AWS Glue ETLjobs non supporta il filtraggio delle colonne. Il processo ha esito negativo se il filtraggio delle colonne viene applicato a qualsiasi tabella a cui il lavoro fa riferimento.

  • Per concedere SELECT con l'opzione di concessione e il filtro delle colonne, è necessario utilizzare un elenco di inclusione, non un elenco di esclusione. Senza l'opzione di concessione, è possibile utilizzare elenchi di inclusione o esclusione.

  • Per concedere SELECT su una tabella con filtro a colonne, devi aver ottenuto l'autorizzazione SELECT sulla tabella con l'opzione di concessione e senza alcuna restrizione di riga. Devi avere accesso a tutte le righe.

  • Se SELECT concedi l'opzione di concessione e il filtraggio delle colonne a un principale del tuo account, tale principale deve specificare il filtraggio delle colonne per le stesse colonne o per un sottoinsieme delle colonne concesse quando concede a un altro principale. Se concedi l'opzione SELECT di concessione e il filtraggio delle colonne a un account esterno, l'amministratore del data lake dell'account esterno può concedere SELECT tutte le colonne a un altro responsabile del proprio account. Tuttavia, anche se SELECT su tutte le colonne, tale principale avrà visibilità solo sulle colonne concesse all'account esterno.

  • Non è possibile applicare il filtraggio delle colonne sulle chiavi di partizione.

  • A un principale con l'SELECTautorizzazione su un sottoinsieme di colonne di una tabella non può essere concessa l'INSERTautorizzazioneALTER,, DROPDELETE, o per quella tabella. Per un'entità principale con l'INSERTautorizzazioneALTER, DROPDELETE, o su una tabella, se si concede l'SELECTautorizzazione con il filtro delle colonne, l'autorizzazione non ha alcun effetto.

Le note e le restrizioni seguenti si applicano al filtraggio delle colonne annidate:

  • È possibile includere o escludere cinque livelli di campi nidificati in un filtro dati.

    Col1.Col1_1.Col1_1_1.Col1_1_1_1.Col1_1_1_1_1_1

  • Non è possibile applicare il filtraggio delle colonne ai campi annidati all'interno delle colonne delle partizioni.

  • Se lo schema della tabella contiene un nome di colonna di primo livello («cliente»).» address») che presenta lo stesso schema di rappresentazione di un campo nidificato all'interno di un filtro dati (una colonna nidificata con un nome di colonna di primo livello customer e un nome di campo nidificato address viene specificata come "customer"."address" in un filtro dati), non è possibile specificare in modo esplicito l'accesso alla colonna di primo livello o al campo nidificato perché entrambi sono rappresentati utilizzando lo stesso modello negli elenchi di inclusione/esclusione. Questo è ambiguo e Lake Formation non può risolvere se stai specificando la colonna di primo livello o il campo annidato.

  • Se una colonna di primo livello o un campo nidificato contiene una doppia virgoletta all'interno del nome, devi includere una seconda virgoletta quando specifichi l'accesso a un campo nidificato all'interno dell'elenco di inclusione ed esclusione di un filtro di celle di dati.

    Esempio di nome di colonna nidificata con virgolette doppie: a.b.double"quote

    Esempio di rappresentazione di una colonna annidata all'interno di un filtro dati: "a"."b"."double""quote"

Limitazioni del filtraggio a livello di cella

Tieni presente le seguenti note e restrizioni per il filtraggio a livello di riga e di cella.

  • La sicurezza a livello di cella non è supportata nelle colonne annidate, nelle viste e nei link alle risorse.

  • Tutte le espressioni supportate nelle colonne di primo livello sono supportate anche nelle colonne nidificate. Tuttavia, è necessario fare riferimento ai campi nidificati nelle colonne di partizione quando si definiscono NOTespressioni nidificate a livello di riga.

  • La sicurezza a livello di cella è disponibile in tutte le regioni quando si utilizza la versione 3 del motore Athena o Amazon Redshift Spectrum. Per altri servizi, la sicurezza a livello di cella è disponibile solo nelle regioni menzionate in. Regioni supportate

  • Le istruzioni SELECT INTO non sono supportate.

  • I array tipi di map dati e non sono supportati nelle espressioni di filtro di riga. Il tipo di struct dati è supportato.

  • Non esiste un limite al numero di filtri di dati che possono essere definiti in una tabella, ma esiste un limite di 100 SELECT autorizzazioni di filtro dei dati per un singolo principale su una tabella.

  • Il numero massimo di filtri di dati che possono essere inclusi in una concessione su una tabella è 100.

  • Per applicare un filtro dati con un'espressione di filtro di riga, è necessario disporre SELECT dell'opzione grant su tutte le colonne della tabella. Questa restrizione non si applica agli amministratori degli account esterni quando la concessione è stata concessa all'account esterno.

  • Se un principale è membro di un gruppo e sia al principale che al gruppo vengono concesse le autorizzazioni su un sottoinsieme di righe, i permessi di riga effettivi del principale sono l'unione dei permessi del principale e dei permessi del gruppo.

  • I seguenti nomi di colonna sono limitati in una tabella per il filtraggio a livello di riga e di cella:

    • ctid

    • oid

    • xmin

    • cmin

    • xmax

    • cmax

    • tableoide

    • inserire xid

    • elimina xid

    • importoide

    • ID univoco per gatti rossi

  • Se si applica l'espressione di filtro composta da tutte le righe su una tabella contemporaneamente ad altre espressioni di filtro con predicati, l'espressione composta da tutte le righe prevarrà su tutte le altre espressioni di filtro.

  • Quando le autorizzazioni su un sottoinsieme di righe vengono concesse a un AWS account esterno e l'amministratore del data lake dell'account esterno concede tali autorizzazioni a un principale in quell'account, il predicato di filtro effettivo del principale è l'intersezione tra il predicato dell'account e qualsiasi predicato concesso direttamente al principale.

    Ad esempio, se l'account dispone delle autorizzazioni di riga con il predicato dept='hr' e al principale è stata concessa separatamente l'autorizzazione percountry='us', l'account principale ha accesso solo alle righe con dept='hr' ecountry='us'.

Per ulteriori informazioni sul filtraggio a livello di cella, vedere. Filtraggio dei dati e sicurezza a livello di cella in Lake Formation