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 crittografati con SSE-S3, SSE-KMS o 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 crittografate SSE-S3/SSE-KMS
Non è necessario specificare proprietà di tabella aggiuntive durante la creazione della tabella per leggere i set di dati crittografati SSE-S3/SSE-KMS. Amazon S3 gestisce automaticamente la decrittografia degli oggetti SSE.
Lettura di tabelle crittografate CSE-KMS
È possibile specificare due diversi set di proprietà della tabella per consentire ad Athena di leggere i set di dati crittografati CSE-KMS,
-
Utilizzo delle proprietà
encryption_optionekms_keydella tabella (consigliato) -
Utilizzo della proprietà
has_encrypted_datatable
Importante
Se utilizzi Amazon EMR insieme a EMRFS per caricare file Parquet crittografati CSE-KMS, 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 può leggere oggetti crittografati CSE-KMS creati dai client di crittografia Amazon S3 V1, V2 o V3.
-
Athena utilizzerà la AWS KMS chiave di accesso
kms_keyper decrittografare 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 oggetti crittografati SSE-S3 e SSE-KMS, 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 crittografati CSE-KMS creati dal client di crittografia Amazon S3 V1.
-
Athena dedurrà la AWS KMS chiave utilizzata per crittografare l'oggetto CSE-KMS dai metadati dell'oggetto e quindi utilizzerà quella chiave per decrittografare l'oggetto.
-
Athena è ancora in grado di leggere oggetti crittografati SSE-S3 e SSE-KMS, sebbene non sia consigliabile combinare oggetti crittografati lato server e lato client.
Nota
Quando encryption_option e kms_key vengono specificati insieme, le proprietà and table hanno la precedenza e vengono has_encrypted_data ignorate. encryption_option kms_key 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 crittografate CSE-KMS visualizzano un'icona a forma di has_encrypted_data='true' 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 crittografati CSE-KMS, si consiglia di assicurarsi che tutti i dati siano crittografati con la stessa chiave. AWS KMS
-
Quando crei una tabella con dati crittografati CSE-KMS, ti consigliamo di assicurarti che tutti i dati siano crittografati con CSE-KMS e che non vi sia una combinazione di oggetti crittografati CSE-KMS. non-CSE-KMS