

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

# Gestione dei filtri di dati
<a name="managing-filters"></a>

Per implementare la sicurezza a livello di colonna, riga e cella, puoi creare e gestire filtri di dati. Ogni filtro di dati appartiene a una tabella Data Catalog. È possibile creare più filtri di dati per una tabella e quindi utilizzarne uno o più per concedere le autorizzazioni sulla tabella. È inoltre possibile definire e applicare filtri di dati su colonne nidificate con `struct` tipi di dati che consentono agli utenti di accedere solo alle sottostrutture delle colonne nidificate.

È necessaria `SELECT` l'autorizzazione con l'opzione di concessione per creare o visualizzare un filtro dati. Per consentire ai responsabili del tuo account di visualizzare e utilizzare un filtro dati, puoi concedere l'`DESCRIBE`autorizzazione su di esso.

**Nota**  
Lake Formation non supporta la concessione `Describe` dell'autorizzazione su un filtro dati, che viene condiviso da un altro account.

Puoi gestire i filtri dei dati utilizzando la AWS Lake Formation console, l'API o AWS Command Line Interface (AWS CLI).

Per informazioni sui filtri di dati, consulta [Filtri di dati in Lake Formation](data-filtering.md#data-filters-about)

# Creazione di un filtro dati
<a name="creating-data-filters"></a>

È possibile creare uno o più filtri di dati per ogni tabella del Data Catalog.

**Per creare un filtro dati per una tabella Data Catalog (console)**

1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

   Accedi come amministratore del data lake, proprietario della tabella di destinazione o principale che dispone dell'autorizzazione Lake Formation sulla tabella di destinazione.

1. Nel riquadro di navigazione, in **Catalogo dati**, scegli **Filtri dati**.

1. Nella pagina **Filtri dati**, scegli **Crea nuovo filtro**.

1. Nella finestra di dialogo **Crea filtro dati**, inserisci le seguenti informazioni:
   + Nome del filtro dati 
   + Database di destinazione: specifica il database che contiene la tabella.
   + Tabella di destinazione 
   + Accesso a livello di colonna: lascia questa impostazione su **Accesso a tutte le colonne per** specificare solo il filtraggio delle righe. Scegliete **Includi colonne** o **Escludi colonne** per specificare il filtraggio di colonne o celle, quindi specificate le colonne da includere o escludere.

     Colonne nidificate: se applichi il filtro a una tabella che contiene colonne nidificate, puoi specificare in modo esplicito le sottostrutture delle colonne struct nidificate all'interno di un filtro dati. 

     Quando concedi l'autorizzazione SELECT a un principale su questo filer, il principale che esegue la seguente query vedrà solo i dati relativi e non. `customer.customerName` `customer.customerId`

     ```
     SELECT "customer" FROM "example_db"."example_table";
     ```  
![\[Column-level access settings with options to include specific columns and filter rows.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/nested-column-filter.png)

      Quando concedi le autorizzazioni alla `customer` colonna, il principale riceve l'accesso alla colonna e ai campi annidati sotto la colonna (`customerName`e). `customerID` 
   + Espressione di filtro di riga: immettere un'espressione di filtro per specificare il filtraggio di righe o celle. Per i tipi di dati e gli operatori supportati, vedere[Supporto PartiQL nelle espressioni di filtro di riga](partiql-support.md). Scegli **Accesso a tutte le righe** per concedere l'accesso a tutti.

     È possibile includere strutture di colonne parziali provenienti da colonne nidificate in un'espressione di filtro di riga per filtrare le righe che contengono un valore specifico.

     Quando a un'entità vengono concesse le autorizzazioni per una tabella con un'espressione `Select * from example_nestedtable where customer.customerName <>'John'` di filtro di riga e l'accesso a **livello di colonna** è impostato su **Accesso a tutte le colonne**, i risultati della query mostrano solo le righe il cui risultato è true. `customerName <>'John'`

   La schermata seguente mostra un filtro dati che implementa il filtraggio delle celle. Nelle interrogazioni sulla `orders` tabella, nega l'accesso alla `customer_name` colonna e mostra solo le righe che contengono «pharma» nella colonna. `product_type`  
![\[La finestra del filtro dei dati contiene i seguenti campi, disposti verticalmente: Nome del filtro dati; Database di destinazione; Tabella di destinazione; Gruppo di pulsanti di opzione con le opzioni Accesso a tutte le colonne, Includi colonne ed Escludi colonne; Seleziona colonne (elenco a discesa); Espressione del filtro di riga (casella di testo multilinea). L'opzione Escludi colonne è selezionata, la colonna customer_name è selezionata per l'esclusione e il campo di espressione del filtro Row contiene 'product_type='pharma'.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/data-filter-sample-pharma.png)

1. Scegli **Create Filter** (Crea filtro).

**Per creare un filtro dati con politiche di filtro cellulare su un campo annidato**

 Questa sezione utilizza lo schema di esempio seguente per mostrare come creare un filtro di celle di dati: 

```
[
    { name: "customer", type: "struct<customerId:string,customerName:string>" },
    { name: "customerApplication", type: "struct<appId:string>" },
    { name: "product", type: "struct<offer:struct<prodId:string,listingId:string>,type:string>" },
    { name: "purchaseId", type: "string" },
]
```

1. Nella pagina **Crea un filtro dati**, inserisci un nome per il filtro dati.

1.  Successivamente, utilizza il menu a discesa per scegliere il nome del database e il nome della tabella. 

1. Nella sezione **Accesso a livello di colonna**, scegli Colonne incluse e seleziona una colonna nidificata (). `customer.customerName`

1. **Nella sezione **Accesso a livello di riga, scegli l'opzione Accesso** a tutte le righe.**

1. Scegli **Create Filter** (Crea filtro).

   Quando concedi `SELECT` l'autorizzazione per questo filtro, il principale ottiene l'accesso a tutte le righe della `customerName` colonna.

1. Successivamente, definisci un altro filtro dati per lo stesso database/tabella.

1. Nella sezione **Accesso a livello di colonna**, scegli Colonne incluse e seleziona un'altra colonna nidificata (). `customer.customerid`

1. Nella sezione **Accesso a livello di riga**, scegliete **Filtra righe e immettete un'espressione di filtro** di **riga** (). `customer.customerid <> 5`

1. Scegli **Create Filter** (Crea filtro).

   Quando concedete `SELECT` l'autorizzazione per questo filtro, il principale riceve l'accesso a tutte le righe e ai `customerId` campi ad eccezione della cella in cui il valore è 5 nella `customerId` colonna. `customerName`

# Concessione delle autorizzazioni per il filtro dei dati
<a name="granting-filter-perms"></a>

Puoi concedere le autorizzazioni`SELECT`, `DESCRIBE` e `DROP` Lake Formation sui filtri di dati ai responsabili.

All'inizio, solo tu puoi visualizzare i filtri di dati che crei per una tabella. Per consentire a un altro principale di visualizzare un filtro di dati e concedere le autorizzazioni di Data Catalog con il filtro dati, devi:
+ `SELECT`Concedi una tabella al principale con l'opzione di concessione e applica il filtro dati alla concessione.
+ Concedi l'`DROP`autorizzazione `DESCRIBE` o l'autorizzazione sul filtro dati al responsabile.

È possibile concedere l'`SELECT`autorizzazione a un AWS account esterno. Un amministratore del data lake di quell'account può quindi concedere tale autorizzazione ad altri responsabili dell'account. Quando si concede a un account esterno, è necessario includere l'opzione di concessione in modo che l'amministratore dell'account esterno possa trasferire ulteriormente l'autorizzazione agli altri utenti dell'account. his/her Quando concedi la concessione a un titolare del tuo account, la concessione con l'opzione di concessione è facoltativa.

Puoi concedere e revocare le autorizzazioni sui filtri di dati utilizzando la AWS Lake Formation console, l'API o (). AWS Command Line Interface AWS CLI

------
#### [ Console ]

1. Accedi a Console di gestione AWS e apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Nel pannello di navigazione, in **Autorizzazioni**, scegli **Autorizzazioni Data lake**.

1. **Nella pagina **Autorizzazioni**, nella sezione **Autorizzazioni dati, scegli** Concedi.**

1. Nella pagina **Concedi le autorizzazioni per i dati**, scegli i principali a cui concedere le autorizzazioni. 

1. **Nella sezione LF-Tags o risorse del catalogo, scegliete Risorse del catalogo dati denominate.** Scegliete quindi il database, la tabella e il filtro dati per i quali desiderate concedere le autorizzazioni.  
![\[\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/grant-data-filter-perms-step2.png)

1. Nella sezione **Autorizzazioni del filtro dati**, scegli le autorizzazioni che desideri concedere ai principali selezionati.  
![\[\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/grant-perms-on-filters.png)

------
#### [ AWS CLI ]
+ Inserisci un comando. `grant-permissions` Specificate `DataCellsFilter` per l'`resource`argomento e specificate `DESCRIBE` o `DROP` per l'`Permissions`argomento e, facoltativamente, per l'`PermissionsWithGrantOption`argomento.

  L'esempio seguente concede l'opzione `DESCRIBE` di concessione all'utente `datalake_user1` sul filtro dati`restrict-pharma`, che appartiene alla `orders` tabella del `sales` database dell' AWS account 1111-2222-3333.

  ```
  aws lakeformation grant-permissions --cli-input-json file://grant-params.json
  ```

  Di seguito è riportato il contenuto del file. `grant-params.json`

  ```
  {
      "Principal": {"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1"},
      "Resource": {
          "DataCellsFilter": {
              "TableCatalogId": "111122223333",
              "DatabaseName": "sales",
              "TableName": "orders",
              "Name": "restrict-pharma"
          }
      },
      "Permissions": ["DESCRIBE"],
      "PermissionsWithGrantOption": ["DESCRIBE"]
  }
  ```

------

# Concessione delle autorizzazioni relative ai dati fornite dai filtri di dati
<a name="granting-data-perms-for-filters"></a>

I filtri di dati rappresentano un sottoinsieme di dati all'interno di una tabella. Per fornire l'accesso ai dati ai principali, è necessario concedere `SELECT` le autorizzazioni a tali responsabili. Con questa autorizzazione i responsabili possono:
+ Visualizza il nome effettivo della tabella nell'elenco delle tabelle condivise con il loro account.
+ Crea filtri di dati sulla tabella condivisa e concedi le autorizzazioni ai relativi utenti su tali filtri di dati.

------
#### [ Console ]

**Per concedere le autorizzazioni SELECT**

1. Vai alla pagina **Autorizzazioni** nella console di Lake Formation, quindi scegli **Concedi**.  
![\[\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/permissions-grant-action.png)

1. Seleziona i principali a cui desideri fornire l'accesso e seleziona **Named data catalog resources**.  
![\[\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/grant-data-filter-perms-step2.png)

1. ****Per fornire l'accesso ai dati rappresentati dal filtro, scegli Seleziona in Autorizzazioni del filtro dati.****  
![\[\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/grant-data-filter-perms-step3.png)

------
#### [ CLI ]

Inserisci `grant-permissions` un comando. `DataCellsFilter`Specificate l'argomento risorsa e specificate `SELECT` l'argomento Autorizzazioni. 

L'esempio seguente concede `SELECT` l'opzione grant all'utente `datalake_user1` sul filtro dati`restrict-pharma`, che appartiene alla `orders` tabella del `sales` database in. Account AWS `1111-2222-3333` 

```
aws lakeformation grant-permissions --cli-input-json file://grant-params.json 
```

Di seguito sono riportati i contenuti del file`grant-params.json`. 

```
{
    "Principal": {
        "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1"
    },
    "Resource": {
        "DataCellsFilter": {
            "TableCatalogId": "111122223333", 
            "DatabaseName": "sales", 
            "TableName": "orders", 
            "Name": "restrict-pharma"
        }
    },
    "Permissions": ["SELECT"]
}
```

------

# Visualizzazione dei filtri di dati
<a name="view-data-filters"></a>

Puoi utilizzare la console Lake Formation o AWS CLI l'API Lake Formation per visualizzare i filtri dei dati. 

Per visualizzare i filtri di dati, devi essere un amministratore di Data Lake o disporre delle autorizzazioni richieste sui filtri di dati.

------
#### [ Console ]

1. Accedi a Console di gestione AWS e apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Nel pannello di navigazione, in **Catalogo dati**, scegli **Filtri dati**.

   La pagina mostra i filtri di dati a cui hai accesso.  
![\[La pagina Filtri dati mostra i filtri di dati disponibili con le seguenti colonne: nome del filtro, tabella, database e ID del catalogo delle tabelle. La schermata mostra un singolo filtro di dati con i seguenti valori: test-df, cloudtrailtest_cloudtrail, lakeformation_cloudtrail, ID account redatto. Sopra la tabella ci sono quattro pulsanti (da sinistra a destra): Refresh/reload, View (in grigio), Delete (in grigio) e «Crea nuovo filtro». C'è anche un campo di ricerca, che è vuoto.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/list-data-filters.jpg)

1. Per visualizzare i dettagli del filtro dati, scegli il filtro dati, quindi scegli Visualizza. Viene visualizzata una nuova finestra con informazioni dettagliate sul filtro dati.  
![\[La finestra «Visualizza filtro dati» mostra informazioni aggiuntive sul filtro dati selezionato. Le informazioni visualizzate includono il nome, il database, la tabella, l'impostazione di accesso a livello di colonna, l'espressione del filtro di riga e le colonne.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/list-data-filters-details.jpg)

------
#### [ AWS CLI ]

Immettete un `list-data-cells-filter` comando e specificate una risorsa della tabella.

L'esempio seguente elenca i filtri di dati per la `cloudtrailtest_cloudtrail` tabella.

```
aws lakeformation list-data-cells-filter --table '{ "CatalogId":"123456789012", 
"DatabaseName":"lakeformation_cloudtrail", "Name":"cloudtrailtest_cloudtrail"}'
```

------
#### [ API/SDK ]

Utilizzate l'`ListDataCellsFilter`API e specificate una risorsa per la tabella.

L'esempio seguente usa Python per elencare i primi 20 filtri di dati per la `myTable` tabella.

```
response = client.list_data_cells_filter(
    Table = {
        'CatalogId': '111122223333',
        'DatabaseName': 'mydb',
        'Name': 'myTable'
    },
    MaxResults=20
)
```

------

# Elenco delle autorizzazioni per il filtro dei dati
<a name="listing-filter-perms"></a>

Puoi utilizzare la console Lake Formation per visualizzare le autorizzazioni concesse sui filtri di dati. 

Per visualizzare le autorizzazioni su un filtro dati, devi essere un amministratore di Data Lake o disporre delle autorizzazioni richieste sul filtro dati.

------
#### [ Console ]

1. Accedi a Console di gestione AWS e apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Nel pannello di navigazione, sotto **Autorizzazioni, scegli Autorizzazioni** **dati**.

1. **Nella pagina **Autorizzazioni dati**, fai clic o tocca nel campo di ricerca e nel menu **Proprietà** scegli Tipo di risorsa.**

1. Nel menu **Tipo di risorsa**, scegli **Tipo di risorsa: filtro delle celle di dati**.

   Sono elencati i filtri di dati per i quali disponi delle autorizzazioni. **Potrebbe essere necessario scorrere orizzontalmente per visualizzare le colonne **Autorizzazioni** e Concedibili.**  
![\[La pagina Autorizzazioni dati visualizza una tabella di autorizzazioni con le seguenti colonne: Principal, Tipo di risorsa, Database, Tabella, Risorsa, Catalogo e Autorizzazioni. La colonna Tipo di risorsa mostra il «Filtro delle celle di dati» in tutte e quattro le righe. Le autorizzazioni per la prima e la seconda riga sono Describe, Drop e Select. Le autorizzazioni per la terza riga sono Descrivi. Sopra la tabella sono presenti un pulsante Cancella filtro e un riquadro che indica che la ricerca corrente è per Tipo di risorsa: Filtro per celle di dati. Sopra di essi c'è un campo di ricerca (testo) e sopra ci sono i pulsanti Aggiorna, Revoca e Concedi.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/data-permissions-cell-filters.png)

------
#### [ AWS CLI ]
+ Immettete un comando. `list-permissions` Specificate `DataCellsFilter` per l'`resource`argomento e specificate `DESCRIBE` o `DROP` per l'`Permissions`argomento e, facoltativamente, per l'`PermissionsWithGrantOption`argomento.

  L'esempio seguente elenca `DESCRIBE` le autorizzazioni con l'opzione grant sul filtro dati. `restrict-pharma` I risultati sono limitati alle autorizzazioni concesse per il principale `datalake_user1` e la `orders` tabella del `sales` database nell' AWS account 1111-2222-3333.

  ```
  aws lakeformation list-permissions --cli-input-json file://list-params.json
  ```

  Di seguito sono riportati i contenuti del file. `grant-params.json`

  ```
  {
      "Principal": {"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1"},
      "Resource": {
          "DataCellsFilter": {
              "TableCatalogId": "111122223333",
              "DatabaseName": "sales",
              "TableName": "orders",
              "Name": "restrict-pharma"
          }
      },
      "Permissions": ["DESCRIBE"],
      "PermissionsWithGrantOption": ["DESCRIBE"]
  }
  ```

------