Questo argomento descrive come gestire le chiavi di codifica delle colonne per applicazione. Spiega come fornire chiavi di master e come scrivere e leggere i dati crittografati utilizzando queste chiavi padronali.
Fornire chiavi di master
Per fornire le chiavi principali:
Passare le chiavi master esplicite, nel seguente formato:
parameter name: "encryption.key.list" parameter value: "<master key ID>:<master key (base64)> , <master key ID>:<master key (base64)>.."
Ad esempio:
sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
La lunghezza delle chiavi principali prima della codifica base64 può essere di 16, 24 o 32 bytes (128, 192 o 256).
Scrittura dati crittografati
Per scrivere i dati crittografati:
Specificare quali colonne crittografare, e quali chiavi principali utilizzare:
parameter name: "encryption.column.keys" parameter value: "<master key ID>:<column>,<column>;<master key ID>:<column> .."
Specificare la chiave di piè di pagina:
parameter name: "encryption.footer.key" parameter value: "<master key ID>"
Ad esempio:
dataFrame.write .option("encryption.footer.key" , "k1") .option("encryption.column.keys" , "k2:SSN,Address;k3:CreditCard") .parquet("<path to encrypted files>")
Nota: ` "" ` deve contenere la stringa ` .encrypted ` nell'URL, ad esempio `/path/to/my_table.parquet.encrypted`. Se il parametro ` "encryption.column.keys" ` o il parametro ` "encryption.footer.key" ` non è impostato, verrà generata un'eccezione.
Lettura dati crittografati
I metadati richiesti vengono memorizzati nei file Parquet crittografati.
Per leggere i dati crittografati:
Fornire le chiavi di codifica:
sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
Chiamate i comandi di lettura dei parquet regolari, quali:
val dataFrame = spark.read.parquet("<path to encrypted files>")
Nota: ` "" ` deve contenere la stringa ` .encrypted ` nell'URL, ad esempio `/path/to/my_table.parquet.encrypted`.
Argomento principale: La crittografia del Parquet