Cette rubrique décrit comment faire gérer les clés de chiffrement de colonnes par l'application. Elle explique comment fournir les clés principales et comment écrire et lire des données chiffrées à l'aide de ces clés.
Fourniture de clés principales
Pour fournir des clés principales :
Passez les clés principales explicites au format suivant :
parameter name: "encryption.key.list" parameter value: "<master key ID>:<master key (base64)> , <master key ID>:<master key (base64)>.."
Par exemple :
sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
La longueur des clés principales avant leur encodage en base64 peut être de 16, 24 ou 32 octets (128, 192 ou 256 bits).
Ecriture de données chiffrées
Pour écrire des données chiffrées :
Spécifiez quelles colonnes chiffrer et quelles clés principales utiliser :
parameter name: "encryption.column.keys" parameter value: "<master key ID>:<column>,<column>;<master key ID>:<column> .."
Spécifiez la clé du pied de page :
parameter name: "encryption.footer.key" parameter value: "<master key ID>"
Par exemple :
dataFrame.write .option("encryption.footer.key" , "k1") .option("encryption.column.keys" , "k2:SSN,Address;k3:CreditCard") .parquet("<path to encrypted files>")
Remarque: ` "" ` doit contenir la chaîne ` .encrypted ` dans l'URL, par exemple `/path/to/my_table.parquet.encrypted`. Si le paramètre ` "encryption.column.keys" ` ou le paramètre ` "encryption.footer.key" ` n'est pas défini, une exception est émise.
Lecture de données chiffrées
Les métadonnées requises sont stockées dans les fichiers Parquet chiffrés.
Pour lire les données chiffrées :
Fournissez les clés de chiffrement :
sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
Appelez les commandes de lecture Parquet standard, telles que :
val dataFrame = spark.read.parquet("<path to encrypted files>")
Remarque: ` "" ` doit contenir la chaîne ` .encrypted ` dans l'URL, par exemple `/path/to/my_table.parquet.encrypted`.
Rubrique parent : Chiffrement du Parquet