資料の 英語版 に戻るアプリケーションによる鍵の管理
アプリケーションによる鍵の管理
最終更新: 2024年10月07日
このトピックでは、アプリケーションで列の暗号鍵を管理する方法について説明します。 マスター鍵を指定する方法と、それらのマスター鍵を使用して暗号化データの書き込み/読み取りを行う方法について説明します。
マスター鍵の指定
マスター鍵を指定するには、次のようにします。
明示的なマスター鍵を、以下の形式で渡します。
parameter name: "encryption.key.list" parameter value: "<master key ID>:<master key (base64)> , <master key ID>:<master key (base64)>.."
次に例を示します。
sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
Base64 でエンコードする前のマスター鍵の長さは、16、24 または 32 バイト (128、192 または 256 ビット) にすることができます。
暗号化データの書き込み
暗号化データを書き込むには、次のようにします。
暗号化する列と、使用するマスター鍵を指定します。
parameter name: "encryption.column.keys" parameter value: "<master key ID>:<column>,<column>;<master key ID>:<column> .."
フッター鍵を指定します。
parameter name: "encryption.footer.key" parameter value: "<master key ID>"
次に例を示します。
dataFrame.write .option("encryption.footer.key" , "k1") .option("encryption.column.keys" , "k2:SSN,Address;k3:CreditCard") .parquet("<path to encrypted files>")
注: ` "「/path/to/my_table.parquet.encrypted」のように、URL にストリング「.encrypted」が含まれている必要があります。 「encryption.column.keys」パラメーターまたは「encryption.footer.key」パラメーターのいずれかが設定されていない場合、例外がスローされます。
暗号化データの読み取り
必要なメタデータは、暗号化された Parquet ファイルに格納されています。
暗号化データを読み取るには、次のようにします。
暗号鍵を指定します。
sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")
次のように、通常の Parquet の read コマンドを呼び出します。
val dataFrame = spark.read.parquet("<path to encrypted files>")
注: ` "「/path/to/my_table.parquet.encrypted」のように、URL にストリング「.encrypted」が含まれている必要があります。
親トピック: Parquet 暗号化