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

適用対象: SQL ServerAzure SQL Managed Instance

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

暗号化

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

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

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

  • レプリケーションに関係するデータベース (パブリケーション データベース、サブスクリプション データベース、またはディストリビューション データベース) にマスター キーが存在する場合、そのデータベースのエージェント パスワードの暗号化および暗号化解除には、 SQL Server 2012 (11.x) データベースの対称キーが使用されます。 マスター キーを使用する場合は、レプリケーションに関係する各データベースでマスター キーを作成する必要があります。 マスター キーの作成の詳細については、「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 パラメーターを使用してマスター キーのパスワードを指定します。 これにより、サブスクライバーでそのデータベースをアタッチできます。

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

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

参照

ID およびアクセス制御 (レプリケーション)
レプリケーションのセキュリティ設定の表示および変更