MS SQL Serverをバックエンドデータベースとして使用
(エンタープライズエディションのみで利用可能な機能)
Password Manager ProはバックエンドとしてPostgreSQLとMS SQLデータベースの両方をサポートしますが(MySQLサポートは終了)、Password Manager ProはデフォルトでPostgreSQLで実行するように構成されており、製品にバンドルしています。MS SQLデータベースを使用してPassword Manager Proを実行する場合は、以下の手順に従ってください:
- SSL証明書を作成し、Windows証明書ストア(SQLサーバーが実行されているマシン)にインストール
- SSL証明書をPassword Manager Proにインポート
- SQL ServerでSSL暗号化を有効化
- ChangeDB.batをPassword Manager Proで実行
重要事項:
- 高レベルのセキュリティを確保するために、Password Manager ProはSSLを介してのみSQLサーバーに接続するように構成されています。
- Password Manager Proは、バージョン6400以降からのみ、バックエンドデータベースとしてMS SQLサーバーをサポートします。
- MySQLをバックエンドデータベースとして使用する以前のバージョンのPassword Manager Proを使用している場合、データをMS SQLに移行する手順はこちらをご確認ください。
要件
専用サービスアカウントを使ってPassword Manager Proサービスを実行することを推奨します。サービスアカウントがPassword Manager Proサーバーでローカル管理者グループの一部になっていることを確認します。Password Manager ProサービスおよびDB変更プロセスに使用するサービスアカウントに以下の処理に対する許可が与えられている必要があります:
- SQLサーバーで、必要なアカウントを選択し、サーバーロールで、[dbcreator]権限を入力。
- dbが作成されたら、アカウントを選択し、[dbowner]権限を入力。
1.SSL証明書を作成し、Windows証明書ストア(SQLサーバーが実行されているマシン)にインストール
Password Manager ProをSQLサーバーに接続する前に、SQL ServerでSSL暗号化を有効にする必要があります。このためには、SSL証明書を作成し、証明機関(CA)によって署名されるか、自己署名する必要があります(詳細を参照)。
1.1 証明書を生成し、サードパーティのCAで署名:
Opensslを使用して証明書を作成します。これには、秘密鍵の生成と証明書要求の生成の2つの手順が含まれます。次のコマンドを使用して、証明書を作成します。
- 秘密鍵の生成:次のコマンドを実行:
- 証明書要求の生成:以下の手順に従ってください:
- サーバーの秘密鍵を使用して、証明書要求を作成します。プロンプトが表示されたら、キーのパスフレーズ、共通名、ホスト名、またはIPアドレスを入力します。共通名には、 SQL ServerのFQDNを指定します。
openssl req -new -key server.key -out server.csr - 証明書が生成されたら、環境の要件に基づいて、 VeriSign、 Thawte、 RapidSSLなどのサードパーティCAによって署名されるか、自己署名します。CSRの提出の詳細については、対応するCAのドキュメント/Webサイトを参照してください。これは有料サービスであることを忘れないでください。数日以内に、署名されたSSL証明書とCAのルート証明書を.cerファイルとして受け取ります。
- SQLサーバーが実行されているマシンにサーバー証明書をインストールします。
- Password Manager ProサーバーにCAルート証明書をインストールします。
- サーバーの秘密鍵を使用して、証明書要求を作成します。プロンプトが表示されたら、キーのパスフレーズ、共通名、ホスト名、またはIPアドレスを入力します。共通名には、 SQL ServerのFQDNを指定します。
- SQLサーバーが実行されているマシンにサーバー証明書をインストール:MMCを使用
- SQLサーバーが実行されているマシンで[スタート] >> [実行]をクリックします。[実行]ダイアログボックスで、次のように入力します:MMC これにより、MMCコンソールが表示されます。
- [コンソール]メニューから、[スナップインの追加と削除]をクリックします。[追加]をクリックしてから、[証明書]をクリックします。もう一度[追加]をクリックします。現在のユーザーアカウント、サービスアカウント、またはコンピューターアカウントのスナップインを開くように求められます。コンピュータアカウントを選択します。
- [証明書(ローカルコンピューター)] >> [パーソナル] >> [証明書]を選択します。
- [証明書]を右クリックし、[すべてのタスク] >> [インポート]をクリックします。
- インストールする証明書を参照して選択します。
- CAのルート証明書をPassword Manager Proにインストール:
openssl genrsa -des3 -out server.key 2048
1.2 Powershellを使用して自己署名証明書を作成:
自己署名証明書を作成して使用するには、SQLサーバーがインストールされているマシンで次の手順を実行します:
- SQL Serverに移動し、Powershellを開きます(管理者として実行)。
- 次のコマンドを実行:
New-SelfSignedCertificate -DnsName FQDN of the SQL server -CertStoreLocation cert:\LocalMachine\My
- 上記のコマンドは、自己署名証明書をインストールしてローカルストアに保存します。
2.SSL証明書をPassword Manager Proにインポート
SSL証明書をPassword Manager Proにインポートするには、
- サーバー証明書をコピーして、<Password Manager Pro Installation Folder>/binのディレクトリにペーストします。
- 次のコマンドを実行:
importCert.bat <サーバー証明書の名前>
これでPassword Manager Pro証明書ストアに証明書を追加します。
3.SQL ServerでSSL暗号化を有効化
- SQLサーバーが実行されているマシンで[開始]をクリックします。Microsoft SQL Serverプログラムメニューから、[構成ツール]をクリックし、[SQL Server構成マネージャー]をクリックします。
- [SQL Serverネットワーク構成]を展開し、目的のサーバーの[プロトコル]を右クリックして、[プロパティ]をクリックします。(右ペインの特定のプロトコルではなく
ツールの左ペインの[プロトコル]セクションをクリックすることを忘れないでください。) - [証明書]タブで、証明書を使用するようにデータベースエンジンを構成します。
- データベースエンジンのForceEncryptionオプションをYesに設定して、すべてのクライアント/サーバー通信が暗号化され、暗号化をサポートできないクライアントがアクセスを拒否されるようにします(推奨設定)。クライアントアプリケーションから暗号化を要求する場合は、データベースエンジンのForceEncryptionオプションを[いいえ]に設定します(非推奨)。
- SQL Serverを再起動します。
詳細については、Microsoftサポート技術情報の記事の「SQL Server用のSSLの構成」セクションを参照してください。
4.ChangeDB.batをPassword Manager Proで実行
注:すでにMySQLでバックエンドデータベースとしてPassword Manager Proを使用していて、データをMS SQLサーバーに移行している場合は、この手順をスキップしてください。
ChangeDB.bat(Windows)またはChangeDB.sh(Linux)ファイルを編集して、SQLサーバーに関する詳細をPassword Manager Proに提供します。以下の手順に従ってください:
- <Password Manager Pro Installation Folder>/binフォルダーに移動し、ファイル(ChangeDB.bat(Windows)またはsh ChangeDB.sh(Linux))を実行します。
- 表示されたウィンドウで、以下の詳細を入力します:
- サーバータイプをSQL Serverとして選択します。
- ホスト名:MS SQLサーバーがインストールされているマシンの名前またはIPアドレス。
- インスタンス名:Password Manager Proに使用するSQLサーバーの名前付きインスタンスを指定します。インスタンス名が指定されていない場合、Password Manager Proはポート1433でデフォルトインスタンスとの接続を確立しようとします。
Password Manager ProはSSLモードでのみMS SQLに接続するため、Password Manager Proの特定のポートで実行される専用のデータベースインスタンスを作成することをお勧めします。1433以外のポート番号を指定する場合は、上記の[ホスト名]パラメーターで次のように指定できます。<hostname>:<port>
- データベース名:Password Manager Proデータベースの名前。デフォルトは「 PassTrix 」です。別のデータベース名が必要な場合は、ここで指定してください。Password Manager Proは、マスターキー、対称キーなどの作成を処理します。
- 認証:SQLサーバーに接続する方法。WindowsからSQLサーバーに接続している場合は、 Windowsを選択します。Password Manager ProサービスがSQLサーバーに接続する権限を持つサービスアカウントで実行されている場合は、 Windowsシングルサインオン機能を利用します。それ以外の場合は、SQLオプションを選択します。
認証に使用されるユーザー名とパスワードはどこにも保存されないため、Windowsオプションを選択することをお勧めします。
- ユーザーネームとパスワード:手順vでSQLオプションを選択した場合は、Password Manager Proがデータベースに接続できるユーザー名とパスワードを指定します。
ここに入力したユーザー名とパスワードは、Password Manager Proのdatabase_params.confファイルに保存されます。したがって、ホストの強化に注意してください。
Windowsからデータベースに接続している場合は、Windowsのログイン資格情報も使用できます。この場合、ユーザー名を次のように入力する必要があります。<domain-name>\<username> - 暗号化キー:データを暗号化してSQLサーバーに保存するためのキー。「デフォルト」のままにして、Password Manager Proがキーを生成できるようにすることもできます。カスタムキーが必要な場合は、[カスタム]オプションを選択します。
[カスタム]オプションを選択した場合は、次の手順を実行します:
データベースを作成>>詳細は、以下を参照 http://msdn.microsoft.com/en-us/library/aa258257(v=sql.80).aspx
マスターキーを作成>>詳細は、以下を参照 http://technet.microsoft.com/en-us/library/ms174382.aspx
証明書を作成>>詳細は、以下を参照 http://msdn.microsoft.com/en-us/library/ms187798.aspx
対称キーを作成>>詳細は、以下を参照 http://msdn.microsoft.com/en-us/library/ms188357.aspx - GUIで証明書名と対称キー名を指定します。
- 最後に、[テスト]をクリックして接続設定が適切であることを確認し、[保存]をクリックします。
上記の手順を実行した後、<Password Manager Pro Installation Folder>/confディレクトリに移動し、masterkey.keyファイルを安全な場所に移動します。SQL Serverは、階層的な暗号化とキー管理インフラストラクチャを使用してデータを暗号化します。各レイヤーは、証明書、非対称キー、および対称キーの組み合わせを使用して、その下のレイヤーを暗号化します。その1つがデータベースマスターキーであり、これはサービスマスターキーとパスワードによって作成されます。このパスワードは、Password Manager Proの<Password Manager Pro Installation Folder>/confディレクトリのmasterkey.keyという名前のファイルに保存されます。masterkey.keyファイルを安全な場所に移動することを強くお勧めします。これは、データのセキュリティを確保するためです。このキーを安全に保つように注意してください。高可用性とディザスタリカバリを実行するときに必要になります。このキーを紛失した場合は、MS SQLサーバーのセットアップを最初からやり直す必要があります。
MS SQLでの暗号化とキー管理の詳細については、このMSDNドキュメント(http://msdn.microsoft.com/en-us/library/ms189586.aspx)を参照してください。