Microsoft SQL Serverの高可用性

ミッションクリティカルな環境で重要な要件の1つは、パスワードへのアクセスが妨害されないことです。PAM360には、この実現のため、高可用性機能があります。Microsoft SQL (MS SQL) サーバーで実行されるセットアップの高可用性 (HA) を構成する際、マスターとスレーブの MS SQL データベース間でレプリケーションを実行する必要があります。これは、SQL Server Management StudioとPAM360から2つの方法で実行できます。本書では、PAM360自体を使ってマスターとスレイブMS SQLデータベース間のMS SQL Serverレプリケーションの構成プロセスについて案内します。

別のドキュメントでは、MS SQL サーバーの同じ高可用性構成について説明していますが、唯一の違いは、マスターとスレーブの MS SQL データベース間のレプリケーションが Microsoft SQL Server Management Studioを使用して実行されることです。

本書を終わることで、Microsoft SQL Serverで実行しているセットアップでの高可用性構成について以下のトピックを学んだことになります:

  1. 高可用性はどのように機能しますか?
  2. PAM360での高可用性アーキテクチャ
  3. シナリオ例
  4. 高可用性のセットアップ
  5. 高可用性セットアップの確認

1.高可用性はどのように機能しますか?

  • 冗長PAM360サーバーとデータベースインスタンスがあります。
  • 1つのPAM360インスタンスはプライマリで、ユーザーは読取/書込みアクセスができます。すべてのユーザーはプライマリにのみ接続されます。
  • 他のインスタンスは、セカンダリやスタンバイとして機能します。
  • プライマリ サーバーとセカンダリ サーバーの両方のデータは常に相互に同期されます。
  • PAM360は、SQL Serverのデータレプリケーション技法を利用して、セキュア暗号化チャンネルで生じるデータ同期化を行います。
  • プライマリ サーバーがダウンすると、完全に機能するプライマリ サーバーがサービスに戻るまで、セカンダリ サーバーはユーザーに[読み取り/書き込み]アクセスを提供します (パスワードのリセットを除く)。この間にデータベースに加えられた変更は、接続が復元されると自動的に同期されます。

2.PAM360での高可用性アーキテクチャ

3.シナリオ例

PAM360のHAアーキテクチャは、異なる2つのシナリオに適合する設計になっています。詳細な説明は、下表を参照してください:

シナリオ 1

プライマリとセカンダリサーバーを同じネットワークでホスティング

セカンダリサーバーは、プライマリサーバーが運用されているのと同じネットワークに設置されています。セカンダリサーバーには、プライマリサーバーの故障時に、読取/書込みアクセス権(リセット操作時は除く)が付いています。

同じネットワーク内のプライマリとセカンダリおよびプライマリのダウン:

プライマリとセカンダリサーバーが同じ地理的な場所、例えば、'A'に表示されるとします。プライマリが故障またはダウンした場合、プライマリとセカンダリサーバー両方のユーザーは、セカンダリからパスワードに緊急アクセスすることになります。

シナリオ2

プライマリとセカンダリサーバーを異なるネットワークでホスティング

プライマリとセカンダリサーバーが異なるネットワーク上に設置されています。リモートネットワークにあるセカンダリサーバーには、WAN リンクの故障またはプライマリサーバーの故障時、読取/書込みアクセス権(パスワードリセット操作時は除く)が付与されます。

異なる場所にあるプライマリとセカンダリと、WANリンクの故障がそれらの場所の間で発生した場合:

プライマリサーバーが地理的な場所'A'にあり、セカンダリサーバーが別の場所'B'に表示されるとします。デフォルトでは、'A'と'B'の両方のユーザーがプライマリに接続され、ルーチンパスワード管理のアクティビティを実行することになります。プライマリとセカンダリ両方のデータは、相互同期化されます。次に、2つの場所でネットワーク接続損失が発生したことを考えてみてください。そのような状況では、2つのサーバーが独立して作動しはじます。すなわち、場所'A'のユーザーは、プライマリサーバーに接続されたままで、通常どおり運用を実行します。他方、場所'B'のユーザーは、セカンダリサーバーからパスワードへの緊急アクセス権を付与されます。'A'と'B'との間で接続が再確立されると、両方の場所にあるデータが同期化されます。


3.1 監査証跡はどうなりますか?

上記の高可用性シナリオでは、監査トレイルは通常どおり記録されます。シナリオ2では、2つの場所の間にネットワーク接続があるかぎり、プライマリにより監査トレイルが印刷されます。ユーザーがセカンダリに接続すると、'パスワード取り込み'、'ログイン'および 'ログアウト'等の操作を印刷します。2つの場所でネットワーク接続が回復すると、監査データが同期化されます。シナリオ1では、プライマリがクラッシュすると、'ユーザーがセカンダリで実行した'パスワード取り込み'、'ログイン'および'ログアウト'が監査されます。他の監査レコードは、スタンバイですでに同期化されます

4.高可用性のセットアップ - PAM360を使ったレプリケーションの場合

高可用性のしくみの図示:

必要な手順

手順1:

  • プライマリサーバーが実行中の場合は停止します

手順2:

  • PAM360プライマリサーバーが使用する MS SQL Serverは、マスタ―データベースとして機能します。ここで、MSSQL の別のインスタンスをスレーブ データベースとして指定する必要があります。次に、MS SQL ServerスレイブデータベースのSSL証明書をPAM360プライマリサーバー^にインポートする必要があります。この手順に進む前に、MS SQL スレーブ サーバーも SSL で構成されていることを確認してください。これは、本書の手順1、2、3により、実行できます。

スレイブSQL ServerのSSL証明書をPAM360プライマリにインポートするには:

  • <PAM360 Primary Installation Folder>/binディレクトリに移動し、コマンドimportCert.bat <slavecert.cer >を実行します

手順3:

  • <PAM360 Primary Installation Folder>/confディレクトリに移動し、ファイルmasterkey.keyを開き、SQL マスターキーをコピーします。これは次の手順で使用します。(SQL サーバーの統合中に推奨されているようにこのキーを安全な場所に移動した場合、次の手順で使用できるようにキーを保管してください)。

手順4:

マスター MS SQL データベースとスレーブ MS SQL データベースの間で MS SQL サーバーのレプリケーションを構成する必要があります。

  • <PAM360 Primary Installation Folder>/bin ディレクトリに移動し、コマンドConfigureReplication.bat (Windowsで)またはsh ConfigureReplication.sh (Linux)を実行します
  • 必要に応じて、マスター データベースとスレーブ データベースに関する詳細、およびその他の詳細を指定します

[マスター データベースの詳細] で、次の詳細を入力します:

    1. マスターホスト名: MS SQL サーバーがインストールされているマシンの名前または IP アドレス。
    2. インスタンス名:SQL Serverの氏名インスタンスを指定できます。これは、PAM360に使用する必要があります。インスタンス名が指定されていない場合、PAM360は、ポート1433のデフォルトインスタンスと接続を確立しようとします。
    3. PAM360 は SSL モードでのみ MS SQL に接続するため、PAM360 の特定のポートで実行される専用のデータベース インスタンスを作成することをお勧めします。1433以外のポート番号を指定する場合は、上記の[ホスト名]パラメーターで次のように指定できます:<hostname>:<port>

    4. ユーザーネームとパスワード:PAM360がデータベースに接続するのに必要なユーザー名とパスワードを指定します。(Sysadmin として SQL 役割を持つユーザー名を指定する必要があります。PAM360は、このユーザー名とパスワードをいずれの場所にも保存しません。これは、MS SQL マスター サーバーとスレーブ サーバー間のレプリケーションを構成する際に、いくつかのクエリを実行するためにのみ使用されます)。
      ここでは、Windows からデータベースに接続している場合は、Windows ログイン認証情報も使用するオプションがあります。この場合、ユーザー名を <domain-name>\<username> として入力する必要があります
    5. マスターデータベース名: PAM360データベースの名前。
    6. マスターキー:上記の手順 3 でマスター キーのコピーを貼り付けます。

[スレーブ データベースの詳細] で、次の詳細を入力します:

    1. スレーブホスト名: MS SQL サーバーがインストールされているマシンの名前または IP アドレス。
    2. インスタンス名:SQL Serverの氏名インスタンスを指定できます。これは、PAM360に使用する必要があります。インスタンス名が指定されていない場合、PAM360は、ポート1433のデフォルトインスタンスと接続を確立しようとします。
    3. PAM360 は SSL モードでのみ MS SQL に接続するため、PAM360 の特定のポートで実行される専用のデータベース インスタンスを作成することをお勧めします。1433以外のポート番号を指定する場合は、上記の[ホスト名]パラメーターで次のように指定できます:<hostname>:<port>

    4. ユーザーネームとパスワード:PAM360がデータベースに接続するのに必要なユーザー名とパスワードを指定します。(Sysadmin として SQL 役割を持つユーザー名を指定する必要があります。PAM360は、このユーザー名とパスワードをいずれの場所にも保存しません。これは、MS SQL マスター サーバーとスレーブ サーバー間のレプリケーションを構成する際に、いくつかのクエリを実行するためにのみ使用されます)。
      ここでは、Windows からデータベースに接続している場合は、Windows ログイン認証情報も使用するオプションがあります。この場合、ユーザー名を <domain-name>\<username> として入力する必要があります。
    5. スレーブデータベース名:PAM360データベースの名前。デフォルトは"pam360standby"です。(プライマリ サーバーの ChangeDB.bat を構成する際に[暗号化キー]のオプション[カスタム]を選択した場合は、スレーブ用の新しいデータベースを作成し、マスター キーを作成し、証明書を作成し、AES 256 暗号化を使用して対称キーを作成する必要があります。ここでスレーブ データベース名を指定する必要があります。)
    6. [テストと構成]をクリックしてレプリケーションを完了します。このプロセスには約 30 分以上かかります。

手順5:

プライマリサーバーを起動します

手順6:

PAM360の別のインスタンスを個別ワークステーションに別のインスタンスとしてインストールします。インストールプロセス中に、PAM360をセカンダリとしてインストールするには、オプション"このサーバーを高可用性セカンダリサーバーとして構成(読取専用)"を選択する必要があります。インストール後、PAM360セカンダリサーバーを起動する必要はありません

手順7:

PAM360セカンダリサーバーのインストール後に変更し、以下を実行して、MS SQLで実行します:

ChangeDB.batを実行

次に、ファイル<PAM360 Standby Installation Folder>/bin ChangeDB.bat (Windows)または<PAM360 Standby Installation Folder>/bin sh ChangeDB.sh (Linux)を編集して、SQL Serverについての詳細をPAM360に提供する必要があります

SQL Server を選択し、他の値を入力します

    1. スレーブデータベースのホスト名: MS SQL サーバーがインストールされているマシンの名前または IP アドレス。
    2. ポート:PAM360がデータベースと接続する必要があるポート番号。デフォルトは1433です。
    3. データベース名:スレーブ データベースの名前。ここでは、上記の手順 4 で行ったとおりにスレーブ データベースの名前を正確に指定するように注意してください。
    4. 認証:SQL サーバーに接続する方法。SQL ServerをWindowsから接続している場合、Windowsシングルサインオンファシリティを利用するオプションがあります。ただし、PAM360サービスは、SQL Serverに接続する権限があるサービスアカウントで実行されている琴が条件です。その場合は、[Windows]オプションを選択してください。それ以外の場合は、[SQL]オプションを選択します。認証に使用されるユーザー名とパスワードはどこにも保存されないため、[Windows]オプションを選択することをお勧めします。
    5. ユーザーネームとパスワード:オプション"SQL"を選択した場合、PAM360をデータベースに接続する必要があるユーザー名とパスワードを指定します。ここで入力したユーザー名とパスワードは、PAM360に保存されます。したがって、ホストの強化に注意する必要があります。
      ここでは、Windows からデータベースに接続している場合は、Windows ログイン認証情報も使用するオプションがあります。この場合、ユーザー名を <domain-name>\<username> として入力する必要があります
    6. 暗号化キー:データをSQLサーバーで暗号化および保存するキー。"デフォルト"のままにするか、PAM360にしてキーを生成します。カスタム キーを使用してマスター データベースを構成した場合は、ここでも[カスタム]を選択する必要があります。
    7. オプション[カスタム:]を選択した場合上記を実行した後、[マスター データベース]で説明したように、GUI で証明書名と対称キー名を指定する必要があります
    8. [テスト]をクリックし、[保存]をクリックします。

手順8:

プライマリからセカンダリにPAM360ライセンス、カスタムアイコンおよびリブランディング設定(該当する場合)を実行するには、以下を行います<PAM360_Primary_Installation_Folder>\replication directory に行き、SQLServerHAPack.zip をコピーします。プライマリインストールからコピーしたこのzipファイルを<PAM360_Secondary_Installation_Folder>に入れ、解凍します。<PAM360_Secondary_Installation_Folder>のみからファイルを抽出するように注意します。既存のファイルは上書きされます。これは、<PAM360_Secondary_Installation_Folder>/SQLServerHAPackディレクトリでは解凍しないでください。

手順9:

SQLServerHAPack.zipをPAM360セカンダリサーバーで抽出した後、<PAM360_Secondary_Installation_Folder>/confフォルダに移動し、manage_key.confを編集し、pam360_key.key (暗号化マスターキー)のライセンスを指定します。次に、PAM360セカンダリサーバーを起動します。.PAM360には、起動するごとに、フルパスでアクセス可能なpam360_key.keyファイルが必要です。起動に成功すると、キーは必要なくなるため、キー ファイルのあるデバイスをオフラインにすることができます。

5.高可用性セットアップの確認

上記の手順を実行した後、プライマリ サーバーまたはセカンダリ サーバーの [管理] >> [一般] >> [高可用性] の下にあるメッセージを確認することで、高可用性セットアップが適切に動作しているかどうかを確認できます。設定が適切であれば、次のステータス メッセージが表示されます:

高可用性ステータス: 稼働中

これは、高可用性が正常に機能していることを示しています。場合によっては、ステータスが[失敗]になった場合は、セットアップが失敗したことを示します。

関連項目: