透過的データ暗号化を使用するには、キーストアを作成し、マスタ暗号化キーを設定する必要があります。
postgresql.confのshared_preload_librariesパラメータに、ライブラリ名“tde_kms”を指定してロードします。
shared_preload_libraries = 'tde_kms'
アダプタを利用する場合、アダプタをプラグインとして登録します。プラグインの格納場所のディレクトリをpostgresql.confのtde_kms.plugin_pathパラメータに指定します。使用するプラグインはこのディレクトリに格納します。サンプルを使用する場合はこのディレクトリにコピーします。プラグインファイルには、Fujitsu Enterprise Postgresのサーバを起動するOSユーザーに対する実行権限が必要です。
tde_kms.plugin_path = '/home/fsepuser/plugin/'
テーブル空間暗号化キーを共有する場合は、postgresql.confのtde_kms.enable_shared_dekパラメータに“on”を設定します。
tde_kms.enable_shared_dek = on
postgresql.confのtde_kms.kms_conninfo_fileパラメータに、鍵管理システムの接続情報を記述したファイルを設定します。パラメータの詳細については、“付録A パラメータ”を参照してください。
tde_kms.kms_conninfo_file = 'kms_conninfo.conf'
タイプkmipの場合
kmip mykmipsvr mykmipsvr.example.com 5696 cert sslcert=postgres.crt sslkey=postgres.key sslrootcert=root.crt
タイプcustomの場合(AWS用のサンプルプラグインを利用する場合)
custom mykms aw-kms-plugin.sh arg=--profile arg=user1
タイプcustomの場合(Azure用のサンプルプラグインを利用する場合)
custom mykms az-kms-plugin.sh kms-secret-obf=password.ksc arg=--auth-method arg=password arg=--user-id arg=ApplicationId arg=--tenant arg=TenantId arg=--algorithm arg=A256GCM
CREATE EXTENSION文を実行し、拡張モジュールをインストールします。
CREATE EXTENSION tde_kms;
透過的データ暗号化を有効化するために、pgx_declare_external_master_key関数を呼び出して、マスタ暗号化キーとして使用する暗号化キーを宣言します。暗号化キーを特定するための識別子として、鍵IDを指定します。pgx_declare_external_master_key関数については、“B.2.3 pgx_declare_external_master_key”を参照してください。
SELECT pgx_declare_external_master_key( kms_name => 'mykmipsvr', key_id => 'a0eebc99-9c0b-0000-0000-000000000000', sslpassphrase => 'mykmippassphrase' );