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