ページの先頭行へ戻る
Enterprise Postgres 9.5 運用ガイド
FUJITSU Software

5.4 テーブル空間の暗号化

暗号化テーブル空間を作成するには、事前にキーストアがオープンされている必要があります。

  

暗号化するテーブル空間を作成するときに、実行時パラメータに暗号化アルゴリズムを設定します。たとえば、暗号化アルゴリズムとしてキー長が256ビットのAESを用い、secure_tablespaceという名前のテーブル空間を作成するには、次のようにします。

-- 以降に作成するテーブル空間の暗号化アルゴリズムを指定
SET tablespace_encryption_algorithm = 'AES256';
CREATE TABLESPACE secure_tablespace LOCATION '/My/Data/Dir';
-- 以降に作成するテーブル空間は暗号化しないように指定
SET tablespace_encryption_algorithm = 'none';

または

CREATE TABLESPACE secure_tablespace LOCATION '/My/Data/Dir' tablespace_encryption_algorithm = 'AES256';

  

暗号化アルゴリズムとして、キー長が128または256ビットのAESを使用できます。256ビットのAESを推奨します。実行時パラメータの指定方法については“付録A パラメータ”を参照してください。

テーブル空間を作成するときにGUCとコマンドラインオプションの両方を提供した場合、コマンドラインオプションが選択されます。

テーブル空間pg_defaultおよびpg_globalを暗号化することはできません。

  

そして、作成した暗号化テーブル空間にテーブルやインデックスを作成します。暗号化テーブル空間に作成されたリレーションは自動的に暗号化されます。

  

例1: 作成時に暗号化テーブル空間を指定
CREATE TABLE my_table (...)
    TABLESPACE secure_tablespace;

  

例2: 作成時にはテーブル空間を明示せず、デフォルト・テーブル空間を使用
SET default_tablespace = 'secure_tablespace';
CREATE TABLE my_table (...);

  

一時テーブルと一時インデックスを暗号化する場合も同様です。つまり、TABLESPACE句を明示的に指定するか、またはtemp_tablespacesパラメータに暗号化テーブル空間を列挙し、CREATE TEMPORARY TABLEやCREATE INDEXを実行します。

  

データベースを作成するときに、CREATE DATABASE文のTABLESPACE句に暗号化テーブル空間を指定すると、明示的にテーブル空間を指定しないでそのデータベースに作成されたリレーションは暗号化されます。さらに、システムカタログも暗号化されるので、ユーザー定義関数のソースコードも保護されます。

  

注意

pgAdminのテーブル空間作成画面または、クエリーツールから、暗号化テーブル空間の作成はできません。暗号化テーブル空間を作成する場合は、[プラグイン(P)]メニューの[PSQL Console]をクリックし、psqlのコンソール画面で暗号化テーブル空間の作成を行ってください。