格納データを暗号化する場合は、以下のセットアップを行ってください。
キー管理サーバまたはキー管理ストレージの準備
マスタ暗号化キーの作成とバックアップ
格納データの暗号化指定
格納データの暗号化の環境を以下に示します。
マスタ暗号化キーは、RDBディクショナリや格納データと同時に盗難されないようにするため、分けて管理する必要があります。そのため、マスタ暗号化キーファイルを管理するための、キー管理サーバまたはキー管理ストレージを事前に用意してください。
キー管理サーバまたはキー管理ストレージとデータベースサーバの間の通信路を安全にするために、Security Architecture for Internet Protocol(IPsec)を導入するなどし、安全性を確保することを推奨します。
IPsecはIPパケット単位にデータを暗号化することができる通信プロトコルです。OSのIPsecによる通信機能を設定することで通信路の盗聴を防止します。
IPsecの導入方法については、使用しているシステムベンダのドキュメントを参照してください。
キー管理サーバまたはキー管理ストレージの準備手順の例を以下に示します。
実行環境 | 手順 |
---|---|
キー管理サーバまたはキー管理ストレージ | 1) IPsecの設定(注) |
2) マスタ暗号化キーファイルの格納ディレクトリの設定 | |
データベースサーバ | 3) IPsecの設定(注) |
4) マスタ暗号化キーファイルの格納ディレクトリのマウント |
注) IPsecを導入する場合に行ってください。
IPsecを導入する場合は、使用しているシステムベンダのドキュメントを参照して、IPsecを設定してください。
キー管理サーバに、マスタ暗号化キーファイルの格納ディレクトリを作成します。
キー管理ストレージに作成する場合は、ネットワーク上のディスク装置に付属する管理ソフトウェアで下記と同様の設定を行ってください。
データベースサーバのデータベース管理者と同じグループID、ユーザIDのユーザを作成します。
作成したディレクトリのアクセス権は、OSの機能を利用して、データベース管理者にのみ読込み権を設定してください。
キー管理サーバに/symfo/mstkeyのディレクトリを作成する場合
# groupadd -g 600 dbgrp1 # useradd -u 600 -g dbgrp1 dbuser1 # mkdir -p /symfo/mstkey # chown dbuser1:dbgrp1 /symfo/mstkey # chmod 700 /symfo/mstkey
IPsecを導入する場合は、使用しているシステムベンダのドキュメントを参照して、IPsecを設定してください。
キー管理サーバまたはキー管理ストレージに作成したディレクトリを、データベースサーバからアクセスできるようにネットワーク経由でマウントします。
ネットワークファイルの詳細については、“1.3.5 ネットワークファイルの設定”を参照してください。
データベースサーバから/symfo/mstkeyをNFSを使ってマウントする場合
# mount -F nfs -o soft,vers=3 keysvr:/symfo/mstkey /symfo/mstkey
マスタ暗号化キーは、RDBディクショナリや格納データと同時に盗難されないようにするため、分けて管理する必要があります。そのため、マスタ暗号化キーファイルを管理するための、キー管理サーバまたはキー管理ストレージを事前に用意してください。
キー管理サーバまたはキー管理ストレージとデータベースサーバの間の通信路を安全にするために、Secure Shell File System(SSHFS)を導入するなどし、安全性を確保することを推奨します。
SSHFSを導入しない場合
SSHFSを導入しない場合の手順を以下に示します。
実行環境 | 手順 |
---|---|
キー管理サーバまたはキー管理ストレージ | 1) マスタ暗号化キーファイルの格納ディレクトリの設定 |
データベースサーバ | 2) マスタ暗号化キーファイルの格納ディレクトリのマウント |
キー管理サーバに、マスタ暗号化キーファイルの格納ディレクトリを作成します。
キー管理ストレージに作成する場合は、ネットワーク上のディスク装置に付属する管理ソフトウェアで下記と同様の設定を行ってください。
データベースサーバのデータベース管理者と同じグループID、ユーザIDのユーザを作成します。
作成したディレクトリのアクセス権は、OSの機能を利用して、データベース管理者にのみ読込み権を設定してください。
キー管理サーバに/symfo/mstkeyのディレクトリを作成する場合
# groupadd -g 600 dbgrp1 # useradd -u 600 -g dbgrp1 dbuser1 # mkdir -p /symfo/mstkey # chown dbuser1:dbgrp1 /symfo/mstkey # chmod 700 /symfo/mstkey
キー管理サーバまたはキー管理ストレージに作成したディレクトリを、データベースサーバからアクセスできるようにネットワーク経由でマウントします。
ネットワークファイルの詳細については、“1.3.5 ネットワークファイルの設定”を参照してください。
データベースサーバから/symfo/mstkeyをNFSを使ってマウントする場合
# mount -t nfs -o soft keysvr:/symfo/mstkey /symfo/mstkey
SSHFSを導入する場合
SSHFSを導入する場合の手順の例を以下に示します。
SSHFSに関する手順は、ご使用になるソフトウェアに合わせて実施してください。
実行環境 | 手順 |
---|---|
キー管理サーバまたはキー管理ストレージ | 1) マスタ暗号化キーファイルの格納ディレクトリの設定 |
2) SSHサービス設定ファイルの変更 (注) | |
3) SSHサービス(sshd)の再起動 (注) | |
4) SSHサービス(sshd)の確認 | |
データベースサーバ | 5) SSHFSに必要なプログラムのインストール |
6) マウント操作を実行するユーザの登録 | |
7) スーパユーザへのアクセス許可の設定 | |
8) SSHFSの設定内容をOSに反映 | |
9) マスタ暗号化キーファイルの格納ディレクトリのマウント |
注) IPv6のネットワーク環境で運用する場合に行ってください。
キー管理サーバに、マスタ暗号化キーファイルの格納ディレクトリを作成します。
キー管理ストレージに作成する場合は、ネットワーク上のディスク装置に付属する管理ソフトウェアで下記と同様の設定を行ってください。
データベースサーバのデータベース管理者と同じグループID、ユーザIDのユーザを作成します。
作成したディレクトリのアクセス権は、OSの機能を利用して、データベース管理者にのみ読込み権を設定してください。
キー管理サーバに/symfo/mstkeyのディレクトリを作成する場合
# groupadd -g 600 dbgrp1 # useradd -u 600 -g dbgrp1 dbuser1 # mkdir -p /symfo/mstkey # chown dbuser1:dbgrp1 /symfo/mstkey # chmod 700 /symfo/mstkey
IPv6のネットワーク環境で運用する場合、SSHサービス(sshd)のSSHサービス設定ファイル(sshd_config)に、ListenAddressキーワードを指定して、IPv6アドレスによるデータベースサーバからの接続を受け付けられるようにします。
ListenAddress ::
IPv6のネットワーク環境で運用する場合、SSHサービスを再起動します。
$ /sbin/service sshd restart
SSHサービスが起動されているかを確認します。
$ /sbin/service sshd status
以下のプログラムのインストールおよび設定をします。
FUSE (Filesystem in Userspace)
SSHFS-FUSE
SSHFSとしてマウント操作を実行するユーザを、fuseグループに追加します。/etc/groupファイルを編集してください。
fuse:x:119:dbuser
キー管理サーバまたはキー管理ストレージに作成したディレクトリを、スーパユーザがアクセスできるように設定します。
# echo 'user_allow_other' >> /etc/fuse.conf
設定した内容をOSに反映するために、データベースサーバを再起動します。
# shutdown -r now
キー管理サーバまたはキー管理ストレージに作成したディレクトリを、データベースサーバからアクセスできるようにネットワーク経由でマウントします。
マウント後は、正しくマウントされたかの確認をしてください。
$ sshfs keysvr:/symfo/mstkey /symfo/mstkey -o allow_root $ df -k
RDBディクショナリ内にある内部暗号化キーは、マスタ暗号化キーを使用して作成しています。
そのため、RDBディクショナリのリカバリ時には、RDBディクショナリのバックアップを取得したときに使用していたマスタ暗号化キーが必要です。
マスタ暗号化キーを紛失した場合、データを復号できなくなります。そのため、マスタ暗号化キーファイルの作成が完了したら、マスタ暗号化キーファイルのバックアップを行ってください。
マスタ暗号化キーは、定期的に変更を行う必要があるため、RDBディクショナリのバックアップと関連づけて管理してください。例えば、マスタ暗号化キーファイルの名前には、作成および変更をした日付を入れておくことを推奨します。
参照
マスタ暗号化キーの変更方法については、“RDB運用ガイド”を参照してください。
マスタ暗号化キーの作成
マスタ暗号化キーを、キー管理サーバまたはキー管理ストレージに作成します。
マスタ暗号化キーの作成は、データベースサーバ上でrdbenckeyコマンドを実行して行います。
RDBディクショナリ内にある内部暗号化キーは、マスタ暗号化キーファイルの配置先を保持しています。そのため、RDBディクショナリをリカバリする際、RDBディクショナリのバックアップ取得時に使用していたマスタ暗号化キーファイルを、そのときの配置先に復元する必要があります。マスタ暗号化キーの作成や変更で配置先を変更すると管理が大変になるため、マスタ暗号化キーファイルの作成先は、同じディレクトリにしておくことを推奨します。
マスタ暗号化キーファイルを、キー管理サーバ上の/symfo/mstkeyディレクトリに、“masterkey20120701.dat”というファイル名で作成する場合
$ rdbenckey -S /symfo/mstkey/masterkey20120701.dat
参照
rdbenckeyコマンドの詳細については、“コマンドリファレンス”を参照してください。
マスタ暗号化キーのバックアップ
マスタ暗号化キーのバックアップは、ディスクが破損した場合に備えて、マスタ暗号化キーファイルとは、別のディスクで管理してください。また、RDBディクショナリと同時に盗難されないように、RDBディクショナリのバックアップとも分けて管理してください。
マスタ暗号化キーファイルを復元しやすくするため、同じファイル名を使用することを推奨します。
キー管理サーバ上で、バックアップ用ディスクをbackupkeyという名称でマウントしてバックアップする場合
$ cp /symfo/mstkey/masterkey20120701.dat /backupkey/mstkey/.
表に格納するデータおよび監査ログに格納するデータを暗号化します。
表に格納するデータの暗号化
表に格納するデータの暗号化は、データベーススペースの定義時に行います。以下に例を示します。
データベーススペースDBSP_1に対して、暗号化アルゴリズムAES256を指定する場合
CREATE DBSPACE DBSP_1 ALLOCATE RAWDEVICE /dev/rdsk/c1t0d1s1
ATTRIBUTE ENCRYPTION (AES256);
データベーススペースDBSP_1に対して、暗号化アルゴリズムAES256を指定する場合
CREATE DBSPACE DBSP_1 ALLOCATE RAWDEVICE /dev_symfoware/raw10
ATTRIBUTE ENCRYPTION (AES256);
監査ログに格納するデータの暗号化
監査ログに格納するデータの暗号化は、rdbauditコマンドで指定します。
詳細は、“3.9.3 監査ログデータベースの作成”を参照してください。
SPARC64(TM) Xプロセッサを搭載したSolaris 11.1以降のシステムでは、CPUの命令レベルでAESの処理をサポートする「Software on Chip」の機能により、暗号化/複合を高速化させることができます。
本機能を利用するためには、Symfoware/RDBの起動前に、暗号化サービスが利用できる状態になっている必要があります。デフォルトでは暗号化サービスは利用できる状態になっていますが、何らかの理由で利用できない状態になっている場合には、データベースサーバにおいて、以下のコマンドを実行することにより暗号化サービスの状態を確認し、起動してください。
暗号化サービスの状態を確認し、起動します。
$ svcs cryptosvc $ svcadm enable svc:/system/cryptosvc
注意
暗号化サービスが利用できない状態でSymfoware/RDBを起動した場合、「Software on Chip」の効果を得られない状態で動作します。このため、暗号化サービスを起動した後に、Symfoware/RDBを再起動することで対処してください。なお、効果が得られない状態でSymfoware/RDBを起動した場合、RDBREPORTで指定したメッセージログファイルに“qdg14349w”が出力されます。
参照
暗号化サービスの詳細は、システムベンダのドキュメントを参照してください。