

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

# Creare tabelle basate su set di dati crittografati in Amazon S3
<a name="creating-tables-based-on-encrypted-datasets-in-s3"></a>

Athena può leggere e scrivere su tabelle i cui set di dati sottostanti sono o SSE-S3 crittografati SSE-KMS. CSE-KMS A seconda dell'opzione di crittografia utilizzata per i dati della tabella e del tipo di query eseguite, potrebbe essere necessario specificare alcune proprietà di tabella aggiuntive per leggere e scrivere dati crittografati.

## Lettura di tabelle SSE-S3/SSE-KMS crittografate
<a name="reading-sse-s3-sse-kms-encrypted-tables"></a>

Non è necessario specificare proprietà di tabella aggiuntive durante la creazione della tabella per leggere i set di dati SSE-S3/SSE-KMS crittografati. Amazon S3 gestisce automaticamente la decrittografia degli oggetti SSE.

## CSE-KMS Lettura di tabelle crittografate
<a name="reading-cse-kms-encrypted-tables"></a>

È possibile specificare due diversi set di proprietà della tabella per consentire ad Athena di leggere set di dati CSE-KMS crittografati,
+ Utilizzo delle proprietà `encryption_option` e della `kms_key` tabella (consigliato)
+ Utilizzo della proprietà `has_encrypted_data` table

**Importante**  
Se utilizzi Amazon EMR insieme a EMRFS per caricare file Parquet CSE-KMS crittografati, devi disabilitare i caricamenti multiparte impostando su. `fs.s3n.multipart.uploads.enabled` `false` Se non si effettua questa operazione, Athena non sarà in grado di determinare la lunghezza del file Parquet e si verificherà un errore **HIVE\_CANNOT\_OPEN\_SPLIT**. Per ulteriori informazioni, consulta [Configurazione del caricamento in più parti per Amazon S3](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-upload-s3.html#Config_Multipart) nella *Guida alla gestione di Amazon EMR*.

### Utilizzo delle proprietà delle tabelle encryption\_option e kms\_key
<a name="using-encryption-option-and-kms-key-table-properties"></a>

In un'istruzione [CREATE TABLE](create-table.md), utilizzate una `TBLPROPERTIES` clausola che specifica `encryption_option='CSE_KMS'` e, come nell'esempio seguente. `kms_key='aws_kms_key_arn'`

```
CREATE EXTERNAL TABLE 'my_encrypted_data' (
   `n_nationkey` int,
   `n_name` string,
   `n_regionkey` int,
   `n_comment` string)
ROW FORMAT SERDE
   'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
LOCATION
   's3://amzn-s3-demo-bucket/{{folder_with_my_encrypted_data}}/'
TBLPROPERTIES (
    'encryption_option' = 'CSE_KMS',
    'kms_key' = 'arn:aws:kms:us-east-1:012345678901:key/my_kms_key')
```

Quando queste proprietà sono configurate,
+ Athena è in grado di leggere oggetti CSE-KMS crittografati creati dai client di crittografia Amazon S3 V1, V2 o V3.
+ Athena utilizzerà la AWS KMS chiave di accesso `kms_key` per decriptare i dati. CSE-KMS Se qualche oggetto è stato crittografato con una AWS KMS chiave diversa, la query avrà esito negativo.
+ Athena è ancora in grado di leggere SSE-S3 e SSE-KMS crittografare oggetti crittografati, sebbene non sia consigliabile combinare oggetti crittografati lato server e lato client.

### Utilizzo della proprietà della tabella has\_encrypted\_data
<a name="using-has-encrypted-data-table-property"></a>

In un'istruzione [CREATE TABLE](create-table.md), usa una clausola `TBLPROPERTIES` che specifica `has_encrypted_data='true'`, come nel seguente esempio.

```
CREATE EXTERNAL TABLE 'my_encrypted_data' (
   `n_nationkey` int,
   `n_name` string,
   `n_regionkey` int,
   `n_comment` string)
ROW FORMAT SERDE
   'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
LOCATION
   's3://amzn-s3-demo-bucket/{{folder_with_my_encrypted_data}}/'
TBLPROPERTIES (
    'has_encrypted_data' = 'true')
```

Quando viene specificata la proprietà della tabella has\_encrypted\_data,
+ Athena può leggere solo oggetti CSE-KMS crittografati creati dal client di crittografia Amazon S3 V1.
+ Athena dedurrà la AWS KMS chiave utilizzata per crittografare l' CSE-KMS oggetto dai metadati dell'oggetto e quindi utilizzerà quella chiave per decrittografare l'oggetto.
+ Athena è ancora in grado di leggere SSE-S3 e SSE-KMS crittografare oggetti crittografati, sebbene non sia consigliabile combinare oggetti crittografati lato server e lato client.

**Nota**  
Quando `encryption_option` e `kms_key` vengono specificati insieme`has_encrypted_data`, le proprietà `encryption_option` and `kms_key` table hanno la precedenza e vengono ignorate. `has_encrypted_data`

Quando si utilizza la console Athena per [creare una tabella utilizzando un modulo](data-sources-glue-manual-table.md) e specificare la posizione della tabella, selezionare l'opzione **Set di dati crittografati** per aggiungere la `has_encrypted_data='true'` proprietà alla tabella.

![Seleziona Set di dati crittografati per aggiungere un modello di tabella](http://docs.aws.amazon.com/it_it/athena/latest/ug/images/add-table-form-encrypted-option.png)


Nell'elenco delle tabelle della console Athena, le tabelle CSE-KMS crittografate `has_encrypted_data='true'` visualizzano un'icona a forma di chiave.

![Icona della tabella crittografata](http://docs.aws.amazon.com/it_it/athena/latest/ug/images/tables-list-encrypted-table-icon.png)


## Scrittura di dati crittografati SSE-S3/SSE-KMS/CSE-KMS
<a name="writing-sse-s3-sse-kms-cse-kms-encrypted-data"></a>

Per impostazione predefinita, i file di dati appena inseriti verranno crittografati utilizzando la configurazione di crittografia dei risultati delle query specificata nel gruppo di lavoro Athena. Per scrivere dati di tabella con una configurazione di crittografia diversa rispetto alla configurazione di crittografia dei risultati della query, sarà necessario aggiungere alcune proprietà di tabella aggiuntive.

In un'istruzione [CREATE TABLE](create-table.md), utilizzate una `TBLPROPERTIES` clausola che specifichi `encryption_option='SSE_S3 | SSE_KMS | CSE_KMS'` e`kms_key='aws_kms_key_arn'`, come nell'esempio seguente.

```
CREATE EXTERNAL TABLE 'my_encrypted_data' (
   `n_nationkey` int,
   `n_name` string,
   `n_regionkey` int,
   `n_comment` string)
ROW FORMAT SERDE
   'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
LOCATION
   's3://amzn-s3-demo-bucket/{{folder_with_my_encrypted_data}}/'
TBLPROPERTIES (
    'encryption_option' = 'SSE_KMS',
    'kms_key' = 'arn:aws:kms:us-east-1:012345678901:key/my_kms_key')
```

Tutti i dati appena inseriti verranno crittografati utilizzando la configurazione di crittografia specificata dalle proprietà della tabella anziché utilizzare la configurazione di crittografia dei risultati della query nel gruppo di lavoro.

## Considerazioni e limitazioni
<a name="considerations-and-limitations"></a>

Durante la scrittura e la lettura di set di dati crittografati, tenete presente i seguenti punti.
+ Le proprietà `has_encrypted_data``encryption_option`, e `kms_key` table possono essere utilizzate solo con le tabelle Hive.
+ Quando si crea una tabella con dati CSE-KMS crittografati, si consiglia di assicurarsi che tutti i dati siano crittografati con la stessa AWS KMS chiave.
+ Quando si crea una tabella con dati CSE-KMS crittografati, si consiglia di assicurarsi che tutti i dati siano CSE-KMS crittografati e che non vi sia una combinazione di oggetti non CSE-KMS crittografati CSE-KMS e oggetti non crittografati.