レプリケーション セキュリティの推奨事項
適用対象: SQL Server
レプリケーションでは、単一ドメインのイントラネットから、信頼できないドメイン間およびインターネット経由でデータにアクセスするアプリケーションに及ぶ分散環境でデータを移動します。 これらのさまざまな状況下でレプリケーション接続のセキュリティを確保するためには、推奨事項を理解することが重要です。
次の情報は、すべての環境のレプリケーションに関連します。
レプリケーション トポロジ内のコンピューター間の接続を、仮想プライベート ネットワーク (VPN)、トランスポート層セキュリティ (TLS) (旧称 Secure Sockets Layer (SSL))、IPSEC (IP Secrity) などの業界標準の方式を使用して暗号化します。 詳細については、「データベース エンジンへの暗号化接続の有効化 (SQL Server 構成マネージャー)」を参照してください。 VPN と TLS を使用したインターネット経由のデータのレプリケーションについては、「インターネット経由のレプリケーションのセキュリティ」をご覧ください。
TLS を使用してレプリケーション トポロジのコンピューター間の接続をセキュリティで保護する場合、各レプリケーション エージェントの -EncryptionLevel パラメーターに値 1 または 2 を指定します (値 2 が推奨値です)。 値 1 は、暗号化を使用していますが、TLS/SSL サーバー証明書が信頼されている発行者によって署名されていることをエージェントが検証していないことを示します。値 2 は、証明書が検証されていることを示します。 エージェント パラメーターは、エージェント プロファイルおよびコマンド ラインで指定できます。 詳細については、以下を参照してください:
異なる Windows アカウントで各レプリケーション エージェントを実行し、すべてのレプリケーション エージェント接続に対して Windows 認証を使用する。 アカウントを指定する方法の詳細については、「ID およびアクセス制御 (レプリケーション)」を参照してください。
各エージェントに必要な権限のみを許可する。 詳細については、「 Replication Agent Security Model」の「エージェントに必要な権限」を参照してください。
マージ エージェントとディストリビューション エージェントのすべてのアカウントがパブリケーション アクセス リスト (PAL) に含まれているかどうかを確認する。 詳細については、「パブリッシャーのセキュリティ保護」を参照してください。
最小特権の原則に従って、PAL 内のアカウントに、レプリケーション タスクを実行するために必要な権限のみを許可する。 レプリケーションに必要のない固定サーバー ロールにはログインを追加しないでください。
すべてのマージ エージェントおよびディストリビューション エージェントによる読み取りアクセスを許可するようにスナップショット共有を構成する。 パラメーター化されたフィルターを使用するパブリケーションのスナップショットの場合は、適切なマージ エージェント アカウントへのアクセスのみを許可するように各フォルダーを設定してください。
スナップショット エージェントによる書き込みアクセスを許可するようにスナップショット共有を構成する。
プル サブスクリプションを使用する場合は、スナップショット フォルダーにローカル パスではなく、ネットワーク共有を使用する。
レプリケーション トポロジに、同じドメイン内に存在しないコンピューター、または相互に信頼関係を持たないドメインに存在するコンピューターが含まれている場合、エージェントが確立する接続には Windows 認証または SQL Server 認証を使用できます (ドメインの詳細については、Windows のマニュアルを参照してください)。 セキュリティの推奨方法としては、Windows 認証の使用をお勧めします。
Windows 認証を使用するには
適切なノードで、各エージェントのドメイン アカウントではない、ローカルの Windows アカウントを追加します (各ノードでは同じ名前とパスワードを使用します)。 たとえば、プッシュ サブスクリプションのディストリビューション エージェントをディストリビューターで実行し、ディストリビューターとサブスクライバーに接続しているとします。 この場合、ディストリビューション エージェントの Windows アカウントを、ディストリビューターおよびサブスクライバーに追加する必要があります。
指定されたエージェント (たとえば、サブスクリプションのディストリビューション エージェント) が、各コンピューターで同じアカウントを使用して実行されているかどうかを確認します。
SQL Server 認証を使用するには:
適切なノードで、各エージェントの SQL Server アカウントを追加します (各ノードで同じアカウント名とパスワードを使用します)。 たとえば、プッシュ サブスクリプションのディストリビューション エージェントをディストリビューターで実行し、ディストリビューターとサブスクライバーに接続しているとします。 この場合、ディストリビューション エージェントの SQL Server アカウントを、ディストリビューターおよびサブスクライバーに追加する必要があります。
指定されたエージェント (たとえば、サブスクリプションのディストリビューション エージェント) が、各コンピューターで同じアカウントを使用して接続しているかどうかを確認します。
SQL Server 認証が必要な状況では、多くの場合、UNC スナップショット共有へのアクセスは実行できません (たとえば、アクセスがファイアウォールによってブロックされている可能性があります)。 この場合は、ファイル転送プロトコル (FTP) を使用して、スナップショットをサブスクライバーに転送できます。 詳細については、「FTP によるスナップショットの転送」を参照してください。