レプリケーション セキュリティの要素

更新 : 2006 年 12 月 12 日

ソフトウェア システムのセキュリティについて検討する際には、認証、承認、および暗号化の 3 つの領域を考慮する必要があります。

  • 認証とは、あるエンティティ (ここでは、一般的にコンピュータを指します) によって、別のエンティティ (プリンシパルとも呼ばれます。一般的に別のコンピュータまたはユーザーを指します) が自称するエンティティであるかどうかを確認するプロセスです。
  • 承認とは、認証されたプリンシパルにリソース (ファイル システムのファイルやデータベースのテーブルなど) へのアクセスを認めるプロセスです。
  • 暗号化とは、想定されている相手以外はデータを解読できないように、特殊なキーがないと解読できない形式にデータを変換するプロセスです。

認証と承認

レプリケーション セキュリティでは、認証と承認を使用して、レプリケートされたデータベース オブジェクトへのアクセスや、レプリケーション処理に関係するコンピュータやエージェントへのアクセスを制御します。これは、以下の 3 つのメカニズムによって実現されます。

  • エージェント セキュリティ
    レプリケーション エージェントのセキュリティ モデルでは、レプリケーション エージェントの実行や接続に使用されるアカウントをきめ細かく制御できます。エージェント セキュリティ モデルの詳細については、「レプリケーション エージェントのセキュリティ モデル」を参照してください。エージェントのログインとパスワードの設定については、「レプリケーションのログインとパスワードの管理」を参照してください。
  • 管理ロール
    レプリケーションのセットアップ、メンテナンス、および処理に対して適切なサーバー ロールやデータベース ロールが使用されていることを確認します。詳細については、「レプリケーションのセキュリティ ロール要件」を参照してください。
  • パブリケーション アクセス リスト (PAL)
    パブリケーションへのアクセスは、PAL を通じて許可されます。PAL は、Microsoft Windows のアクセス制御リストによく似た機能を備えています。サブスクライバがパブリッシャやディストリビュータに接続し、パブリケーションへのアクセスを要求すると、エージェントによって渡された認証情報が PAL に対して確認されます。PAL の詳細および推奨事項については、「パブリッシャのセキュリティ確保」を参照してください。

暗号化

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

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

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

  • レプリケーションに関係するデータベース (パブリケーション データベース、サブスクリプション データベース、またはディストリビューション データベース) にマスタ キーがある場合、そのデータベースのエージェント パスワードの暗号化および暗号化解除には、SQL Server 2005 データベースの対称キーが使用されます。マスタ キーを使用する場合は、レプリケーションに関係する各データベースでマスタ キーを作成する必要があります。レプリケーションに関係するデータベースにマスタ キーがない場合、そのデータベースのエージェント パスワードの暗号化および暗号化解除には、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)」を参照してください。

パブリッシュされたデータのフィルタ選択

レプリケーションでは、レプリケートされたデータやオブジェクトへのアクセスを認証と承認を使用して制御する以外に、列のフィルタ選択と行のフィルタ選択という 2 つのオプションを使用して、サブスクライバで利用できるようにするデータを制御できます。フィルタ選択の詳細については、「パブリッシュされたデータのフィルタ選択」を参照してください。

アーティクルを定義する際には、パブリケーションに必要な列のみをパブリッシュして、不要な列や機密データを含む列を除外することができます。たとえば、AdventureWorks データベースの Customer テーブルを現場の販売担当者にパブリッシュする際には、経営陣以外には関係のない AnnualSales 列を除外できます。

パブリッシュされたデータをフィルタ選択することによって、データへのアクセスを制限し、サブスクライバで使用できるデータを指定できます。たとえば、Customer テーブルをフィルタ選択して、ShareInfo 列の値が "yes" の顧客に関する情報のみをパートナー企業に提供することなどが可能です。マージ レプリケーションでは、HOST_NAME() を含むパラメータ化されたフィルタを使用する場合に考慮する必要があるセキュリティの問題があります。詳細については、「パラメータ化された行フィルタ」の「HOST_NAME() によるフィルタ選択」を参照してください。

参照

概念

レプリケーション セキュリティの推奨事項

その他の技術情報

レプリケーションのセキュリティに関する注意点

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

追加内容 :