MS SQLクラスタのバックエンドデータベースとしての構成

PAM360は、バックエンドデータベースとしてMS SQLクラスタの使用をサポートしているため、安全で拡張性の高いオプションを提供します。MS SQLクラスタを使用するようにPAM360を構成する方法は、スタンドアロンの SQL Serverでセットアップする方法とは大きく異なります。これは、PAM360 が SQL ServerクラスタにSSLのみを介して接続するように設計され、高いレベルのセキュリティを確保するためです。

スタンドアロンSQLサーバーをバックエンドデータベースとして使用すると、SQLサーバーの完全修飾 DNS名を使って SSL証明書が作成され、LOCAL COMPUTER PERSONAL証明書ストアにインポートされます。SQLサーバー構成マネージャーでは、SQLサーバーの DNS名と一致する証明書が証明書構成画面に一覧表示されます。ただし、この方法は SQL Serverクラスタをセットアップする場合には適用できません。

SQLサーバークラスタの場合は、フェールオーバークラスタ化インスタンスの完全修飾 DNS名を含むサーバー証明書を取得し、フェールオーバー クラスター内のすべてのノードにインストールする必要があります。たとえば、test1.yourcompany.comおよびtest2.yourcompany.comという名前のノードを有する 2ノードクラスタと、pam360clusterという名前のフェールオーバークラスタインスタンスがある場合、pam360cluster.yourcompany.com用の証明書を取得し、両方のノードにインストールする必要があります。

メモ:

最初にテスト設定でこれらの手順を試し、すべてが正常に動作するかどうかを確認することをお勧めします。PAM360をダウンロードし、MS SQLクラスタをバックエンドとして使用してみてください。

MSSQL Always-On failover clusterを使用するには、下の説明のとおり、pam360_key.keyにエントリを追加する必要があります:

ENCRYPTIONKEY=n2Z(-*zcPioHfYpmrQwrmICiXmiRUbhQ
MASTERKEY=s4X)6@ajSXCETRC

マスター暗号化キーは、<PAM360-Home>\confフォルダにあるmasterkey.keyファイルにあります。

以下のセクションでは、PAM360 のバックエンドデータベースとしてMS SQL Clusterを構成する方法について説明します:

  1. SSL証明書の作成とWindows証明書ストアでのインストール
  2. SQL Server が実行されているノードすべてにサーバー証明書をインストール
  3. サーバー証明書をPAM360にインストール
  4. SQL Serverが実行されているノードすべてでSSL暗号化を有効化
  5. ChangeDB.batを実行
  6. トラブルシュートのヒント

1.SSL証明書の作成とWindows証明書ストアでのインストール
(SQL Serverが稼働しているマシン上)

PAM360 を SQL Serverに接続する前に、SQL Server で SSL 暗号化を有効にする必要があります。このSSL暗号化には、認証局(CA)により署名された SSL証明書、または自己署名の SSL証明書が必要です。

メモ:

SQL クラスターに使用される SQL 証明書には、次の属性が含まれている必要があります:

CN: cl-sql.example.com
SAN:
<li>sql-node1
sql-node1.example.com
sql-node2
sql-node2.example.com
sqlinstance
sqlinstance.example.com
</li>


1.1 証明書の生成と第三者認証局による署名

CA署名済みのSSL証明書をお持ちの場合は、手順4から証明書のインストールに直接進んでください。それ以外の場合は、以下の手順1~3に従って、新しいCA署名付き証明書を生成してインストールしてください:

  1. 初めに、opensslを使って秘密鍵を生成します。端末で以下のコマンドを実行してください:
    openssl genrsa -des3 -out server.key 2048
    このコマンドは2048ビットのRSA秘密鍵を生成し、パスフレーズで保護された状態でserver.keyに保存します。
  2. 秘密鍵を使用して証明書署名要求(CSR)を作成します。この要求は、署名のために認証局(CA)に送信されます。次のコマンドを実行してください:
    openssl req -new -key server.key -out server.csr
    このプロセス中に、キーのPassphraseを入力し、Common Name、Hostname、またはIP Addressなどの情報を提供するよう求められます。ここで、Common NameはSQLサーバーのFully Qualified Domain Name (FQDN)(FQDN)である必要があります。
  3. 生成されたCSR(server.csr)を、VeriSign、Thawte、RapidSSLなどの第三者認証局に送信して署名してもらいます。CSRの提出方法および署名プロセスの完了方法については、各認証局のドキュメントを参照してください。このサービスは通常有料であることに注意してください。数日以内に、署名されたSSL証明書とCAのルート証明書が.cerファイルで届きます。
  4. SQLサーバーが実行されているノードすべてにサーバー証明書をインストールします。
  5. 以下の手順に従って、PAM360にCAルート証明書をインストールしてください:
    1. CAのルート証明書を <PAM360_インストールディレクトリ>\binフォルダにコピーしてください。
    2. <PAM360_インストールディレクトリ>\binフォルダから、以下のコマンドを実行してください:
      importCert.bat <Absolute-Path-of-the-Certificate>
      <Absolute-Path-of-the-Certificate> を、コピーしたルート証明書ファイルの実際のパスに置き換えてください。このコマンドは、ルート証明書をPAM360証明書ストアに追加します。

1.2 PowerShell を使用した自己署名証明書の作成

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

  1. SQL Serverに移動し、Powershellを開きます (管理者として実行)。
  2. 以下のコマンドを実行してください。このコマンドを実行すると、自己署名証明書がローカルストアにインストールされ、保存されます。
    New-SelfSignedCertificate -DnsName FQDN of the SQL server -CertStoreLocation cert:\LocalMachine\My
    ノードすべてにさらにサーバー証明書をインストールするには、作成したサーバー証明書が必要です。次の手順を使って、作成した自己署名証明書を .pfx ファイルとしてエクスポートします:
    1. [Start]をクリックし、[Run]を選択します。「Run」ダイアログボックスに「MMC」と入力し、Enterキーを押します。これにより、Microsoft Management Console (MMC) が開きます。
    2. Consoleメニューから「Add/Remove Snap-in」を選択します。
    3. 「Add」をクリックし、次に「Certificates」を選択して、もう一度「Add」をクリックします。
    4. プロンプトが表示されたら、Computer Accountの証明書の管理を選択してください。
    5. 「Manage User Certificates (Local Computer)」 → 「Personal」 → 「Certificates」に移動します。
    6. 作成した自己署名証明書を見つけ、右クリックして.pfx ファイルとしてエクスポートします。

2.SQL Serverが実行されているノードすべてにサーバー証明書をインストール

  1. (SQL サーバーが実行されているマシンで) [Start] → [Run] をクリックします。[Run] ダイアログ ボックスに[MMC]と入力します。
  2. コンソールメニューで、[Add/Remove Snap-in]をクリックし、[Add] → [Certificates]の順にクリックします。もう一度[Add]をクリックします。現在のユーザーアカウント、サービスアカウント、またはコンピューターアカウントのスナップインを開くように求められます。
  3. Computer Accountを選択します。
  4. [Certificates (Local Computer)] → [Personal] → [Certificates] を選択します。
  5. [Certificates] →[Click All Tasks]→[Import]の順に右クリックします。
  6. インストールする証明書をBrowseして選択します。
    importcertificate

3.サーバー証明書をPAM360にインストール

  1. サーバー証明書をコピーし、<PAM360_インストールディレクトリ>/binフォルダに貼り付けます。
  2. <PAM360_インストールディレクトリ>/binフォルダから次のコマンドを実行します。これにより、証明書が PAM360 証明書ストアに追加されます。
    importCert.bat <Absolute-Path-of-the-Certificate>

4.SQL Server が実行されているすべてのノードで SSL 暗号化を有効化

SSLを使って接続を暗号化するには、SQL Serverはサムプリントにより識別される特定の証明書を使用します。この証明書は次のレジストリ キーに格納されています:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Certificate

このレジストリキーには、サーバー上の各証明書を区別する固有識別子である証明書のサムプリントが含まれています。

registry

SSL暗号化を適切に構成するには、次の手順に従ってレジストリ内のサムプリントをコピーして更新します:

  1. サムプリントをコピー:初めに、証明書からサムプリントをコピーします。メモ帳などのテキストエディタに貼り付けて、サムプリントに隠れた Unicode文字が含まれていないことを確認します。
    certificate
  2. ANSI形式への変換: NotepadファイルをANSI形式で保存します。ダイアログボックスが表示されたら、[OK]をクリックして変換を続行します。
  3. 余分な文字を削除:ANSI形式のファイルを再度開き、変換中に表示された可能性のある不要な「?」文字を削除します。サムプリント内の文字間のスペースを削除します。
  4. レジストリを更新:不要な文字を取り除いたサムプリントを取得したら、以下のレジストリにある証明書プロパティに保存します。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Certificate

これらの手順に従うことで、SQL Serverが実行されているノードすべてで、SSL暗号化が適切に設定されていることを確認できます。

5.ChangeDB.batを実行

上の手順を完了した後、ChangeDB.batをPAM360で実行する必要があります。詳細は、SQL Serverのバックエンドデータベースとして構成のセクション4を参照してください。

6.トラブルシュートのヒント


1.SQL ServerでSSL暗号化を有効にするとき、証明書ドロップダウンにサーバー証明書が表示されませんか?

MMCコンソールに追加したサーバー証明書が証明書ドロップダウンに表示されない場合は、SSL暗号化用のSQL Server証明書を手動で更新する必要があります。SQL Server が接続を暗号化するために使用する証明書は、次のレジストリ キーで指定されます:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib

このキーには、サーバー内の各証明書を一意に識別するサムプリントと呼ばれる証明書のプロパティが含まれています。

registry

上記の手順を使って作成された証明書のサムプリント値をコピーし、レジストリの証明書プロパティで更新する必要があります。

certificate

注意:サムプリントを正しくコピーして更新するには、以下の手順に従ってください:

  1. サムプリントからUnicode文字を削除します。これを行うには、サムプリントをメモ帳に貼り付けます。
  2. メモ帳の内容をANSI形式で別のファイルとして保存します。
  3. 次に、ANSI形式のファイルを開き、ファイルから[?]文字を削除します。
  4. サムプリント内の文字間のスペースを削除します。
  5. このサムプリントをHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\Certificateプロパティに保存します。