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
Athena peut lire et écrire dans des tables dont les ensembles de données sous-jacents sont chiffrés par SSE-S3, SSE-KMS ou 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 chiffrées SSE-S3/SSE-KMS
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 chiffrés SSE-S3/SSE-KMS. Amazon S3 gère le déchiffrement automatique des objets SSE.
Lecture de tables chiffrées CSE-KMS
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 chiffrés CSE-KMS,
-
Utilisation des propriétés du
kms_keytableauencryption_optionet (recommandé) -
Utilisation de la propriété
has_encrypted_datatable
Important
Si vous utilisez Amazon EMR avec EMRFS pour télécharger des fichiers Parquet chiffrés au format CSE-KMS, 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) dans le Guide de gestion Amazon EMR.
Utilisation des propriétés des tables encryption_option et kms_key
Dans une instruction CREATE TABLE, utilisez une TBLPROPERTIES clause qui spécifie encryption_option='CSE_KMS' etkms_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 chiffrés CSE-KMS créés par les clients de chiffrement Amazon S3 V1, V2 ou V3.
-
Athena utilisera la AWS KMS clé pour déchiffrer les données
kms_keyCSE-KMS. Si des objets ont été chiffrés avec une AWS KMS clé différente, la requête échouera. -
Athena peut toujours lire les objets chiffrés SSE-S3 et SSE-KMS, 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
Dans une instruction CREATE TABLE (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 chiffrés CSE-KMS créés par le client de chiffrement Amazon S3 V1.
-
Athena déduira la AWS KMS clé utilisée pour chiffrer l'objet CSE-KMS à partir des métadonnées de l'objet, puis utilisera cette clé pour déchiffrer l'objet.
-
Athena peut toujours lire les objets chiffrés SSE-S3 et SSE-KMS, 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 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.
Dans la liste des tables de la console Athena, les tables chiffrées par CSE-KMS has_encrypted_data='true' affichent une icône en forme de clé.
Écrire des données chiffrées SSE-S3/SSE-KMS/CSE-KMS
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, utilisez une TBLPROPERTIES clause qui spécifie encryption_option='SSE_S3 | SSE_KMS | CSE_KMS' etkms_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
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 dekms_keytable ne peuvent être utilisées qu'avec les tables Hive. -
Lorsque vous créez une table contenant des données chiffrées CSE-KMS, 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 chiffrées au format CSE-KMS, nous vous recommandons de vous assurer que toutes les données sont chiffrées au format CSE-KMS et qu'il n'existe pas de combinaison d' non-CSE-KMSobjets chiffrés au format CSE-KMS.