Azure MS SQLをバックエンドデータベースとして使う

PAM360は、PostgreSQLをデフォルトバックエンドデータベースとして使い、本製品とバンドルされています。ただし、PostgreSQL、MS SQL(スタンドアロンとクラスタの両方)、およびAzure MS SQL等の他のデータベースで、本製品を構成することができます。本書では、インストールについて、他の対応可能なデータベースサーバーをバックエンドデータベースとしてセットアップする方法を学びます。

本書では、次のトピックについて学びます:

  1. SSL証明書の作成とWindows証明書ストアでのインストール
  2. SSL証明書のPAM360へのインポート
  3. SSL暗号化のSQL Serverでの有効化
  4. ChangeDB.batのPAM360での実行

メモ:高レベルのセキュリティを確保するために、PAM360 は SSL 経由でのみ SQL サーバーに接続するように構成されています。

1.SSL証明書の作成とWindows証明書ストアでのインストール
(SQL Serverが実行されているマシンで)

PAM360 を SQL Serverに接続する前に、SQL Server で SSL 暗号化を有効にする必要があります。このためには、SSL 証明書を作成し、認証局 (CA) による署名を取得するか、自己署名を取得する必要があります (詳細を参照)

A) 証明書を生成し、サードパーティのCAによって署名してもらう方法:

Opensslを使って証明書を作成します。これには次の2つの手順が含まれます - 秘密鍵の生成証明書要求の生成.次のコマンドを使用して、証明書を作成します。

a. 秘密鍵の生成:次のコマンドを実行します:

openssl genrsa -des3 -out server.key 2048

b. 証明書要求の生成: 以下の手順に従ってください:
  1. サーバーの秘密キーを使用して、証明書要求を作成します。プロンプトが表示され たら、キーのパスフレーズコモンネームホスト名、またはIPアドレスを入力します。コモンネームには、 SQL ServerのFQDNを指定します。

    openssl req -new -key server.key -out server.csr

  2. 証明書が生成されたら、環境の要件に基づいて、VeriSignThawteRapidSSL,等のサードパーティCAによって署名されるか、自己署名します。CSRの提出の詳細については、対応するCAのドキュメント/Webサイトを参照してください。これは有料サービスであることを忘れないでください。数日以内に、署名されたSSL証明書とCAのルート証明書を.cerファイルとして受け取ります。
  3. SQLサーバーが実行されているマシンにサーバー証明書をインストールします。
  4. CAルート証明書をPAM360サーバーにインストールします。
c. SQL Serverが実行されているマシンへのサーバー証明書のインストール:MMCを使用
  1. SQLサーバーが実行されているマシンで[スタート] >> [実行]をクリックします。実行ダイアログボックスに、MMCを入力します。MMCコンソールが表示されます。
  2. [コンソール]メニューから、[スナップインの追加と削除]をクリックします。[追加]をクリックしてから、[証明書]をクリックします。もう一度[追加]をクリックします。現在のユーザーアカウント、サービスアカウント、またはコンピューターアカウントのスナップインを開くように求められます。コンピュータアカウントを選択します。
  3. [証明書(ローカルコンピューター)] >> [パーソナル] >> [証明書]を選択します。
  4. [証明書]を右クリックし、[すべてのタスク] >> [インポート]の順にクリックします。
  5. インストールする証明書を参照して選択します。
PAM360 への CA のルート証明書のインストール:
  1. CAのルート証明書をコピーして、<PAM360インストールフォルダ >/binのディレクトリに貼り付けます。
  2. <PAM360インストールフォルダ>/binディレクトリから、以下のコマンドを実行します:

    importCert.bat <上で説明したように貼り付けられたルート証明書の名前>

  3. これにより、証明書が PAM360 証明書ストアに追加されます。

B) Powershellを使用して自己署名証明書を作成:

自己署名証明書を作成して使用するには、SQLサーバーがインストールされているマシンで次の手順を実行します:

  1. SQL Serverに移動し、Powershellを開きます (管理者として実行)。
  2. 次のコマンドを実行します:

    New-SelfSignedCertificate -DnsName FQDN of the SQL server -CertStoreLocation cert:\LocalMachine\My

  3. 上記のコマンドは、自己署名証明書をインストールしてローカルストアに保存します。

2.SSL証明書のPAM360へのインポート

以下の手順に従ってください:

  1. サーバー証明書をコピーして、<PAM360インストールフォルダ>/binのディレクトリにペーストします。
  2. 次のコマンドを実行します:

    importCert.bat <サーバー証明書の名前>

  3. これにより、証明書が PAM360 証明書ストアに追加されます。

3.SSL暗号化のSQL Serverでの有効化

  1. SQL Serverが実行されているマシンで[開始]をクリックします。Microsoft SQL Serverプログラムメニューから、[構成ツール]をクリックし、[SQL Server構成マネージャー]をクリックします。
  2. [SQL Serverネットワーク構成]を展開し、目的のサーバーの[プロトコル]を右クリックして、[プロパティ]をクリックします。(右ペインの特定のプロトコルではなく<instance_name>ツールの左ペインの[プロトコル]セクションをクリックすることを忘れないでください。)
  3. [証明書]タブで、証明書を使用するようにデータベースエンジンを構成します。
  4. データベースエンジンのForceEncryptionオプションをYesに設定して、すべてのクライアント/サーバー通信が暗号化され、暗号化をサポートできないクライアントがアクセスを拒否されるようにします(推奨設定)。クライアントアプリケーションから暗号化を要求する場合は、データベースエンジンのForceEncryptionオプションを[いいえ]に設定します(非推奨)
  5. SQL Serverを再起動します。

詳細については、Microsoftサポート技術情報の記事の「SQL Server用のSSLの構成」セクションを参照してください。

4.ChangeDB.batのPAM360での実行

ChangeDB.bat(Windows)またはChangeDB.sh(Linux)ファイルを編集して、SQLサーバーに関する詳細をPAM360に提供します。以下の手順に従ってください:

  1. <PAM360インストールフォルダ>/binフォルダーに移動し、ファイル(ChangeDB.bat(Windows)またはsh ChangeDB.sh(Linux))を実行します。
  2. 表示されたウィンドウで、以下の詳細を入力します:
    1. サーバータイプをSQL Serverとして選択します。
    2. ホスト名:MS SQLサーバーがインストールされているマシンの名前またはIPアドレス。
    3. インスタンス名:PAM360で使用するSQLサーバーの名前付きインスタンスを指定します。インスタンス名が指定されていない場合、PAM360はポート 1433でデフォルトのインスタンスとの接続を確立しようとします。

      PAM360 は SSL モードでのみ MS SQL に接続するため、PAM360 の特定のポートで実行される専用のデータベース インスタンスを作成することをお勧めします。1433以外のポート番号を指定する場合は、上記の[ホスト名]パラメーターで次のように指定できます:<hostname>:<port>

    4. データベース名:PAM360データベースの名前。デフォルトはPassTrixです。別のデータベース名が必要な場合は、ここで指定してください。PAM360 は、マスターキー、対称キーなどの作成を処理します。
    5. 認証:SQLサーバーに接続する方法。WindowsからSQLサーバーに接続している場合は、 Windowsを選択します。PAM360 サービスが SQL サーバーに接続する権限を持つサービス アカウントで実行されている場合は、Windows シングル サインオン機能を利用します。それ以外の場合は、SQLオプションを選択します。

      認証に使用されるユーザー名とパスワードはどこにも保存されないため、Windowsオプションを選択することをお勧めします。

    6. ユーザーネームとパスワード:手順vでSQLオプションを選択した場合は、PAM360がデータベースに接続できるユーザー名とパスワードを指定します。

      ここに入力したユーザー名とパスワードは、PAM360のdatabase_params.confファイルに保存されます。したがって、ホストの強化に注意してください。
      Windowsからデータベースに接続している場合は、Windowsのログイン認証情報も使用できます。この場合、ユーザー名を次のように入力する必要があります:<domain-name>\<username>

    7. 暗号化キー:データを暗号化して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

    8. 証明書名対称キー名をGUIに入力します。
    9. インスタンスタイプAzure SQLとして選択します。
    10. 最後に、[テスト]をクリックして接続設定が適切であることを確認し、[保存]をクリックします。

    重要な注記:上記の手順を実行した後、<PAM360インストールフォルダ>/confディレクトリに移動し、masterkey.keyファイルを安全な場所に移動します。SQL Serverは、階層的な暗号化とキー管理インフラストラクチャを使用してデータを暗号化します。各レイヤーは、証明書、非対称キー、および対称キーの組み合わせを使用して、その下のレイヤーを暗号化します。その1つがデータベースマスターキーであり、これはサービスマスターキーとパスワードによって作成されます。このパスワードは、masterkey.keyという名前の<PAM360インストールフォルダ>/confディレクトリにあるPAM360 に保存されます。Masterkey.keyファイルを安全な場所に移動することを強くお勧めします。これは、データのセキュリティを確保するためです。このキーを安全に保つように注意してください。高可用性とディザスタリカバリを実行するときに必要になります。このキーを紛失した場合は、MS SQL/Azure MS SQL Serverセットアップをすべて構成し直す必要があります。

Azure MS SQLでの暗号化とキー管理の詳細については、この MSDN ドキュメントを参照してください。