SQL Azure のセキュリティ ガイドライン

更新日: 2010 年 11 月 15 日

作成者: Dinakar Nethi

共同作成者: Michael Thomassy、Dustin Fraser

テクニカル レビュー担当者: Tony Petrossian

Zip Fileダウンロード (XPS、483 KB | PDF、859 KB (もはや利用できます))


概要

SQL Azure Database は、マイクロソフトが提供するクラウド データベース サービスです。SQL Azure では、Web 接続型のデータベース機能をユーティリティ サービスとして提供します。SQL Azure のようなクラウドベースのデータベース ソリューションには、高速なプロビジョニング、コスト効率の高いスケーラビリティ、高可用性、および管理オーバーヘッドの削減といった多くのメリットがあります。このドキュメントでは、SQL Azure Database に接続するお客様、および SQL Azure 上でセキュアなアプリケーションを構築するお客様を対象に、セキュリティ ガイドラインの概要を示します。

著作権について

このドキュメントは暫定版であり、ここに記載されているソフトウェアの最終的な製品版の発売時に実質的に変更される可能性があります。

このドキュメントに記載されている情報は、このドキュメントの発行時点における米国 Microsoft Corporation (以下、「マイクロソフト」) の見解を反映したものです。マイクロソフトは市場の変化に対応する必要があるため、このドキュメントの内容に関する責任をマイクロソフトは問われないものとします。また、発行日以降に発表される情報の正確性を保証できません。

このホワイト ペーパーは情報提供のみを目的としており、明示、黙示、または法令に基づく規定にかかわらず、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。

お客様ご自身の責任において、適用されるすべての著作権関連法規に従ったご使用を願います。このドキュメントのいかなる部分も、米国 Microsoft Corporation の書面による許諾を受けることなく、その目的を問わず、どのような形態であっても、複製または譲渡することは禁じられています。ここでいう形態とは、複写や記録など、電子的な、または物理的なすべての手段を含みます。ただしこれは、著作権法上のお客様の権利を制限するものではありません。

マイクロソフトは、このドキュメントに記載されている内容に関し、特許、特許申請、商標、著作権、またはその他の無体財産権を有する場合があります。別途マイクロソフトのライセンス契約上に明示の規定のない限り、このドキュメントはこれらの特許、商標、著作権、またはその他の無体財産権に関する権利をお客様に許諾するものではありません。

© 2010 Microsoft Corporation. All rights reserved.

Microsoft、ADO.NET Data Services、Cloud Services、Live Services、.NET Services、SharePoint Services、SQL Azure、SQL Azure Database、SQL Server、SQL Server Express、Sync Framework、Visual Studio、Windows Live、および Windows Server は、Microsoft グループ各社の商標です。

その他、記載されている会社名および商品名は、各社の商標または登録商標です。

このドキュメントでは、Microsoft SQL Azure への接続を確立するための、サーバー側およびクライアント側の両方の設定に関する基本的な要件を示します。

SQL Server および SQL Azure のすべてのツールとクライアント ライブラリは、サーバーに接続するために表形式データ ストリーム (TDS) プロトコルを使用します。SQL Azure サービスには、この TDS プロトコルで使用される、既定ポートの TCP/1433 からのみアクセスが可能です。お客様は、ポート TCP/1433 での送信方向の TCP 接続を許可し、アプリケーションおよびツールから SQL Azure に接続できるように環境を設定する必要があります。

Microsoft SQL Azure への接続は、いくつかの手順で構成されます。

  • ネットワークでは、SQL Azure に接続する必要があるコンピューターに対し、ポート 1433 での送信方向の接続の確立を許可する必要があります。通常、お客様のサイトでは既定で外部に向けた TCP/1433 接続は許可されていません。ただし、お客様が SQL Azure サービスを利用するには、SQL Azure サービスの IP アドレスへの外部接続を許可する必要があります。ネットワーク ファイアウォールなどのセキュリティ デバイスによって、お客様のネットワーク上のコンピューターは、SQL Azure に対する送信方向の接続の確立をブロックされる可能性があります。受信方向の接続は不要なので、使用を推奨しません。
  • ポート 1433 で送信方向の TDS プロトコルを許可するには、プロキシ サーバーの調整が必要となる場合があります。クライアント コンピューターで、プロキシ サーバーを使用して送信方向の接続を確立する場合は、Microsoft ISA クライアントのようなクライアント側のプロキシ ソフトウェアが必要になる可能性があります。
  • ご使用のコンピューターまたは Windows Azure からの接続を許可するため、SQL Azure のファイアウォール設定を行うには、SQL Azure ポータル (英語) を使用します。ファイアウォールの設定の詳細については、「ファイアウォールの構成方法 (英語)」および「SQL Azure のファイアウォール (英語)」を参照してください。
  • 一部のツールでは TDS の実装方法が異なるため、ログイン ID は常にログイン名@サーバー名という形式で入力します。たとえば、使用するサーバー名が mv2abek9r7.database.windows.net で、管理者としてのログイン名が testsa の場合、ログイン ID として testsa@mv2abek9r7 を使用します。
  • SQL Azure サーバー上で、適切なログイン名を作成します。SQL Azure サーバーのプロビジョニング完了後、サーバー上で管理特権を持つ管理者ユーザーを作成して、SQL Server Management Studio R2 から SQL Azure サーバー上のマスター データベースに接続します。続いて、CREATE LOGIN (英語) スクリプトを使用してユーザーとロールを作成します。ログイン名の管理の詳細については、「SQL Azure でのデータベースとログイン名の管理 (英語)」を参照してください。
  • これで、開発者およびデータベースのユーザーは、上記で作成したユーザー名を使用して SQL Azure に接続できるようになります。
  • オプション: データ同期などの目的で、オンプレミスの SQL Server と SQL Azure 間で通信を行う必要がある場合は、使用するサーバーに、インターネットでルーティング可能な IP アドレスが割り当てられている必要があります。

SQL Azure に接続するには、各拠点の SQL Azure 仮想 IP アドレスに対して、TCP/1433 の送信方向のトラフィックを許可すれば十分です。

また、適用しているポリシーのレベルに応じて、マイクロソフトの VIP からお客様のネットワーク内に戻るリターン トラフィックを明示的に許可しなければならない場合があります。すなわち、SQL Azure の IP アドレスに対して送信方向の TCP/1433 トラフィックを許可する場合は、SQL Azure の IP アドレス (TCP/1433 のソース ポート) からお客様のネットワーク内に戻るリターン トラフィックも許可する必要があります。一部のネットワークでは、内部から開始された接続についてはすべてのリターン トラフィックが許可されますが、その他の制限付きネットワークでは、リターン トラフィックも、アクセス制御リスト (ACL) で明示的に指定された場合にのみ許可されます。下の例のように、送信方向の ACL に "established" タグを使用すると、お客様のサイト内で確立された接続に関し、お客様のサイトへのリターン トラフィックが許可されます。つまり、お客様のサイト内で開始されていない接続については、トラフィックが許可されません。

"送信方向" および "受信方向" とは、ルーターから見たトラフィックの方向を表しています。

受信方向の ACL (外部向けトラフィック): permit tcp any gt 1023 host <SQL Azure IP> 1433

送信方向の ACL (リターン トラフィック): permit tcp host <SQL Azure IP> 1433 any gt 1023 established

SQL Azure の拠点を指定する代わりに、マイクロソフトの公衆ネットワークのアドレス範囲に対して TCP/1433 接続を許可する方が便利な場合があります。この方法は、より柔軟性が高く、SQL Azure の拠点の追加に伴って、お客様が ACL に再アクセスする必要が減ります。

たとえば、SQL Azure の米国中北部データ センターの TDS エンドポイントが data.ch1-1.database.windows.net で、IP アドレスが 207.46.203.22 であるとします。http://whois.arin.net/?queryinput=207.46.203.22 で検索を実行すると、この IP に対してマイクロソフトが割り当てているアドレス範囲が 207.46.0.0/16 であることがわかります。

次に示す ACL 設定の例では、Microsoft SQL Azure サービスで利用可能な IP アドレス範囲全体への接続が許可されます。

受信方向の ACL (外部向けトラフィック): permit tcp any gt 1023 207.46.0.0 0.0.255.255 eq 1433

送信方向の ACL (リターン トラフィック): permit tcp 207.46.0.0 0.0.255.255 eq 1433 any gt 1023 established

その他のガイドライン

  • SQL Azure に接続する際は、最新バージョンのツールとライブラリを使用してください。
  • 特定の IP アドレスのみに接続を許可するよう、ファイアウォールを設定します。
  • パラメーター化クエリを使用して、SQL インジェクションに対する脆弱性を防ぎます。
  • SQL Azure サーバーは、データベースの論理的な集合体にすぎず、物理的な SQL Server とは異なります。そのため、サーバーを複数作成してもパフォーマンス向上効果は得られません。一連のデータベースをグループ化して論理単位として扱う場合や、所定のデータベースに対して個別に課金する場合は、複数のサーバーを作成できます。

ページのトップへ