0 / 0
Go back to the English version of the documentation
Zarządzanie kluczami według aplikacji
Last updated: 10 sie 2023
Zarządzanie kluczami według aplikacji

W tej sekcji opisano sposób zarządzania kluczami szyfrowania kolumn według aplikacji. Wyjaśnia, w jaki sposób należy udostępniać klucze główne oraz jak zapisywać i odczytywać zaszyfrowane dane za pomocą tych kluczy głównych.

Udostępnianie kluczy głównych

Aby udostępnić klucze główne:

  1. Przekaz jawne klucze główne, w następującym formacie:

    parameter name: "encryption.key.list"
    parameter value: "<master key ID>:<master key (base64)> , <master key ID>:<master key (base64)>.."
    

    Na przykład:

    sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
    

    Długość kluczy głównych przed kodowaniem base64 może wynosić 16, 24 lub 32 bajty (128, 192 lub 256 bitów).

Zapisywanie zaszyfrowanych danych

Aby zapisać zaszyfrowane dane:

  1. Określ, które kolumny mają być szyfrowane, i które klucze główne mają być używane:

    parameter name:  "encryption.column.keys"
    parameter value: "<master key ID>:<column>,<column>;<master key ID>:<column> .."
    
  2. Określ klucz stopki:

    parameter name:  "encryption.footer.key"
    parameter value:  "<master key ID>"
    

    Na przykład:

    dataFrame.write
    .option("encryption.footer.key" , "k1")
    .option("encryption.column.keys" , "k2:SSN,Address;k3:CreditCard")
    .parquet("<path to encrypted files>")
    
    Uwaga: ` "" ` musi zawierać łańcuch ` .encrypted ` w adresie URL, na przykład `/path/to/my_table.parquet.encrypted`. Jeśli parametr ` "encryption.column.keys" lub ` "encryption.footer.key" ` nie jest ustawiony, zgłaszany jest wyjątek.

Odczytywanie zaszyfrowanych danych

Wymagane metadane są przechowywane w zaszyfrowanych plikach Parkiet.

Aby odczytać zaszyfrowane dane:

  1. Podaj klucze szyfrowania:

    sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
    
  2. Wywołaj regularne komendy odczytu parkietu, takie jak:

    val dataFrame = spark.read.parquet("<path to encrypted files>")
    
    Uwaga: ` "" ` musi zawierać łańcuch ` .encrypted ` w adresie URL, na przykład `/path/to/my_table.parquet.encrypted`.

Temat nadrzędny: szyfrowanie parkietu

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more