

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création de tables basées sur des jeux de données chiffrés dans Amazon S3
<a name="creating-tables-based-on-encrypted-datasets-in-s3"></a>

Athena peut lire et écrire dans des tables dont les ensembles de données sous-jacents sont SSE-S3 SSE-KMS chiffrés. CSE-KMS En fonction de l'option de chiffrement utilisée pour les données de la table et du type de requêtes exécutées, il est possible que vous deviez spécifier des propriétés de table supplémentaires afin de lire et d'écrire des données chiffrées.

## Lecture de tables SSE-S3/SSE-KMS chiffrées
<a name="reading-sse-s3-sse-kms-encrypted-tables"></a>

Aucune propriété de table supplémentaire n'a besoin d'être spécifiée lors de la création de la table pour lire les ensembles de données SSE-S3/SSE-KMS chiffrés. Amazon S3 gère le déchiffrement automatique des objets SSE.

## Lecture de tables CSE-KMS chiffrées
<a name="reading-cse-kms-encrypted-tables"></a>

Il existe deux ensembles différents de propriétés de table qui peuvent être spécifiés afin qu'Athena puisse lire les ensembles de données CSE-KMS chiffrés,
+ Utilisation des propriétés du `kms_key` tableau `encryption_option` et (recommandé)
+ Utilisation de la propriété `has_encrypted_data` table

**Important**  
Si vous utilisez Amazon EMR avec EMRFS pour télécharger des fichiers Parquet CSE-KMS chiffrés, vous devez désactiver les téléchargements partitionnés en réglant sur. `fs.s3n.multipart.uploads.enabled` `false` Sinon, Athena n'est pas en mesure de déterminer la longueur des fichiers Parquet et une erreur **HIVE\_CANNOT\_OPEN\_SPLIT** se produit. Pour plus d'informations, consultez [Configuration d'un chargement partitionné pour Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-upload-s3.html#Config_Multipart) dans le *Guide de gestion Amazon EMR*.

### Utilisation des propriétés des tables encryption\_option et kms\_key
<a name="using-encryption-option-and-kms-key-table-properties"></a>

Dans une instruction [CREATE TABLE](create-table.md), utilisez une `TBLPROPERTIES` clause qui spécifie `encryption_option='CSE_KMS'` et`kms_key='aws_kms_key_arn'`, comme dans l'exemple suivant.

```
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')
```

Lorsque ces propriétés sont configurées,
+ Athena peut lire les objets CSE-KMS chiffrés créés par les clients de chiffrement Amazon S3 V1, V2 ou V3.
+ Athéna utilisera la AWS KMS clé `kms_key` pour déchiffrer les données. CSE-KMS Si des objets ont été chiffrés avec une AWS KMS clé différente, la requête échouera.
+ Athena peut toujours lire SSE-S3 et SSE-KMS chiffrer des objets, mais il n'est pas recommandé de mélanger des objets chiffrés côté serveur et côté client.

### Utilisation de la propriété de table has\_encrypted\_data
<a name="using-has-encrypted-data-table-property"></a>

Dans une instruction [CREATE TABLE](create-table.md) (CRÉER UNE TABLE), utilisez une clause `TBLPROPERTIES` qui spécifie `has_encrypted_data='true'`, comme dans l'exemple ci-dessous.

```
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')
```

Lorsque la propriété de table has\_encrypted\_data est spécifiée,
+ Athena ne peut lire que les objets CSE-KMS chiffrés créés par le client de chiffrement Amazon S3 V1.
+ Athena déduira la AWS KMS clé utilisée pour chiffrer l'objet à partir des métadonnées de l' CSE-KMS objet, puis utilisera cette clé pour déchiffrer l'objet.
+ Athena peut toujours lire SSE-S3 et SSE-KMS chiffrer des objets, mais il n'est pas recommandé de mélanger des objets chiffrés côté serveur et côté client.

**Note**  
Lorsque `encryption_option` et `kms_key` sont spécifiés à côté`has_encrypted_data`, les propriétés de la `kms_key` table `encryption_option` et sont prioritaires et `has_encrypted_data` sont ignorées.

Lorsque vous utilisez la console Athena pour [créer une table à l'aide d'un formulaire](data-sources-glue-manual-table.md) et que vous spécifiez l'emplacement de la table, sélectionnez l'option **Ensemble de données chiffrées** pour ajouter la `has_encrypted_data='true'` propriété à la table.

![Sélectionnez Encrypted data set (Jeu de données chiffrées) dans le formulaire d'ajout de table.](http://docs.aws.amazon.com/fr_fr/athena/latest/ug/images/add-table-form-encrypted-option.png)


Dans la liste des tables de la console Athena, les tables CSE-KMS chiffrées `has_encrypted_data='true'` affichent une icône en forme de clé.

![Icône de table chiffrée](http://docs.aws.amazon.com/fr_fr/athena/latest/ug/images/tables-list-encrypted-table-icon.png)


## Écrire des données SSE-S3/SSE-KMS/CSE-KMS chiffrées
<a name="writing-sse-s3-sse-kms-cse-kms-encrypted-data"></a>

Par défaut, les fichiers de données nouvellement insérés seront chiffrés selon la configuration de chiffrement des résultats de requête spécifiée dans le groupe de travail Athena. Pour écrire des données de table avec une configuration de chiffrement différente de celle des résultats de la requête, vous devez ajouter des propriétés de table supplémentaires.

Dans une instruction [CREATE TABLE](create-table.md), utilisez une `TBLPROPERTIES` clause qui spécifie `encryption_option='SSE_S3 | SSE_KMS | CSE_KMS'` et`kms_key='aws_kms_key_arn'`, comme dans l'exemple suivant.

```
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')
```

Toutes les données nouvellement insérées seront chiffrées à l'aide de la configuration de chiffrement spécifiée par les propriétés de la table plutôt qu'à l'aide de la configuration de chiffrement des résultats de la requête dans le groupe de travail.

## Considérations et restrictions
<a name="considerations-and-limitations"></a>

Lorsque vous écrivez et lisez des ensembles de données chiffrés, tenez compte des points suivants.
+ Les propriétés`has_encrypted_data`,`encryption_option`, et de `kms_key` table ne peuvent être utilisées qu'avec les tables Hive.
+ Lorsque vous créez une table contenant des données CSE-KMS chiffrées, nous vous recommandons de vous assurer que toutes les données sont chiffrées avec la même AWS KMS clé.
+ Lorsque vous créez une table contenant des données CSE-KMS chiffrées, nous vous recommandons de vous assurer que toutes les données CSE-KMS sont chiffrées et qu'il n'y a pas de mélange d'objets CSE-KMS chiffrés CSE-KMS et d'objets non chiffrés.