Transparent Data Encryption for
PostgreSQL Enterprise Edition
セットアップカード
ごあいさつ
このたびは、
Transparent Data Encryption for PostgreSQL Enterprise Edition をお買い上げいただ
き、誠にありがとうございます。
本書は、お買い上げいただいたセットの内容の確認、セットアップの内容を中心に構成され
ています。
Transparent Data Encryption for PostgreSQL Enterprise Edition をお使いになる前に、
必ずお読みください。
目次
第
1 章 はじめに... 1
第
2 章 セットアップの前に... 3
2.1 セットアップ情報の確認 ...3
2.2 PostgreSQL のインストール...3
2.3 システム環境の確認...4
第
3 章 セットアップの方法... 5
3.1 Transparent Data Encryption for PostgreSQL のインストール方法(rpm) ...5
3.2 ストリーミングレプリケーション構成へのセットアップについて ...7
3.3 新規インストール...8
3.3.1 デフォルトインストール ...8
3.3.2 透過的暗号化機能のセットアップ...8
3.3.3 透過的暗号化機能のセットアップ(非対話型) ...10
3.3.4 メンテナンス機能のセットアップ...12
3.3.5 インストール先指定 ...13
3.3.6 よりセキュアな運用のために ...14
3.3.7 ログ収集スクリプトについて ...16
3.4 再インストール...17
3.5 アップグレードインストール ...17
3.5.1 旧バージョンの Transparent Data Encryption for PostgreSQL をアップグレード ...
...18
3.5.1.1 再インストール ...18
3.5.1.2 インストール場所指定 ...19
3.5.1.3 デフォルトインストール ...19
3.5.2 透過的暗号化機能のアップグレード...19
3.6 アンインストール...24
3.6.1 透過的暗号化機能の無効化と再有効化 ...24
3.6.2 透過的暗号化機能の無効化と再有効化(非対話型) ...27
3.6.3 PostgreSQL からのメンテナンス機能削除方法...29
3.6.4 アンインストール(rpm) ...30
第
4 章 エラーメッセージ... 32
第
5 章 注意事項... 34
第
6 章 禁則文字... 35
第
8 章 ライセンス... 37
8.1 Java
™SE Runtime Environment ...37
8.2 PostgreSQL ライセンス(PostgreSQL, psql, pgcrypto, libpq)...43
8.3 The PostgreSQL JDBC Driver ...43
8.4 Apache License Version 2.0(AWS SDK for Java, Apache Commons Logging, Apache
commons Lang, Apache Commons Codec, Apache HttpComponents, Jackson 1.x, Jackson
2.x, Joda-Time) ...44
第
1 章
はじめに
Transparent Data Encryption for PostgreSQL V1.1 は、PostgreSQL で透過的暗号化環境を実現す
るソフトウェアです。
また、Enterprise Edition では透過的暗号化機能だけでなく、データ
ベースの診断機能や復旧機能を提供することにより
データベースのセキュリティや信頼性
を 向 上 さ せ る サ ブ ス ク リ プ シ ョ ン 製 品 で す 。
本 書 は Transparent Data Encryption for
PostgreSQL V1.1 Enterprise Edition のセットアップ手順について記載しています。
注
• 透過的暗号化機能 データベースのテーブル定義によって、データベース側で自動的に格納されるデータを暗 号化/復号する機能のことです。 アプリケーションやユーザはデータの暗号化処理を気に せずに利用することができ、 容易にデータベースのセキュリティ性を向上することが出来 ます。 本製品では暗号化を行う属性を定義することで、対象の列のデータを格納時に自動的に データの 暗号化/復号を行う機能を提供しています。 また、Amazon Web Services™ (以下AWS)上の鍵管理サービスである AWS Key Management Service (以下 AWS KMS)を利用し、 暗号鍵をより安全に交換する機能も保有しています。 • 透過的暗号化環境 透過的暗号化機能に対応したPostgreSQL 上のデータベース、 および透過的暗号化に利用 する鍵を管理する鍵管理機能(鍵管理コマンド)を示します。 ひとつの透過的暗号化環境 はひとつのPostgreSQL 上のデータベースに対応します。 またひとつの PostgreSQL 上に 複数のデータベースを用意し、複数の透過的暗号化環境を作成することができます。 • メンテナンス機能 メンテナンス機能はデータベースの状態を診断する機能(verify)と、 障害時にデータベー スから可能な限りデータを救出し(salvage)、 新しい PostgreSQL データベースにデータを 復旧する機能(revive)を提供します。
Edition について
Transparent Data Encryption for PostgreSQL には、商用版の Enterprise Edition と OSS として公
開している
Free Edition があります。 各 Edition の機能/サービスの差については以下の通り
です。
表1-1 Edition による機能/サービスの違い
機能/サービス Enterprise Edition Free Edition Transparent Data Encryption 機能
機能/サービス Enterprise Edition Free Edition バイト列(画像など) ○ ○ 数値 ○ × 日付・時刻 ○ × 鍵の更新、バージョン管理機能 ○ △*1 AWS KMS を利用した鍵管理 ○ × メンテナンス機能 データベース診断・復旧機能 ○ × サポートサービス
Transparent Data Encryption for PostgreSQL の PP サ ポートサービス ○ × PostgreSQL 本体の保守サポートサービス ○*2 × *1 暗号鍵のバージョン管理機能なし。一括更新のみ可 *2 PostgreSQL の保守サポートサービスとの連携をスムーズにするためのログ収集スクリプト(pglogcol.sh)が利用 可
第
2 章
セットアップの前に
2.1 セットアップ情報の確認
透過的暗号化機能向けのセットアップ情報
透過的暗号化機能をセットアップするために必要な接続情報を確認します。
表2-1 透過的暗号化機能をセットアップするために必要な接続情報 ポート番号 透過的暗号化機能をセットアップするデータベースが定義されたPostgreSQL の サービス待ち受けポート番号です。 データベース名 透過的暗号化機能をセットアップするデータベースの名前です。 ユーザ名 透過的暗号化機能をセットアップするデータベースに接続するためのスーパユー ザです。 パスワード 透過的暗号化機能をセットアップするデータベースに接続するためのスーパユー ザのパスワードです。メンテナンス機能向けのセットアップ情報
メンテナンス機能を利用する場合に必要なセットアップ情報を確認します。
表2-2 メンテナンス機能をセットアップする DB の情報 PostgreSQL デ ー タ ディレクトリ メンテナンス機能を実行するPostgreSQL の DB が格納されているディレクトリ です。利用する際にメンテナンス機能用のコントロールファイルをこのディレク トリに配置する必要があります。詳細はメンテナンス機能 利用の手引をご覧く ださい。 環境変数 PostgreSQL で利用される以下の環境変数を参照する場合があります。詳細はメ ンテナンス機能 利用の手引の各コマンドの各パラメータの説明をご参照くださ い PGDATA PGDATABASE PGPORT PGCLIENTENCODING2.2 PostgreSQL のインストール
本機能をインストールするためには、予め
PostgreSQL をインストールしておく必要があり
ます。
「
動作環境」の DB サーバ条件を満たす PostgreSQL をインストールしてください。
なお、
Transparent Data Encryption for PostgreSQL Free Edition とは異なり、pgcrypto や psql な
どの必要なバイナリを同梱していますので個別にインストールする必要はなく、
PostgreSQL
のサーバ機能がインストールされていればセットアップが可能です。
2.3 システム環境の確認
Transparent Data Encryption for PostgreSQL のインストールには下記のシステム環境が必要で
す。
基本OS RedHat Enterprise Linux 6.5 以上、7.1 以上(透過的暗 号化機能のみ) メモリー容量 約200M バイト以上を推奨 ディスク容量 任意のディスクに約100M バイト以上の空き領域 PostgreSQL バージョン 9.3 、9.4、9.5(透過的暗号化機能のみ)
注
1. PostgreSQL へのメンテナンス機能適用および削除を行なう際に、コマンドから psql を起動す るため、操作を行なうPostgreSQL スーパーユーザの環境変数$PATH に psql のあるディレク トリのパスが設定されている必要があります。 必ず PATH に設定されているかをご確認くだ さい。本機能をインストールするには、対象のシステムに次のライブラリが予めインストールされ
ている必要があります。
表2-4 ライブラリ一覧 必要なライブラリ libz.so.1 libcrypt.so.1 libdl.so.2 libm.so.6 libc.so.6 libpthread.so.0第
3 章
セットアップの方法
Transparent Data Encryption for PostgreSQL は PostgreSQL を利用するデータベースサーバに
セットアップを行ってください。
なお、鍵管理機能はリモートコンピュータからも実行が
可能です。リモートコンピュータから鍵管理機能を利用する場合も同様に、
Transparent Data
Encryption for PostgreSQL をリモートコンピュータにインストールしてください。
3.1 Transparent Data Encryption for PostgreSQL の
インストール方法(
rpm)
rpm のインストールはスーパーユーザ(root 権限)で行ないます。
マシンの
CD-ROM 装置に Transparent Data Encryption for PostgreSQL Enterprise Edition インス
トール
CD-ROM を挿入し、tde_for_pgXX-1.1-n.el6.x86_64.rpm があることを確認してくださ
い(
XX は PostgreSQL のメジャーバージョン。9.3 の場合は 93、n は数字)。
rpm インストール後は以下の構成でインストールされます。デフォルトのインストール
ディレクトリは
/opt/nec/tdeforpgXX です。
ディレクトリ・ファイル構成 説明
tdeforpgXX/ bin/ cipher_setup.sh 透過的暗号化機能セットアップスク リプト pgtde 暗号化機能実行コマンド createfunc.sh メンテナンス機能関数定義コマンド dropfunc.sh メンテナンス機能関数削除コマンド pgmtnverify verify 実行コマンド pgmtnsalvage salvage 実行コマンド pgmtnrevive revive 実行コマンド pglogcol.sh メンテナンス機能の診断レポート、 設 定 フ ァ イ ル 、 ロ グ の 収 集 と PostgreSQL の サ ー バ ロ グ 、 postgresql.conf を収集するスクリプ ト conf/ pgtde.properties 対象テーブルコントロールファイル aws_info.properties 暗号鍵を復号化するためのAWS ア ク セ ス 情 報 (AccessKey 、 SecretAccessKey)を記入するファイ ル
kms_info.properties AWS KMS へのアクセス時の proxy 情報、およびKMS サーバの URL 情 報
ディレクトリ・ファイル構成 説明 psql 内部コマンド発行用PostgreSQL ク ライアントプログラム libpgcrypto93.so 透過的暗号化機能用ライブラリ data_encryption.so 透過的暗号化機能用ライブラリ pgmtn.so メンテナンス機能ライブラリ lib/init 透過的暗号鍵機能内部実行スクリプ ト群 lib/conf 透過的暗号化機能内部設定ファイル 群 lib/prop 透過的暗号化機能定義ファイル群 lib/jar 透過的暗号化機能実行基盤ファイル 群 jre/ 透過的暗号化機能用Java 実行環境 template/ pgmtncom.conf.template メンテナンス機能の共通コントロー ルファイルテンプレート cipher_setup.conf.template 透過的暗号化機能セットアップスク リプト用設定ファイルのテンプレー ト pgmtndata/ pgmtnsalvageinfo.sql データベース復旧用の事前情報取得 SQL ファイル pgmtnmes* メンテナンス機能用のログメッセー ジリソースファイル
log/ Transparent Data Encryption for PostgreSQL 用のデフォルトログ出 力先 sys/ 透過的暗号化機能システム管理用 ディレクトリ LICENSE 利用しているオープンソースライセ ンスについて
注
メンテナンス機能を利用する場合、コントロールファイルpgmtncom.conf.template を用いて 適用す るPostgreSQL のデータディレクトリ配下に pgmtncom.conf として配置することが必要です。注
pglogcol.sh は[インストールディレクトリ先]/log のファイルを 1 つにまとめる機能をもつ補助スク リプトです。 システムの要件に問題がない場合は Transparent Data Encryption for PostgreSQL のロ グメッセージ出力先を [インストールディレクトリ先]/log にすることをお勧めします。注
rpm をインストールする際には、LANG 環境変数にて OS のロケールを C または ja_JP.UTF-8 に変 更して実施してください。
3.2 ストリーミングレプリケーション構成へのセッ
トアップについて
PostgreSQL の標準機能である、ストリーミングレプリケーション構成にインストールする
場合について説明します。
PostgreSQL のストリーミングレプリケーションでは、プライマリサーバ側からデータベー
スへの更新データである
WAL(Write Ahead Log)をスタンバイサーバに転送し、それを反映
させることで同期を行います。そのため、セットアップ作業の中でデータベースに更新を
行う手順についてはプライマリサーバに行い、それ以外の手順はプライマリサーバとスタ
ンバイサーバの両方に実施することが必要です。
な お 、
Transparent Data Encryption for PostgreSQL の セ ッ ト ア ッ プ 作 業 に つ い て は 、
PostgreSQL のストリーミングレプリケーション構成のセットアップが終わった後に実施す
ることを推奨します。ストリーミングレプリケーションのセットアップ手順については、
PostgreSQL のマニュアル等を参照して行ってください。
Transparent Data Encryption for PostgreSQL のプライマリサーバとスタンバイサーバのセット
アップ手順の要否については、以下の表にまとめています。
表3-1 プライマリサーバとスタンバイサーバのセットアップ手順の要否 機能別 手順 プライマリサーバ側 スタンバイサーバ側 共通 rpm イ ン ス ト ー ル ( 新 規 ・ アップグレード共に) ○(必要) ○(必要) 透過的暗号化機能 postgresql.conf に shared_preload_libraries の追加 ○(必要) ○(必要) セ ッ ト ア ッ プ ス ク リ プ ト (cipher_setup.sh)の実行 ○(必要) ×(不要) メンテナンス機能 セ ッ ト ア ッ プ ス ク リ プ ト createfun.sh の実行 ○(必要) ×(不要) pgmtncom.conf の配置 ○(必要) ○(必要)注
rpm ファイルによるインストールパスの指定は、プライマリサーバとスタンバイサーバを同じ ディレクトリパスに統一する必要があります。また、アンインストール時のプライマリサーバとスタンバイサーバのセットアップ手順の
要否については、以下の通りです。
表3-2 アンインストール時の手順要否 機能別 手順 プライマリサーバ側 スタンバイサーバ側 透過的暗号化機能 透過的暗号化機能の無効化 ○(必要) ×(不要) メンテナンス機能 メンテナンス機能削除 ○(必要) ×(不要) 共通 rpm アンインストール ○(必要) ○(必要)3.3 新規インストール
root ユーザで Transparent Data Encryption for PostgreSQL Enterprise Edition をセットアップし
ます。
3.3.1 デフォルトインストール
デフォルトでのインストールは以下のようになります。
rpm -ivh tde_for_pgXX-1.1-n.el6.x86_64.rpm
• 実行例
[root@localhost]# rpm -ivh tde_for_pg93-1.1.1-1.el6.x86_64.rpm
Preparing... ########################################## # [100%]
1:tde_for_pg93 ########################################## # [100%]
INFO: Transparent Data Encryption for PostgreSQL 9.3 was installed successfully.
HINT: To complete validation of transparent data encryption feature, please add "/opt/nec/tdeforpg93/lib/data_encryption.so" to 'shared_preload_libraries' parameter in 'postgresql.conf' file and require a PostgreSQL server restart to take effect.
HINT: To complete validation of maintenance feature,
please copy "/opt/nec/tdeforpg93/template/pgmtmcom.conf.template " to
'pgmtncom.conf' in a PostgreSQL data directory and customize it.
★
Transparent Data Encryption V1.1 for PostgreSQL のインストールディレクトリは「/opt/nec/
tdeforpgXX/」(XX は PostgreSQL のメジャーバージョン。9.3 の場合は 93)になります。
ストリーミングレプリケーションを利用する場合は、プライマリサーバとスタンバイサーバ
の両方にインストールを行ってください。
rpm によるインストール実行後は、以下の手順を行ってください。
1.
「3.3.2 透過的暗号化機能のセットアップ(8 ページ)」
2.
「3.3.4 メンテナンス機能のセットアップ(12 ページ)」
3.3.2 透過的暗号化機能のセットアップ
postgresql.conf の編集
デフォルトインストールが完了したら、PostgreSQL の設定ファイル(postgresql.conf)の変
更を下記の通り行なってください。ストリーミングレプリケーションを利用している場合
は、プライマリサーバとスタンバイサーバの両方に設定を行ってください。
• 設定例(インストール先が/opt/nec/の場合)
shared_preload_libraries='/opt/nec/tdeforpg93/lib/data_encryption.so'
PostgreSQL の再起動
PostgreSQL の設定を有効化するために PostgreSQL を再起動してください。
透過的暗号化機能利用データベースの作成
透過的暗号化機能をセットアップするデータベースを作成してください。
• 設定例(データベース名を tdedb とする場合)
$ createdb tdedbインストールディレクトリ配下の「bin/cipher_setup.sh」スクリプトを実行し、定義済みの
PostgreSQL のデータベースに対して透過的暗号化機能をセットアップします。 本スクリプ
トの実行は、
root ユーザにのみ権限が与えられます。
以下に透過的暗号化機能のセットアップ手順を示します。
ストリーミングレプリケーションを利用している場合は、プライマリサーバのみに実行して
ください。
図3-1 透過的暗号化機能有効化1. セットアップスクリプト実行
「bin/cipher_setup.sh」を実行します。
• 実行例
[root@localhost bin]# /opt/nec/tdeforpg93/bin/cipher_setup.sh Transparent data encryption feature setup script
2. 有効化・無効化選択
透過的暗号化機能をセットアップする場合は「1」を入力します。
• 実行例
Please select from the setup menu below
Transparent data encryption feature setup menu
1: activate the transparent data encryption feature 2: inactivate the transparent data encryption feature select menu [1 - 2] > 1
3. 接続情報入力
PostgreSQL への接続情報(ポート番号、ユーザ名(スーパユーザ)、パスワード)お
よび透過的暗号化機能をセットアップするデータベース名を入力します。なお、
透過的暗号化機能をセットアップする
DB は事前に作成されている必要がありま
す。さらに透過的暗号化機能の暗号鍵を管理する専用のユーザ(セキュリティ管理
ユーザ)を作成します。このセキュリティ管理ユーザは既に PostgreSQL に作成済
みのユーザを指定することもできますが、スーパユーザは指定できません。
• 実行例
Please enter database server port to connect : 5432 Please enter database user name to connect : postgres Please enter password for authentication : ***** Please enter database name to connect : tdedb
Please enter normal database user name for security management: se cman
Please enter password for database user secman:***** Retype password for database user secman:*****
4. 有効化完了
透過的暗号化機能のセットアップが完了です。
• 実行例
INFO: Transparent data encryption feature has been activated
PostgreSQL connection info for security user has created: /opt/ne c/tdeforpg93/conf/pgtde_secuser.properties
Let use this conf file in [pgtde] command with option "-conf" for PostgreSQL security user
セットアップが完了すると、セキュリティ管理ユーザの接続情報が記載された設
定ファイルが作成されます。暗号鍵を管理する
OS ユーザは、このファイルを透
過的暗号化機能コマンド実行時の接続情報ファイルとして使用することが可能で
す。
3.3.3 透過的暗号化機能のセットアップ(非対話型)
Transparent Data Encryption for PostgreSQL のバージョン 1.1.2 から
「3.3.2 透過的暗号化機能
のセットアップ(
8 ページ)」
の方法に加えて、非対話型で実行する事も出来ます。以下に
セットアップを非対話型で実行する場合の手順を記載いたします。
cipher_setup.conf の編集
インストールディレクトリ配下の
/template/cipher_setup.conf.template をインストールディレ
クトリ配下の
/conf/cipher_setup.conf としてコピーし、対話型セットアップで入力が必要とな
る情報(PostgreSQL への接続情報および透過的暗号化機能をセットアップするデータベース
名、セキュリティ
DB ユーザ情報)を以下のように記載してください。
• cipher_setup.conf 設定例
connect_db_port=5432 connect_db_name=tdedb connect_db_user=postgres connect_db_password=***** security_db_user=***** security_db_password=*****注
「設定項目=設定値」の書式でスペースやタブを使わず記載します。以下に非対話型での透過的暗号化機能のセットアップ手順を示します。
ストリーミングレプリケーションを利用している場合は、プライマリサーバのみに実行して
ください。
1. セットアップスクリプト実行
インストールディレクトリ配下の「
bin/cipher_setup.sh」を「-s 1」オプションを付
与して実行します
(デフォルトではインストールディレクトリ配下の「conf/
cipher_setup.conf」が使用されます)。
• 実行例
[root@localhost bin]# /opt/nec/tdeforpg93/bin/cipher_setup.sh -s 1 INFO: Transparent data encryption feature has been activated
PostgreSQL connection info for security user has created: /opt/ne c/tdeforpg93/conf/pgtde_secuser.properties
Let use this conf file in [pgtde] command with option "-conf" for PostgreSQL security user
• 実行例(デフォルト以外のコンフィグファイルを指定する場合)
[root@localhost bin]# /opt/nec/tdeforpg93/bin/cipher_setup.sh -s 1 /tmp/setup.conf
INFO: Transparent data encryption feature has been activated
PostgreSQL connection info for security user has created: /opt/ne c/tdeforpg93/conf/pgtde_secuser.properties
Let use this conf file in [pgtde] command with option "-conf" for PostgreSQL security user
セットアップが完了すると、セキュリティ管理ユーザの接続情報が記載された設
定ファイルが作成されます。暗号鍵を管理する
OS ユーザは、このファイルを透
過的暗号化機能コマンド実行時の接続情報ファイルとして使用することが可能で
す。
3.3.4 メンテナンス機能のセットアップ
関数定義スクリプトを実行して、本ツールを適用する
DB 毎に関数定義を行ないます。 定義
する関数は
1. pgdbverify(int, cstring, cstring, cstring)
2. pgdbrevive(cstring)
です。
注
同じ引数を持つ同名の関数が既にDB 内に存在する場合は、本ツールを適用することができません のでご注意ください。 既存関数を削除してから本ツールを適用してください。メンテナンス機能を
PostgreSQL へ適用する手順は次の通りです。
操作は
PostgreSQL スーパーユーザで行ないます。 PostgreSQL が起動していることを確認
してください。
[インストール先ディレクトリ]/bin に移動して、関数定義スクリプト createfunc.sh を実行し
てください。ストリーミングレプリケーションを利用している場合は、プライマリサーバに
のみ実行を行ってください。
実行コマンド
./createfunc.sh以降、画面にしたがって各項目を入力してください。
(以下の関数定義実行イメージ) 入力を
省略して<
ENTER >を押した場合の既定値は下記の通りです。
項目 説明 既定値(省略時) PGHOST ホスト名(省略可) $PGHOST PGPORT ポート(省略可) $PGPORT PGDATABASE データベース名(省略可) $PGDATABASE USER ユーザ名(省略可) 実行ユーザ名 Password パスワード入力(y/n)※2 n(入力しない)※
2 パスワード入力を”y”とした場合は、パスワードを要求されるので入力してください。
[postgres@localhost bin]$ ./createfunc.sh
Please input information, or press <ENTER> to accept the default. PGHOST > PGPORT [Default:'5432'] > PGDATABASE [Default:'postgres'] > USER [Default:'postgres'] >
Input the Password for psql?[y/n] [Default:n] >
...
CREATE FUNCTION pgdbverify(int,cstring,cstring,cstring) CREATE FUNCTION pgdbrevive(cstring)
SUCCESS [postgres@localhost bin]$
「
SUCCESS」と表示されれば成功です。
関数定義が終わったら、共通コントロールファイル(pgmtncom.conf)を、PostgreSQL のデータ
ディレクトリ配下に配置します。ストリーミングレプリケーションを利用している場合は、
プライマリサーバとスタンバイサーバの両方に行ってください。
共通コントロールファイルは、
template/pgmtncom.conf.template から生成します。また、共通
コントロールファイルには
PostgreSQL のスーパーユーザのアクセス権のみを付与します。
以下の実施例は、PostgreSQL のデータディレクトリが/usr/local/pgsql/data の場合に、共通コ
ントロールファイルを配置する例です。
• 実行例
[postgres@localhost bin]$ cp /opt/nec/tdeforpg93/template/pgmtncom.conf .template /usr/local/pgsql/data/pgmtncom.conf
[postgres@localhost bin]$ chown postgres:postgres /usr/local/pgsql/data /pgmtncom.conf
[postgres@localhost bin]$ chmod 600 /usr/local/pgsql/data/pgmtncom.conf
以上で、メンテナンス機能のセットアップ手順は完了です。
3.3.5 インストール先指定
tdeforpgXX ディレクトリ(XX は PostgreSQL のメジャーバージョン。9.3 の場合は 93)のイ
ンストール先ディレクトリを指定することができます。
ディレクトリ指定は次のオプションを使用します。
[tdeforpgXX ディレクトリインストール先指定]
--prefix tdeforpgXX インストール先絶対パス
インストール実行コマンド
rpm -ivh --prefix インストール先絶対パス tde_for_pgXX-1.1-n.el6.x86_64.rpmコマンド実行後、下図のように表示されれば成功です。
[root@localhost root]# rpm -ivh --prefix /cal/nec tde_for_pg93-1.1-n.el6.x8 6_64.rpm
Preparing... ########################################### [10 0%]
1:tde_for_pg93 ########################################### [10 0%]
[root@localhost root]#
ストリーミングレプリケーションを利用する場合は、プライマリサーバとスタンバイサーバ
の両方にインストールを同じディレクトリに行ってください。
なお、インストール先をデフォルトから変更した場合、透過的暗号化機能の動作オプション
「透過的暗号化機能ライブラリパス」の設定も必要になるため、ご注意ください。
詳細は
Transparent Data Encryption for PostgreSQL 透過的暗号化機能 利用の手引「透過的暗号
化機能ライブラリパス」の章をご参照ください。
3.3.6 よりセキュアな運用のために
透過的暗号化機能は、
OS ユーザおよびファイルの権限を適切に設定することでよりセキュ
アな運用が実現できます。よりセキュアな運用を行いたい場合は以下の設定を実施してく
ださい。
透過的暗号化機能管理ユーザの作成
透過的暗号化機能をよりセキュアな状態で運用するためには、各機能毎に
OS ユーザおよび
OS グループを作成する必要があります。またそれぞれの OS ユーザが適切な PostgreSQL
ユーザを使用するような運用方針を策定する必要があります。作成するユーザと対応する
PostgreSQL ユーザの一覧については下記をご参照の上作成してください。
表3-3 作成する OS ユーザ一覧 OS ユーザ OS グループ 役割 使 用 可 能 な PostgreSQL ユ ー ザ DB 管理者 透過的暗号化機能 管理グループ PostgreSQL 起動ユーザであり、 PostgreSQL に対する全権限を 持つユーザ。 スーパユーザ セキュリティ管理 者 透過的暗号化機能 管理グループ 透過的暗号化機能で利用する鍵 の管理権限を持つユーザ 透過的暗号化機能のセットアッ プで自動作成されたセキュリ ティ管理者用ユーザ AP 管理者 透過的暗号化機能 利用グループ 透過的暗号化機能を利用してい るユーザデータに対する暗号 化・復号権限を持つユーザ 透過的暗号化機能を利用する ユーザデータにアクセスできる 一般ユーザ• 実行例
透過的暗号化機能管理グループ「
tde_manger」と透過的暗号化機能利用グループ
「
tde_user」を作成し、DB 管理者「dbauser」、セキュリティ管理者「secuser」、AP 管理者
「
apuser」をそれぞれのグループに所属させるよう作成しています。
$ groupadd tde_manager $ groupadd tde_user$ useradd -G tde_manager secuser $ useradd -G tde_manager dbauser $ useradd -G tde_user apuser
透過的暗号化機能をよりセキュアな状態で運用するためには、各種ファイルをそれぞれ適切
な所有者に設定する必要があります。下記表を参考に、作成したユーザ毎にファイルの権限
を設定してください。
表3-4 アクセス権限設定を推奨する透過的暗号化機能関連ファイル一覧 対象ファイル 所有者 conf/aws_info.properties DB 管理者 conf/kms_info.properties DB 管理者 conf/pgtde_secuser.properties セキュリティ管理者 lib/jar/pgtde.jar AP 管理者 lib/jar/pgtde_regist.jar セキュリティ管理者 lib/jar/kms-agent.jar DB 管理者• 実行例
それぞれのファイルの所有者を上記設定をもとに
DB 管理者「dbauser」、セキュリティ
管理者「secuser」、AP 管理者「apuser」に設定します。
$ chown dbauser:tde_manager conf/aws_info.properties $ chown dbauser:tde_manager conf/kms_info.properties $ chown secuser:tde_manager conf/pgtde_secuser.properties $ chown apuser:tde_user lib/jar/pgtde.jar
$ chown secuser:tde_manager lib/jar/pgtde_regist.jar $ chown dbauser:tde_manager lib/jar/kms-agent.jar
上記ファイルの権限設定により、透過的暗号化機能コマンドの各モードの実行がユーザ毎に
以下のように制限されます。
(各モードの詳細は透過的暗号化機能 利用の手引をご参照くだ
さい
)
表3-5 モード毎実行可能ユーザ一覧 モード名 実行可能ユーザ 暗号鍵の登録・更新 セキュリティ管理者 鍵管理方式の変更 AWS KMS 利用状況の表示 データの再暗号化 AP 管理者一般ユーザ用の権限設定
透過的暗号化機能を利用したいデータベースの一般ユーザは、暗号鍵情報テーブルに対して
適切なアクセス権限を設定する必要があります。対象のデータベースに存在する暗号鍵情
報テーブル
(cipher_key_table)に対して以下のクエリを発行し、一般ユーザからの更新を可能
としてください。
例
) 一般ユーザ apuser が透過的暗号化機能を利用する場合
GRANT UPDATE ON cipher_key_table TO apuser; GRANT DELETE ON cipher_key_table TO apuser;
セキュリティ管理者用ユーザに透過的暗号化機能のセットアップで作成したユーザ以外の
一般ユーザを割り当てる場合、対象のデータベースに対して以下の権限設定を行う必要があ
ります。
例) 一般ユーザ secuser を透過的暗号化機能のセキュリティ管理者用ユーザとして利用する
場合
GRANT INSERT ON cipher_key_table TO secuser; GRANT UPDATE ON cipher_key_table TO secuser; GRANT DELETE ON cipher_key_table TO secuser; GRANT SELECT ON keyid_table TO secuser; GRANT INSERT ON keyid_table TO secuser; GRANT UPDATE ON keyid_table TO secuser; GRANT DELETE ON keyid_table TO secuser;
GRANT EXECUTE ON FUNCTION cipher_key_backup() TO secuser;
3.3.7 ログ収集スクリプトについて
ログ収集スクリプト(コマンド名:pglogcol.sh)は、PostgreSQL の設定ファイルやサーバロ
グ、Transparent Data Encryption for PostgreSQL の設定ファイル、ログ、診断レポートを収集
し、
1 つのアーカイブ(tar.gz)ファイルにまとめる機能を提供するシェルスクリプトです。イ
ンストールディレクトリ配下の「
tdeforpgXX/bin/」にインストールされます。
以下の実行例のように、必要なログや設定ファイルをすぐに収集することができます。
[root@localhost root]# /opt/nec/tdeforpg93/bin/pglogcol.sh -a -D /usr/local /pgsql/data
using default log directory "/usr/local/pgsql/data/pg_log" /usr/local/pgsql/data/pg_log/ /usr/local/pgsql/data/pg_log/postgresql-2015-07-16_115600.log /usr/local/pgsql/data/pg_log/postgresql-2015-07-16_115736.log /usr/local/pgsql/data/pg_log/postgresql-2015-07-16_120129.log /usr/local/pgsql/data/pg_log/postgresql-2015-07-16_120942.log /usr/local/pgsql/data/postgresql.conf /opt/nec/tdeforpg93/conf/ /opt/nec/tdeforpg93/conf/kms_info.properties /opt/nec/tdeforpg93/conf/pgtde.properties /opt/nec/tdeforpg93/conf/pgtde_secuser.properties /opt/nec/tdeforpg93/conf/aws_info.properties /opt/nec/tdeforpg93/log/ /opt/nec/tdeforpg93/log/pgtde.log archived target : /usr/local/pgsql/data/pg_log/ /usr/local/pgsql/data/postgresql.conf /opt/nec/tdeforpg93/conf/ /opt/nec/tdeforpg93/log/
pglogcol.sh: Log files were collected successfully.
collected log files are archived in tdepg_20150717031415.tar.gz. [root@localhost root]#
3.4 再インストール
インストール済みのパッケージに対して、同じバージョンかつ同じリビジョンのパッケージ
を再度インストールする場合には、以下のオプションを使用します。
--replacepkgs
ただし、デフォルトインストール以外または複数インストールしてある場合には再インス
トール先を指定します。指定方法は
「3.3.5 インストール先指定(13 ページ)」
を参照くだ
さい。
再インストール先にある既存ファイルは上書きされますのでご注意ください。
再インストール実行コマンド
rpm -ivh --replacepkgs tde_for_pgXX-1.1-n.el6.x86_64.rpm
コマンド実行後、下図のように表示されれば成功です。
[root@localhost root]# rpm -ivh --replacepkgs tde_for_pg93-1.1-n.el6.x86_64 .rpm Preparing... ########################################### [10 0%] 1:tde_for_pg93 ########################################### [10 0%] [root@localhost root]#
3.5 アップグレードインストール
まず、旧バージョンのメンテナンス機能のインストール先を確認してください。
インストール先確認
rpm -ql tde_for_pg93-1.1上記コマンド実行により表示される
Transparent Data Encryption を削除して V.1.2 をインス
トールする場合と、削除せず残して
Ver.1.2 をインストールする場合について下記に記載し
ます。
(下図 : インストール先確認イメージ)
[root@localhost root]# rpm -ql tde_for_pg93-1.1 /opt/nec/tdeforpg93 /opt/nec/tdeforpg93/LICENSE /opt/nec/tdeforpg93/bin /opt/nec/tdeforpg93/bin/cipher_setup.sh /opt/nec/tdeforpg93/bin/createfunc.sh /opt/nec/tdeforpg93/bin/dropfunc.sh /opt/nec/tdeforpg93/bin/pglogcol.sh /opt/nec/tdeforpg93/bin/pgmtnrevive /opt/nec/tdeforpg93/bin/pgmtnsalvage /opt/nec/tdeforpg93/bin/pgmtnverify /opt/nec/tdeforpg93/bin/pgtde /opt/nec/tdeforpg93/conf /opt/nec/tdeforpg93/conf/aws_info.properties /opt/nec/tdeforpg93/conf/kms_info.properties /opt/nec/tdeforpg93/conf/pgtde.properties
/opt/nec/tdeforpg93/jre /opt/nec/tdeforpg93/jre/COPYRIGHT /opt/nec/tdeforpg93/jre/LICENSE /opt/nec/tdeforpg93/jre/README /opt/nec/tdeforpg93/jre/THIRDPARTYLICENSEREADME-JAVAFX.txt /opt/nec/tdeforpg93/jre/THIRDPARTYLICENSEREADME.txt /opt/nec/tdeforpg93/jre/Welcome.html /opt/nec/tdeforpg93/jre/bin /opt/nec/tdeforpg93/jre/bin/ControlPanel /opt/nec/tdeforpg93/jre/bin/java /opt/nec/tdeforpg93/jre/bin/javaws /opt/nec/tdeforpg93/jre/bin/jcontrol /opt/nec/tdeforpg93/jre/bin/jjs /opt/nec/tdeforpg93/jre/bin/keytool /opt/nec/tdeforpg93/jre/bin/orbd /opt/nec/tdeforpg93/jre/bin/pack200 /opt/nec/tdeforpg93/jre/bin/policytool /opt/nec/tdeforpg93/jre/bin/rmid (以下略) [root@localhost root]#
3.5.1 旧バージョンの Transparent Data Encryption for
PostgreSQL をアップグレード
インストール先が下記
3 パターンの場合についてインストール方法を記載します。
1. 再インストール
2. インストール場所指定
3. デフォルトインストール
ストリーミングレプリケーションを利用している場合は、プライマリサーバとスタンバイ
サーバの両方に行ってください。
3.5.1.1 再インストール
インストール済みのパッケージに対して、同じバージョンかつ同じリビジョンのパッケージ
を再度インストールする場合には、以下のオプションを使用します。
--replacepkgs
ただし、デフォルトインストール以外または複数インストールしてある場合には再インス
トール先を指定します。 指定方法は
「3.3.5 インストール先指定(13 ページ)」
を参照くだ
さい。
再インストール先にある既存ファイルは上書きされますのでご注意ください。
再インストール実行コマンド
3.5.1.2 インストール場所指定
tdeforpgXX ディレクトリ(XX は PostgreSQL のメジャーバージョン。9.3 の場合は 93)のイ
ンストール先ディレクトリを指定することができます。
ディレクトリ指定は次のオプションを使用します。
[tdeforpgXX ディレクトリインストール先指定]
--prefix tdeforpgXX インストール先絶対パス
指定方法の詳細は「
「
3.3.5 インストール先指定(13 ページ)」
を参照ください。
インストール実行コマンド
rpm -Uvh --prefix インストール先絶対パス tde_for_pgXX-1.2-n.el6.x86_64.rpm
3.5.1.3 デフォルトインストール
インストール先を指定しない場合、既定ディレクトリ「
/opt/nec」に物件 tdeforpgXX がイン
ストールされます。
インストール実行コマンド
rpm -Uvh tde_for_pgXX-1.2-n.el6.x86_64.rpm3.5.2 透過的暗号化機能のアップグレード
Transparent Data Encryption for PostgreSQL Free Edition から
のアップグレード
Transparent Data Encryption for PostgreSQL Free Edition を利用しているデータベースのアップ
グレードを行う場合、バージョン番号
X.Y.Z.N の X と Y がアップグレード先のバージョン
と同一である場合に限り、
「透過的暗号化機能の無効化と再有効化(
24 ページ)」
機能を使
用してアップグレードを行うことが可能です。この条件に合致しない場合は、後述する旧
バージョンからのアップグレード手順をご参照ください。なお、アップグレードを行う前に
は、
pg_dumpall コマンドを使用してデータベース全体のバックアップを取得していただくこ
とを推奨いたします。また、ストリーミングレプリケーション構成でのアップグレード手順
については別途お問い合わせください。
透過的暗号化機能のマイナーバージョンアップグレード手順
1. 透過的暗号化機能の無効化
Transparent Data Encryption for PostgreSQL Free Edition が 提 供 し て い る 「 bin/
cipher_setup.sh」セットアップスクリプトを使用し、データベースにインストール
されている透過的暗号化機能の無効化を実行してください。無効化の手順は
「透
過的暗号化機能の無効化と再有効化(24 ページ)」
をご参照ください。
2. contrib/pgcrypto 拡張機能のアンインストール
透過的暗号化機能の無効化が完了したデータベースにスーパユーザで接続し、イ
ンストールされている
pgcrypto モジュールを DROP EXTENSION クエリでアンイ
ンストールしてください。
• 実行例
=# DROP EXTENSION pgcrypto; DROP EXTENSION
3. PostgreSQL の停止
透過的暗号化機能を利用している
PostgreSQL インスタンスを停止してください。
• 実行例
$ pg_ctl stop
waiting for server to shut down....done server stopped
4. Transparent Data Encryption for PostgreSQL の新規インストール
「デフォルトインストール(8 ページ)」
を参考にし、アップグレード先バージョン
の
Transparent Data Encryption for PostgreSQL のインストールを行って下さい。
5. PostgreSQL の起動
「透過的暗号化機能のセットアップ(8 ページ)」
の
postgresql.conf ファイルの編集
と
PostgreSQL 再起動を行って下さい。shared_preload_libraries パラメータには、
Transparent Data Encryption for PostgreSQL Free Edition で設定した値が入力されて
いるため、当該設定は削除するか、新しいパラメータ値を上書き入力してくださ
い。
6. アップグレードの実施
新 規 イ ン ス ト ー ル し た
Transparent Data Encryption for PostgreSQL の 「 bin/
cipher_setup.sh」を使用してアップグレード元の DB に対して再有効化を実施する
ことでアップグレードが完了します。再有効化の手順は
「透過的暗号化機能の無
効化と再有効化(24 ページ)」
を参照してください。このとき、再有効化決定を入
力するメッセージは以下実行例で示すとおり、通常の再有効化時とは異なるメッ
セージが出力されますので、メッセージを確認した上で操作を決定してください。
• 実行例(再有効化決定部分)
WARN: Are you sure you want to upgrade transparent data encryptio n feature from
"Free Edition 1.1.0.0" to "Enterprise Edition 1.1.1.0"? Please input [Yes/No] > Yes
以 上 で ア ッ プ グ レ ー ド は 完 了 と な り ま す 。 必 要 に 応 じ て 旧 バ ー ジ ョ ン の
Transparent Data Encryption for PostgreSQL Free Edition はアンインストールを行っ
て下さい。
旧バージョンからのアップグレード
旧バージョンの透過的暗号化機能または旧バージョンの
PostgreSQL からのアップグレード
を行う場合、透過的暗号化機能を利用するデータベースについては
PostgreSQL の標準機能
である
pg_dump/pg_restore コマンドを利用して、暗号化されたデータを新バージョンで使用
するデータベースに移行する必要があります。透過的暗号化機能を利用するデータベース
を含んだ状態で
pg_dumpall コマンドや pg_upgrade コマンドを使ってデータベースクラスタ
全体を移行する方法はサポートしていません。以下に透過的暗号化機能または
PostgreSQL
のメジャーバージョンアップ手順を示します。
透過的暗号化機能または
PostgreSQL のメジャーバージョン
アップ手順
1. ローカル鍵管理方式への変更
旧バージョンの透過的暗号化機能を利用しているデータベースの暗号鍵管理方式
に
AWS KMS 管理方式を利用している場合は、ローカル鍵管理方式への変更を
行って下さい。なおこの手順は
Transparent Data Encryption for PostgreSQL Free
Edition を使用している場合は実施する必要はありません。詳細手順については対
象バージョンの透過的暗号化機能利用の手引をご参照ください。
2. 旧バージョンのデータベースに対するデータの再暗号化(--reset オプション付き)
対象のデータベースが複数の鍵を利用している場合、対象のデータベースに対し
て、旧バージョンのコマンドを使用して--reset オプション付きのデータの再暗号化
を実施する必要があります。対象のデータベースに接続し、以下のクエリを発行
した結果が
"1"でなければこの手順を実施してください。
SELECT count(*) FROM public.cipher_key_table;
詳細手順については対象バージョンの透過的暗号化機能利用の手引をご参照くだ
さい。
3. 旧バージョンのデータベースに対する pg_dump
対象のデータベースに対して
pg_dump を実行します。透過的暗号化機能を利用す
るデータベースが複数ある場合はデータベース毎に実施してください。<dump
file>には出力先ダンプファイル名を、<database>にはバックアップ対象のデータ
ベ ー ス 名 を 指 定 し て く だ さ い 。
pg_dump 実 行 前 に PGOPTIONS 環 境 変 数 で
encrypt.enable パラメータを off にすることでユーザデータを暗号化したままの状
態でバックアップすることが可能です。
• 実行例
PGOPTIONS="-c encrypt.enable=off" pg_dump -f <dump file> -Fc <data base>
4. ユーザデータリストファイルの作成
ダンプファイルには旧バージョンの透過的暗号化機能オブジェクトも含まれてい
るため、当該ダンプファイルをそのまま利用してデータベースのリストアを行う
ことはできません。そのため、旧バージョンの透過的暗号化機能オブジェクトを
除いたユーザデータのみをリストアする為のリストアリストを作成する必要があ
ります。以下の手順に従って透過的暗号化機能を利用するデータベース毎のバッ
クアップファイルからリストア対象ユーザデータオブジェクトファイルを作成し
てください。
a.
バックアップリストファイルの作成
バックアップしたダンプファイルのリストファイルを作成します。
<dump
file>はバックアップしたダンプファイル名を、<backuplist>には任意のバック
アップリストファイル名を入力してください。
• 実行例
pg_restore -l <dump file> > <backuplist>
b. 透過的暗号化機能オペレータリストファイルの作成
透過的暗号化機能で使用しているオペレータのリストファイルを作成しま
す。この手順は透過的暗号化機能を利用するデータベースに
psql で接続で
きる必要があります。
<database>には透過的暗号化機能を利用するデータ
ベース名を、
<operator list>には、任意のオペレータリストファイル名を入力
してください。
• 実行例
psql -F ' ' -d <database> << EOF | grep -E [0-9]+ > <operato r list>
\t \a
SELECT a.oid, 'OPERATOR', c.nspname , regexp_replace(oprname , '\*','\\\*'), rolname
FROM pg_operator a JOIN pg_authid b ON a.oprowner=b.oid JOIN pg_namespace c ON c.oid=a.oprname space
WHERE a.oprcode in (select oid from pg_proc where probin li ke '%data_encryption.so'); EOF
c.
ユーザデータリストファイルの作成
作成したバックアップリストファイルとオペレータリストファイル、本製品
に 同 梱 さ れ て い る 透 過 的 暗 号 化 機 能 オ ブ ジ ェ ク ト リ ス ト フ ァ イ ル
(installed_list_v1_0.txt)を使用して、ユーザデータリストファイルを作成しま
す。
<operator list>には作成した透過的暗号化機能オペレータリストファイ
ル 名 を 、
<backuplist> に は 作 成 し た バ ッ ク ア ッ プ リ ス ト フ ァ イ ル 名 を 、
<userdata list>には任意のユーザデータリストファイル名を入力してくださ
い。複数の透過的暗号化機能を利用するデータベースがある場合はバック
アップリストファイルとオペレータリストファイルの対応付けにご注意く
ださい。
• 実行例
grep -v -f installed_list_v1_0.txt -f <operator list> <backupl ist> > <userdata list>
5. 旧バージョンの透過的暗号化機能のアンインストール
旧バージョンの透過的暗号化機能をアンインストールしてください。アンインス
トール手順については旧バージョンのセットアップカードをご参照ください。
6. 透過的暗号化機能を利用するデータベースの削除
透過的暗号化機能を利用しているデータベースは既にここまでの手順でバック
アップが完了したため、以下実行例に従って対象のデータベースを削除してくだ
さい。
• 実行例
dropdb <database>7. PostgreSQL のメジャーバージョンアップ
PostgreSQL のメジャーバージョンアップも行う場合はここで PostgreSQL のメ
ジャーバージョンアップ処理を実行してください。この手順により、透過的暗号
化機能を利用していないデータベースおよびグローバルオブジェクトについては
移行が完了します。バージョンアップ手順については本章下部の関連リンクをご
参照ください。
8. 透過的暗号化機能用データベースの再作成
透過的暗号化機能を利用するデータベースを以下実行例に従って再作成してくだ
さい。
• 実行例
createdb <database>9. 新バージョンの透過的暗号化機能のインストール
新バージョンの透過的暗号化機能をインストールしてください。インストール手
順については
「新規インストール(
8 ページ)」
をご参照ください。
10. pg_restore コマンドによるダンプファイルのリストア
透過的暗号化機能を利用するデータベースに対してバックアップファイルと作成
したユーザデータリストファイルを使用し、
pg_restore コマンドでリストアしま
す。
<dump file>にはバックアップファイル名を、<database>にはリストア対象の
データベース名を、
<userdata list>には作成したユーザデータリストファイル名を
指定してください。なお、透過的暗号化機能を利用するデータベースが複数ある
場合は、バックアップファイルとユーザデータリストファイルの対応付けにご注
意ください。
• 実行例
PGOPTIONS="-c encrypt.enable=off" pg_restore -d <database> -L <use rdata list> -e <dump file>
11. 旧バージョンで利用していた暗号鍵の登録
リストアが成功しても、このままでは暗号鍵が登録されていないため、ユーザデー
タを復号化して参照することは出来ません。そのため旧バージョンで利用してい
た最新の暗号鍵と同じ暗号鍵をリストアしたデータベースに登録する必要があり
ます。また登録する暗号鍵は暗号化アルゴリズムも一致している必要がある点に
ご注意ください。暗号鍵の登録・更新については対象バージョンの透過的暗号化
機能利用の手引をご参照ください。
関連リンク PostgreSQL アップグレード手順3.6 アンインストール
rpm のアンインストールはスーパーユーザ(root 権限)で行ないます。
まず、本ツールのインストール先を確認してください。
3.6.1 透過的暗号化機能の無効化と再有効化
透過的暗号化機能を無効化します。なお、無効にした場合でも
DB は削除されません。不要
な場合は手動で削除してください。誤って無効化してしまった場合は、再有効化を実行して
ください。
なお、ストリーミングレプリケーションを利用している場合は、プライマリサーバにのみ
行ってください。
透過的暗号化機能の無効化手順
図3-2 透過的暗号化機能無効化
1. セットアップスクリプト実行
「bin/cipher_setup.sh」セットアップスクリプトファイルを実行します。
• 実行例
[root@localhost bin]# /opt/nec/tdeforpg93/bin/cipher_setup.sh Transparent data encryption feature setup script
2. 有効化・無効化選択
透過的暗号化機能を無効化する場合は「2」を入力します。
• 実行例
Please select from the setup menu below
Transparent data encryption feature setup menu
1: activate the transparent data encryption feature 2: inactivate the transparent data encryption feature select menu [1 - 2] > 2
3. 接続情報入力
PostgreSQL への接続情報(ポート番号、ユーザ名(スーパユーザ)、パスワード)お
よび透過的暗号化機能を無効化する
DB 名を入力します。
• 実行例
Please enter database server port to connect : 5432 Please enter database user name to connect : postgres Please enter password for authentication : ***** Please enter database name to connect : tdedb
4. 無効化完了
透過的暗号化機能の無効化が完了です。
• 実行例
INFO: The transparent data encryption feature has been inactivated
透過的暗号化機能の再有効化手順
図3-3 透過的暗号化機能再暗号化1. セットアップスクリプト実行
「bin/cipher_setup.sh」セットアップスクリプトファイルを実行します。
• 実行例
[root@localhost bin]# /opt/nec/tdeforpg93/bin/cipher_setup.sh Transparent data encryption feature setup script
2. 有効化・無効化選択
透過的暗号化機能を再有効化する場合は「1」を入力します。
• 実行例
Please select from the setup menu below
Transparent data encryption feature setup menu
1: activate the transparent data encryption feature 2: inactivate the transparent data encryption feature select menu [1 - 2] > 1
3. 接続情報入力
PostgreSQL への接続情報(ポート番号、ユーザ名(スーパユーザ)、パスワード)お
よび透過的暗号化機能を再有効化する
DB 名を入力します。
• 実行例
Please enter database server port to connect : 5432 Please enter database user name to connect : postgres Please enter password for authentication : ***** Please enter database name to connect : tdedb
再有効化操作に問題がない場合は「
Yes」を入力します。
• 実行例
WARN: Are you sure you want to reactivate the transparent data en cryption feature?
Please input [Yes/No] > Yes
5. 暗号鍵管理ユーザ入力
暗号鍵を管理するユーザを入力します。既に作成済みのユーザを指定することも
出来ますが、スーパユーザを指定することは出来ません。
• 実行例(新規にユーザを作成する場合)
Please enter normal database user name for security management: se cuser
Please enter password for database user secuser: Retype password for database user secuser:
• 実行例(既存ユーザを暗号鍵管理ユーザとして使用する場合)
Please enter normal database user name for security management: se cuser
Please enter password for database user secuser:
WARN: Do you want to use existing user: "secuser" for security man agement?
Please input [Yes/No] > Yes
6. 再有効化完了
透過的暗号化機能の再有効化が完了です。
• 実行例
INFO: Transparent data encryption feature has been activated
PostgreSQL connection info for security user has created: /opt/ne c/tdeforpg93/conf/pgtde_secuser.properties
Let use this conf file in [pgtde] command with option "-conf" for PostgreSQL security user
3.6.2 透過的暗号化機能の無効化と再有効化(非対話型)
Transparent Data Encryption for PostgreSQL のバージョン 1.1.2 から
「3.6.1 透過的暗号化機能
の無効化と再有効化(24 ページ)」
の方法に加えて、非対話型で実行する事も出来ます。以
下に無効化および再有効化を非対話型で実行する場合の手順を記載いたします。なお、無効
にした場合でも
DB は削除されません。不要な場合は手動で削除してください。誤って無
効化してしまった場合は、再有効化を実行してください。
なお、ストリーミングレプリケーションを利用している場合は、プライマリサーバにのみ
行ってください。
cipher_setup.conf の編集
インストールディレクトリ配下の
/template/cipher_setup.conf.template をインストールディレ
クトリ配下の
/conf/cipher_setup.conf としてコピーし、対話型セットアップで入力が必要とな
る情報(PostgreSQL への接続情報および透過的暗号化機能をセットアップするデータベース
名、セキュリティ
DB ユーザ情報)を以下のように記載してください。
• cipher_setup.conf 設定例
connect_db_port=5432 connect_db_name=tdedb connect_db_user=postgres connect_db_password=***** security_db_user=***** security_db_password=*****注
「 設 定 項 目=設定値」の書式でスペースやタブを使わず記載します。security_db_user および security_db_password は、再有効化の際に必要となります。透過的暗号化機能の無効化手順
1. セットアップスクリプト実行
インストールディレクトリ配下の「
bin/cipher_setup.sh」を「-s 2」オプションを付
与して実行します
(デフォルトではインストールディレクトリ配下の「conf/
cipher_setup.conf」が使用されます)。
• 実行例
[root@localhost bin]# /opt/nec/tdeforpg93/bin/cipher_setup.sh -s 2 INFO: The transparent data encryption feature has been inactivated
• 実行例(デフォルト以外のコンフィグファイルを指定する場合)
[root@localhost bin]# /opt/nec/tdeforpg93/bin/cipher_setup.sh -s 2 /tmp/setup.conf
INFO: The transparent data encryption feature has been inactivated
透過的暗号化機能の再有効化手順
1. セットアップスクリプト実行
インストールディレクトリ配下の「bin/cipher_setup.sh」
「-s 1」オプションを付与し
て 実 行 し ま す
( デ フ ォ ル ト で は イ ン ス ト ー ル デ ィ レ ク ト リ 配 下 の 「 conf/
cipher_setup.conf」が使用されます)。
• 実行例
[root@localhost bin]# /opt/nec/tdeforpg93/bin/cipher_setup.sh -s 1 INFO: Reactivating transparent data encryption feature.
INFO: Transparent data encryption feature has been activated
PostgreSQL connection info for security user has created: /opt/ne c/tdeforpg93/conf/pgtde_secuser.properties
Let use this conf file in [pgtde] command with option "-conf" for PostgreSQL security user
• 実行例(デフォルト以外のコンフィグファイルを指定する場合)
[root@localhost bin]# /opt/nec/tdeforpg93/bin/cipher_setup.sh -s 1 INFO: Reactivating transparent data encryption feature.
INFO: Transparent data encryption feature has been activated
PostgreSQL connection info for security user has created: /opt/ne c/tdeforpg93/conf/pgtde_secuser.properties
Let use this conf file in [pgtde] command with option "-conf" for PostgreSQL security user
3.6.3 PostgreSQL からのメンテナンス機能削除方法
関数定義スクリプトを実行して、本ツールを適用する
DB 毎に関数定義を行ないます。 削除
する関数は
1. pgdbverify(int, cstring, cstring, cstring)
2. pgdbrevive(cstring)
です。なお、ストリーミングレプリケーションを利用している場合は、プライマリサーバに
のみ行ってください。
メンテナンス機能を
PostgreSQL から削除する手順は次の通りです。
操作は
PostgreSQL スーパーユーザで行ないます。
PostgreSQL が起動していることを確認してください。
[インストール先ディレクトリ]/bin に移動して、関数削除スクリプト dropfunc.sh を実行して
ください。
実行コマンド
./dropfunc.sh以降、画面にしたがって各項目を入力してください(以下の 関数削除イメージ) 。入力を省略
して < ENTER >を押した場合の既定値は
「3.3.4 メンテナンス機能のセットアップ(12
ページ)
」
と同様です。
[postgres@localhost bin]$ ./dropfunc.sh
Please input information, or press <ENTER> to accept the default. PGHOST
>
PGPORT [Default:'5432'] >
PGDATABASE [Default:'postgres'] >
USER [Default:'postgres'] >
Input the Password for psql?[y/n] [Default:n] >
...
DROP FUNCTION pgdbverify(int,cstring,cstring,cstring) DROP FUNCTION pgdbrevive(cstring)
SUCCESS [postgres@localhost bin]$
「SUCCESS」と表示されれば成功です。
3.6.4 アンインストール(rpm)
rpm のアンインストールはスーパーユーザ(root 権限)で行います。なお、ストリーミング
レプリケーションを利用している場合は、プライマリサーバとスタンバイサーバの両方に
行ってください。
まず、本ツールのインストール先を確認してください。
インストール先確認
rpm -ql tde_for_pgXX-1.1上 記 コ マ ン ド 実 行 に よ り 表 示 さ れ る 表 示 さ れ る
tdeforpgXX ディレクトリ配下(XX は
PostgreSQL のメジャーバージョン。9.3 の場合は 93)が削除されます(以下の インストール
先確認イメージ) 。それ以外の場所にインストールしてある場合は、個別にファイルを削除
してください。
[root@localhost root]# rpm -ql tde_for_pg93-1.1 /opt/nec/tdeforpg93 /opt/nec/tdeforpg93/LICENSE /opt/nec/tdeforpg93/bin /opt/nec/tdeforpg93/bin/cipher_setup.sh /opt/nec/tdeforpg93/bin/createfunc.sh /opt/nec/tdeforpg93/bin/dropfunc.sh /opt/nec/tdeforpg93/bin/pglogcol.sh /opt/nec/tdeforpg93/bin/pgmtnrevive /opt/nec/tdeforpg93/bin/pgmtnsalvage /opt/nec/tdeforpg93/bin/pgmtnverify /opt/nec/tdeforpg93/bin/pgtde /opt/nec/tdeforpg93/conf /opt/nec/tdeforpg93/conf/aws_info.properties /opt/nec/tdeforpg93/conf/kms_info.properties /opt/nec/tdeforpg93/conf/pgtde.properties /opt/nec/tdeforpg93/jre /opt/nec/tdeforpg93/jre/COPYRIGHT /opt/nec/tdeforpg93/jre/LICENSE /opt/nec/tdeforpg93/jre/README /opt/nec/tdeforpg93/jre/THIRDPARTYLICENSEREADME-JAVAFX.txt /opt/nec/tdeforpg93/jre/THIRDPARTYLICENSEREADME.txt /opt/nec/tdeforpg93/jre/Welcome.html
/opt/nec/tdeforpg93/jre/bin /opt/nec/tdeforpg93/jre/bin/ControlPanel /opt/nec/tdeforpg93/jre/bin/java /opt/nec/tdeforpg93/jre/bin/javaws /opt/nec/tdeforpg93/jre/bin/jcontrol /opt/nec/tdeforpg93/jre/bin/jjs /opt/nec/tdeforpg93/jre/bin/keytool /opt/nec/tdeforpg93/jre/bin/orbd /opt/nec/tdeforpg93/jre/bin/pack200 /opt/nec/tdeforpg93/jre/bin/policytool /opt/nec/tdeforpg93/jre/bin/rmid (以下略) [root@localhost root]#
Transparent Data Encryption for PostgreSQL をアンインストールします。
アンインストール実行コマンド
rpm -e tde_for_pgXX-1.1
コマンド実行後、
のように表示されれば成功です。
[root@localhost root]# rpm -e tde_for_pg93-1.1
INFO: Transparent Data Encryption for PostgreSQL 9.3 was uninstalled successfully.
HINT: To complete invalidation of transparent data encryption feature, please remove "data_encryption.so" from
'shared_preload_libraries' parameter in 'postgresql.conf' HINT: If dropfunc.sh was not run before uninstallation,
please drop below user-defined functions of PostgreSQL. - pgdbverify
- pgdbrevive [root@localhost root]#