Distributed Replay のセキュリティ

適用対象: SQL Server 2016 (13.x)、 SQL Server 2017 (14.x)、 SQL Server 2019 (15.x)

重要

SQL Server 分散再生は、SQL Server 2022 (16.x) では使用できません。

Microsoft SQL Server 分散再生機能をインストールして使用する前に、このトピックの重要なセキュリティ情報を確認する必要があります。 このトピックでは、Distributed Replay を使用する前に必要なインストール後のセキュリティ構成手順について説明します。 また、データ保護に関する重要な考慮事項や、重要な削除手順についても説明します。

ユーザーおよびサービスのアカウント

次の表に、Distributed Replay に使用するアカウントを示します。 Distributed Replay をインストールした後、コントローラーおよびクライアントのサービス アカウントを実行するセキュリティ プリンシパルを割り当てる必要があります。 したがって、Distributed Replay 機能をインストールする前に、対応するドメイン ユーザー アカウントを構成することをお勧めします。

ユーザー アカウント 必要条件
SQL Server Distributed Replay Controller のサービス アカウント ドメイン ユーザー アカウントまたはローカル ユーザー アカウントを使用できます。 ローカル ユーザー アカウントを使用する場合、管理ツール、コントローラー、およびクライアントのすべてが同じコンピューター上で実行されている必要があります。

** セキュリティに関する注意 ** このアカウントには、Windows のローカルの Administrators グループのメンバー以外を使用することをお勧めします。
SQL Server Distributed Replay Client のサービス アカウント ドメイン ユーザー アカウントまたはローカル ユーザー アカウントを使用できます。 ローカル ユーザー アカウントを使用する場合、コントローラー、クライアント、および対象の SQL Server のすべてが同じコンピューター上で実行されている必要があります。

** セキュリティに関する注意 ** このアカウントには、Windows のローカルの Administrators グループのメンバー以外を使用することをお勧めします。
Distributed Replay 管理ツールの実行に使用する対話ユーザー アカウント ローカル ユーザーまたはドメイン ユーザー アカウントを使用できます。 ローカル ユーザー アカウントを使用するには、管理ツールとコントローラーが同じコンピューター上で実行されている必要があります。

重要

分散再生コントローラーを構成するとき、分散再生クライアント サービスの実行に使用する 1 つ以上のユーザー アカウントを指定できます。 サポートされているアカウントの一覧を次に示します。

  • ドメイン ユーザー アカウント

  • ユーザーによって作成されたローカル ユーザー アカウント

  • 管理者

  • 仮想アカウントおよび管理されたサービス アカウント (MSA)

  • ネットワーク サービス、ローカル サービス、およびシステム

グループ アカウント (ローカルまたはドメイン) およびその他の組み込みのアカウント (Everyone など) は使用できません。

Distributed Replay のインストール後にサービス アカウントまたはそのパスワードを設定するには、Windows サービス ツールを使用します。 Distributed Replay Controller または Client サービスに関連付けられているサービス アカウントを変更するには、次の手順を実行します。

  1. オペレーティング システムに応じて、次のいずれかを実行します。

    • [スタート] を選択し、[検索の開始] ボックスに「services.msc」と入力して Enter キーを押します。

    • [スタート] を選択し、[ファイル名を指定して実行] を選択し、「services.msc」と入力して Enter キーを押します。

  2. [サービス] ダイアログ ボックスで、構成するサービスを右クリックし、[プロパティ] を選択します。

  3. [ログオン] タブで、[このアカウント] を選択します。

  4. 使用するユーザー アカウントを構成します。

ファイルおよびフォルダーの権限

サービス アカウントを指定したら、それらのサービス アカウントに必要なファイルおよびフォルダーの権限を付与する必要があります。 次の表に従ってファイルおよびフォルダーの権限を構成します。

Account フォルダー権限
SQL Server Distributed Replay Controller のサービス アカウント <Controller_Installation_Path>\DReplayController (読み取り、書き込み、削除)

DReplayServer.xml ファイル (読み取り、書き込み)
SQL Server Distributed Replay Client のサービス アカウント <Client_Installation_Path>\DReplayClient (読み取り、書き込み、削除)

DReplayClient.xml ファイル (読み取り、書き込み)

クライアント構成ファイルで WorkingDirectory 要素および ResultDirectory 要素により指定された作業ディレクトリおよび結果ディレクトリ。 (読み取り、書き込み)

DCOM 権限

DCOM は、コントローラーと管理ツールの間、およびコントローラーとすべてのクライアントの間のリモート プロシージャ コール (RPC) 通信に使用されます。 Distributed Replay 機能をインストールした後、コント ローラーでコンピューター全体およびアプリケーション固有の DCOM 権限を構成する必要があります。

コントローラーの DCOM 権限を構成するには、次の手順を実行します。

  1. コンポーネント サービス スナップイン dcomcnfg.exe を開く:これは、DCOM 権限を構成するために使用するツールです。

    1. コントローラーのコンピューターで、[スタート] を選択します。

    2. [検索] ボックスに「 dcomcnfg.exe 」と入力します。

    3. Enter キーを押します。

  2. コンピューター全体の DCOM 権限を構成する:次の表に示す各アカウントに対し、対応するコンピューター全体の DCOM 権限を付与します。 コンピューター全体の権限を設定する方法の詳細については、「チェックリスト:DCOM アプリケーションを管理する」を参照してください。

  3. アプリケーション固有の DCOM 権限を構成する:次の表に示す各アカウントに対し、対応するアプリケーション固有の DCOM 権限を付与します。 コントローラー サービスの DCOM アプリケーション名は DReplayControllerです。 アプリケーション固有の権限を設定する方法の詳細については、「チェックリスト:DCOM アプリケーションを管理する」を参照してください。

次の表に、管理ツールの対話ユーザー アカウントとクライアント サービス アカウントに必要な DCOM 権限を示します。

機能 Account コントローラーで必要な DCOM 権限
Distributed Replay 管理ツール 対話ユーザー アカウント ローカル アクセス

リモート アクセス

ローカルからの起動

リモートからの起動

ローカルからのアクティブ化

リモートからのアクティブ化
[分散再生クライアント] SQL Server Distributed Replay Client のサービス アカウント ローカル アクセス

リモート アクセス

ローカルからの起動

リモートからの起動

ローカルからのアクティブ化

リモートからのアクティブ化

重要

悪意のあるクエリまたはサービス拒否攻撃を防ぐために、クライアント サービス アカウントには信頼できるユーザー アカウントのみを使用してください。 このアカウントは、 SQL Serverの対象のインスタンスに対して接続とワークロードの再生を実行できるようになります。

SQL Server 権限

SQL Server Distributed Replay Client のサービス アカウントは、ワークロードの SQL Server対象インスタンスに接続するために使用されます。 これらの接続では、Windows 認証モードのみがサポートされます。

SQL Server Distributed Replay Client サービスを一連のコンピューターにインストールした後、それらのサービス アカウントに使用されるセキュリティ プリンシパルに、トレース ワークロードの再生対象である SQL Server インスタンス上の sysadmin サーバー ロールを付与する必要があります。 この手順は、Distributed Replay のセットアップで自動的に実行されません。

データ保護

Distributed Replay 環境では、次のユーザー アカウントに、SQL Server のターゲット サーバー インスタンス、入力トレース データ、および結果トレース ファイルへのフル アクセスが付与されます。

  • 管理ツールの実行に使用される対話ユーザー アカウント。

  • コントローラーのサービス アカウント。

  • クライアントのサービス アカウント。

  • コントローラー上のローカルの Administrators グループのメンバー。

  • クライアント上のローカルの Administrators グループのメンバー。

    重要

    これらのアカウントは、Distributed Replay によって使用されるトレース ファイル、中間ファイル、ディスパッチ ファイル、または SQL Server データ ファイルに含まれるすべての個人情報 (PII) または機密情報へのフル アクセス権を保持します。

次のセキュリティ対策をとることをお勧めします。

  • NTFS ファイル システム (NTFS) を使用する場所に、入力トレース データ、出力トレース結果、およびデータベース ファイルを格納し、適切なアクセス制御リスト (ACL) を適用します。 必要に応じて、SQL Server コンピューターに格納されるデータを暗号化します。 ACL はトレース ファイルに適用されず、データのマスキングや難読化もないことに注意してください。 これらのファイルは使用後すぐに削除する必要があります。

  • Distributed Replay によって生成されたすべての中間ファイルおよびディスパッチ ファイルに、適切な ACL と保有ポリシーを適用します。

  • トランスポート層セキュリティ (TLS) (旧称 Secure Sockets Layer (SSL)) を使用して、ネットワーク トランスポートを保護します。

重要な削除手順

Distributed Replay はテスト環境のみで使用することをお勧めします。 テストが完了したら、それらのコンピューターを別のタスク用に準備する前に、次の作業を必ず行います。

  • Distributed Replay 機能をアンインストールし、関連する構成ファイルをコントローラーおよびすべてのクライアントから削除します。

  • テストに使用したトレース ファイル、中間ファイル、ディスパッチ ファイル、および SQL Server データベース ファイルをすべて削除します。 中間ファイルとディスパッチ ファイルは、コントローラーとクライアントの作業ディレクトリにそれぞれ格納されます。

関連項目