透過的データ暗号化を使用するには、キーストアを作成し、マスタ暗号化キーを設定する必要があります。
postgresql.confのkeystore_locationパラメータに、キーストアを格納するディレクトリを設定します。
データベースクラスタごとに異なる場所を指定してください。
keystore_location = '/key/store/location'
postgresql.confについては、“付録A パラメータ”を参照してください。
postgresql.confファイルを編集後は、インスタンスを起動、または再起動してください。
WebAdminを使用する場合
“2.1.1 WebAdminを使用する場合”を参照してインスタンスを再起動します。
pg_ctlコマンドを使用する場合
pg_ctlコマンドには以下を指定します。
モードは、restartを指定します。
-Dオプションはデータ格納先のディレクトリを指定します。-Dオプションを省略した場合、PGDATA環境変数の値が使用されます。
-wオプションを指定することを推奨します。これにより、インスタンスの起動の完了を待ってからコマンドが復帰します。-wオプションを指定しない場合、インスタンスの起動が正常に完了したのか、失敗したのかが分からない場合があります。
> pg_ctl restart -w -D /database/inst1
以下のようなSQL関数を実行してマスタ暗号化キーを設定します。
データベースのスーパーユーザーで実行してください。
SELECT pgx_set_master_key('passphrase');
passphraseは、今後キーストアをオープンするために使われるパスフレーズです。マスタ暗号化キーはこのパスフレーズによって保護されるため、短く単純で推測されやすい文字列を指定しないよう注意してください。
pgx_set_master_key関数の詳細は、“B.2 透過的データ暗号化制御関数”を参照してください。
注意
ここで指定したパスフレーズを忘れてしまうと、暗号化されたデータにはアクセスできなくなります。忘れたパスフレーズを取り戻したり、データを復号する方法はありません。決してパスフレーズを忘れないようにしてください。
pgx_set_master_key関数は、キーストア格納ディレクトリにkeystore.ksというファイルを作成します。そして、ランダムなビット列からなるマスタ暗号化キーを生成し、それを指定されたパスフレーズで暗号化してkeystore.ksに格納します。キーストアは、オープンされた状態になります。