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
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
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
È 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_optione dellakms_keytabella (consigliato) -
Utilizzo della proprietà
has_encrypted_datatable
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 nella Guida alla gestione di Amazon EMR.
Utilizzo delle proprietà delle tabelle encryption_option e kms_key
In un'istruzione CREATE TABLE, 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_keyper 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
In un'istruzione CREATE TABLE, 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 insiemehas_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 e specificare la posizione della tabella, selezionare l'opzione Set di dati crittografati per aggiungere la has_encrypted_data='true' proprietà alla tabella.
Nell'elenco delle tabelle della console Athena, le tabelle CSE-KMS crittografate has_encrypted_data='true' visualizzano un'icona a forma di chiave.
Scrittura di dati crittografati SSE-S3/SSE-KMS/CSE-KMS
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, utilizzate una TBLPROPERTIES clausola che specifichi encryption_option='SSE_S3 | SSE_KMS | CSE_KMS' ekms_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
Durante la scrittura e la lettura di set di dati crittografati, tenete presente i seguenti punti.
-
Le proprietà
has_encrypted_dataencryption_option, ekms_keytable 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.