暗号化したテーブルデータを置き換える

暗号化したテーブルデータを置き換えるケースとして以下が挙げられます。
  • 暗号化キー情報(暗号化キー)を変更する場合
  • データを暗号化してデータベースに保存することをやめる場合
ここでは既存暗号化データを新しい暗号化データに置き換える方法について説明します。使用する例は、以下の暗号化データが格納されているテーブルです。
../../../_images/img_01361.png

重要

この作業は対象のテーブルにデータの追加、変更、または、削除などが行われない時間帯に行ってください。

暗号化キー情報(暗号化キー)を変更する

現在使用している暗号化キー情報を刷新するなど、暗号化キーのローテーションはセキュリティリスクを回避するための 1つの方法です。
ただし、暗号化キーを新しくすることにより、既存の暗号化データを新しい暗号化データに置き換える必要があります。置き換える方法としてここでは以下の手順を紹介します。
  1. 新しい暗号化キーファイルを作成し、新しい暗号化キー情報を追加する
  2. 既存暗号化データを復号し、新しい暗号化キー情報で暗号化する
  3. 2 で暗号化したデータをエクスポートする
  4. 既存テーブルを複製し、3 で作成したデータをインポートする
  5. 既存テーブルを削除し、新しく作成したテーブル名を削除した既存テーブル名に変更する
  6. 既存暗号化キー情報の配置ロケーションに配置されている暗号化キーファイルを 1 で作成したファイルで置き換え、1 で作成した暗号化キー情報を削除する

暗号化キー情報を追加する

  1. 暗号化キー情報を新しくするために、まず、新しい暗号化キーファイルを作成します。詳しい作成方法については、暗号化キーを作成する を参照してください。

ヒント

  • 既存暗号化キーファイルを既定の作成方法(ランダムなパスワードで暗号化キーファイルを作成する)で作成している場合は、再度既定の作成で暗号化キーファイルを作成することで異なる暗号化キーファイルを作成することができます。
  • 既存暗号化キーファイルを任意のパスワードを指定して作成している場合は、前回と異なるパスワードを設定することで異なる暗号化キーファイルを作成することができます。
  1. 暗号化キー情報を追加します。詳しい追加方法については、暗号化キーを登録する を参照してください。

ヒント

  • ここでは既存暗号化キー情報と異なる「暗号化キー名」と「配置ロケーション」を設定します。
  • データを置き換えるためなので、暗号化キーファイルはローカルパスに配置します。
../../../_images/img_02297.png

既存暗号化データを復号して新しい暗号化キー情報で暗号化する

「取得」アクションを使用して、対象テーブルのデータを全件取得してシートに表示するアプリを作成します。
  1. シートに置き換え対象となるテーブルのテーブルのカラムと同じカラムヘッダーを持つ行と列(A 領域)を作成します。
../../../_images/img_03219.png
  1. 作業用にデータを取得する行と列(B 領域)、および、それを復号するための行と列(C 領域)をシートに追加し、C 領域のセルに復号関数(UTIL.DECRYPT 関数)を設定しておきます。
../../../_images/img_04179.png
  1. 以下のような全件取得アクションを作成し、2 で作成した B 領域にセットするように設定します。
../../../_images/img_05162.png
  1. 1 で作成した A 領域に、新しい暗号化キー名を指定した暗号化関数(UTIL.ENCRYPT 関数)を設定します。
../../../_images/img_06126.png
  1. 「取得」アクションを実行します。1 で作成した A 領域に新しい暗号化キー情報で暗号化されたデータが表示されます。
../../../_images/img_07110.png

ヒント

ここで、以下を確認しておきます。

  • C 領域に出力されている復号結果が正しいこと
  • A 領域に出力されている暗号化データにエラーがないこと
  • 暗号化データ A 領域と B 領域の暗号化データが異なること

「CSV 出力」アクションでデータをエクスポートする

「CSV 出力」アクションを使用して、置き換えるデータを CSV ファイルにエクスポートします。
  1. 「CSV 出力」アクションにて、以下のように出力範囲を指定します。
../../../_images/img_08102.png
  1. 1 で作成した「CSV 出力」アクションを実行し、新しい暗号化データを CSV ファイルにエクスポートします。
../../../_images/img_0986.png

ヒント

出力した CSV ファイルをテキストエディタ等で開き、余分な行があれば削除しておきます。

../../../_images/img_1074.png

新しいテーブルを作成して新しい暗号化データをインポートする

新しいテーブルを作成して、出力した CSV ファイルをインポートします。
  1. 既存テーブルを選択し、「テーブル定義の複製」メニューで複製テーブルを作成します。テーブル名はそのままで OK です。
../../../_images/img_1168.png
  1. 複製テーブルを選択し、右クリックメニューから「テーブルデータのインポート」をクリックし、エクスポートした CSV ファイルを選択してデータをインポートします。
../../../_images/img_1261.png
  1. 複製テーブルにデータがインポートされたことを確認します。
../../../_images/img_1355.png

作成したテーブルを置き換える

既存テーブルを削除して、新しい暗号化データをインポートしたテーブルに置き換えます。(複製テーブルを「正」とします。)
  1. 既存テーブル名を変更、または、削除します。
  2. 複製テーブル名を既存テーブル名に変更します。
../../../_images/img_1450.png

暗号化キーファイルを置き換える

最後に暗号化キーファイルを置き換えます。(新しい暗号化キーファイルを「正」とします。)
  1. 既存暗号化キー情報の配置ロケーションに配置してある暗号化キーファイルを新しい暗号化キーファイルに置き換えます。
  2. 新規作成した暗号化キー情報(作業用)は削除します。
../../../_images/img_1546.png

ちなみに

  • 暗号化キーファイルの配置ロケーションにローカルファイルパスを設定している場合は、開発者、および、利用者に新しい暗号化キーファイルを配布する必要があります。
  • 暗号化キーファイルの配置ロケーションに Web サーバーの URL を設定した場合は、ロケーションを変更しない限り、開発者、および、利用者に特に通知することはありません。

関連キーワード

暗号、暗号化、復号、セキュリティ、セキュリティリスク、データベース、関数、鍵、キー、移行、マイグレーション、ローテーション


../../../_images/celf_help_mascot53.png