Gestione chiavi per applicazione
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` nel parametro URL, ad esempio ` /path/to/my_table.parquet.encrypted `. Se il parametro `" encryption.column.keys "` o il parametro `" encryption.footer.key "` non sono impostati, viene lanciata 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'indirizzo URL, ad esempio ` /path/to/my_table.parquet.encrypted `.
Argomento principale: La crittografia del Parquet