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 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
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
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_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 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) 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 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_keypour 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
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 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 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 CSE-KMS chiffrées has_encrypted_data='true' affichent une icône en forme de clé.
Écrire des données SSE-S3/SSE-KMS/CSE-KMS chiffrées
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 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.