アプリケーションごとの鍵管理
このトピックでは、アプリケーションごとの列暗号化キーの管理方法について説明します。 ここでは、マスターキーの提供方法、およびこれらのマスターキーを使用して暗号化されたデータを書き込み・読み取る方法について説明します。
マスターキーの提供
マスターキーの提供について:
明示的なマスターキーを、以下の形式で渡してください:
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 「.encrypted` という文字列を URL に含める必要がある。もし `" encryption.column.keys "`パラメータか `" encryption.footer.key "`パラメータのどちらかが設定されていなければ、例外が発生する。
暗号化されたデータの読み取り
必要なメタデータは、暗号化されたParquetファイルに格納されています。
暗号化されたデータを読み取るには:
暗号化キーを入力してください:
sc.hadoopConfiguration.set("encryption.key.list" , "k1:iKwfmI5rDf7HwVBcqeNE6w== , k2:LjxH/aXxMduX6IQcwQgOlw== , k3:rnZHCxhUHr79Y6zvQnxSEQ==")次のような通常のパーケット読み取りコマンドを実行します:
val dataFrame = spark.read.parquet("<path to encrypted files>")注: ` "「例えば、` /path/to/my_table.parquet.encrypted `のように、`.encrypted`という文字列を URL。