脅威と脆弱性の対策 (レプリケーション)

このトピックでは、レプリケーション トポロジに対する脅威を軽減する方法について説明します。

暗号化

暗号化とは、想定されている相手以外はデータを解読できないように、特殊なキーがないと解読できない形式にデータを変換するプロセスです。レプリケーションでは、テーブルに格納されるデータやネットワーク接続で送信されるデータの暗号化は行われません。これは、トランスポート レベルで暗号化を行うさまざまな技術があるからです。たとえば、仮想プライベート ネットワーク (VPN)、SSL (Secure Sockets Layer)、IPSEC (IP Security) などの業界標準技術があります。レプリケーション トポロジのコンピュータ間の接続は、これらの方法を使用して暗号化することをお勧めします。詳細については、「SQL Server への接続の暗号化」を参照してください。VPN と SSL を使用したインターネット経由のデータのレプリケーションについては、「インターネット経由のレプリケーションのセキュリティ」を参照してください。

SSL を使用してレプリケーション トポロジのコンピュータ間の接続をセキュリティで保護する場合、各レプリケーション エージェントの -EncryptionLevel パラメータに値 1 または 2 を指定します (値 2 が推奨値です)。値 1 は、暗号化を使用していますが、SSL サーバー証明書が信頼されている発行者によって署名されていることをエージェントが検証していないことを示します。値 2 は、証明書が検証されていることを示します。エージェント パラメータは、エージェント プロファイルおよびコマンド ラインで指定できます。詳細については、次のトピックを参照してください。

以下では、データベースのマスタ キーに関連するレプリケーションの動作について説明します。マスタ キーはデータの暗号化に使用されます。

  • レプリケーションに関係するデータベース (パブリケーション データベース、サブスクリプション データベース、またはディストリビューション データベース) にマスタ キーがある場合、そのデータベースのエージェント パスワードの暗号化および暗号化解除には、SQL Server 2008 データベースの対称キーが使用されます。マスタ キーを使用する場合は、レプリケーションに関係する各データベースでマスタ キーを作成する必要があります。レプリケーションに関係するデータベースにマスタ キーがない場合、そのデータベースのエージェント パスワードの暗号化および暗号化解除には、SQL Server 2000 で利用可能なアルゴリズムが使用されます。マスタ キーの作成の詳細については、「CREATE MASTER KEY (Transact-SQL)」を参照してください。

  • レプリケーションでは、マスタ キーはレプリケートされません。サブスクライバでマスタ キーが必要な場合は、BACKUP MASTER KEY を使用してパブリケーション データベースからエクスポートし、RESTORE MASTER KEY を使用してサブスクリプション データベースにインポートする必要があります。詳細については、「BACKUP MASTER KEY (Transact-SQL)」および「RESTORE MASTER KEY (Transact-SQL)」を参照してください。

  • アタッチ可能なサブスクリプション データベースに対してマスタ キーが定義されている場合は、sp_attachsubscription (Transact-SQL)@db_master_key_password パラメータを使用してマスタ キーのパスワードを指定します。これにより、サブスクライバでそのデータベースをアタッチできます。

暗号化とマスタ キーの詳細については、「暗号化階層」を参照してください。

レプリケーションでは、暗号化された列データをパブリッシュできます。このデータの暗号化を解除してサブスクライバで使用するには、パブリッシャでのデータの暗号化に使用されたキーがサブスクライバにも存在する必要があります。レプリケーションでは、暗号化キーを送信する安全なメカニズムは提供されません。このため、暗号化キーはサブスクライバで手動で再作成する必要があります。詳細については、「暗号化された列のデータをレプリケートする方法 (SQL Server Management Studio)」を参照してください。