Gerenciamento de chave por aplicativo
Este tópico descreve como gerenciar chaves de criptografia da coluna por aplicativo. Ele explica como fornecer chaves mestras e como gravar e ler dados criptografados usando essas chaves mestras.
Fornecendo chaves mestras
Para fornecer chaves mestras:
Transmita as chaves mestras explícitas no formato a seguir:
parameter name: "encryption.key.list" parameter value: "<master key ID>:<master key (base64)> , <master key ID>:<master key (base64)>.."Por exemplo:
sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")O comprimento das chaves mestras antes da codificação base64 pode ser de 16, 24 ou 32 bytes (128, 192 ou 256 bits).
Gravando dados criptografados
Para gravar dados criptografados:
Especifique quais colunas criptografar e quais chaves mestras usar:
parameter name: "encryption.column.keys" parameter value: "<master key ID>:<column>,<column>;<master key ID>:<column> .."Especifique a chave de rodapé:
parameter name: "encryption.footer.key" parameter value: "<master key ID>"Por exemplo:
dataFrame.write .option("encryption.footer.key" , "k1") .option("encryption.column.keys" , "k2:SSN,Address;k3:CreditCard") .parquet("<path to encrypted files>")Nota: ` "" ` deve conter a cadeia de caracteres `.encrypted` no endereço URL, por exemplo, ` /path/to/my_table.parquet.encrypted `. Se o parâmetro `" encryption.column.keys "` ou o parâmetro `" encryption.footer.key "` não estiver definido, será lançada uma exceção.
Lendo dados criptografados
Os metadados necessários são armazenados nos arquivos do Parquet criptografados.
Para ler os dados criptografados:
Forneça as chaves de criptografia:
sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")Chame os comandos de leitura do Parquet regulares, como:
val dataFrame = spark.read.parquet("<path to encrypted files>")Nota: ` ""` deve conter a string `.encrypted` no endereço URL, por exemplo, ` /path/to/my_table.parquet.encrypted `.