データ シリーズ: Windows Azure SQL データベースのファイアウォール ルールを使用して、データベースへのアクセスを制御する
このポストは、8 月 15 日に投稿された Data Series: Control Database Access Using Windows Azure SQL Database Firewall Rules の翻訳です。
編集メモ : 今回は、カスタマー エクスペリエンス チームのテクニカル ライターを務める Kumar Vivek の投稿をご紹介します。この投稿では、Windows Azure SQL データベースに新しく導入された、データベース レベルのファイアウォール ルールの概要について取り上げます。
Windows Azure SQL データベースのファイアウォールは、SQL データベース サーバーへのアクセスを禁止し、ユーザーのデータを保護します。これまでも、アクセス可能な IP アドレスの範囲を指定することで、ファイアウォール ルールを指定し、SQL データベース サーバーへのアクセスを制御することは可能でした。しかし、これらのファイアウォール ルールはサーバー レベルで定義されていたため、クライアントは、SQL データベース サーバー全体、つまり同じ論理サーバー内のすべてのデータベースにアクセスできました。もしSQL データベース サーバー内の特定のデータベース (セキュリティで保護された情報を含む) へのアクセスを制御しようとしても、以前はできませんでした。
でも今では可能になりました! Windows Azure SQL データベースに新しく、データベース レベルのファイアウォール ルールを導入したのです! サーバー レベルのファイアウォール ルールに加え、お使いの SQL データベース サーバー内の各データベースにファイアウォール ルールを定義して、アクセスを許可するクライアントを限定できるようになりました。アクセスできるクライアントを指定するには、対象のデータベースに対して、データベースレベルのファイアウォール ルールを作成する必要があります。その際、IP アドレスの範囲を、サーバーレベルのファイアウォール ルールで指定された IP アドレスの範囲を超えたものにしてください。また、クライアントの IP アドレスを、データベース レベルのファイアウォール ルールで指定された範囲内に収めてください。
クライアントが接続を試みると、以下のように Windows Azure SQL データベースのファイアウォール ルールを通り抜けます。
- 要求された IP アドレスが、サーバー レベルのファイアウォール ルールで指定されている範囲に含まれている場合、SQL データベース サーバーへの接続が許可されます。
- 要求された IP アドレスが、サーバー レベルのファイアウォール ルールで指定されている範囲に含まれていない場合、データベース レベルのファイアウォール ルールがチェックされます。要求の IP アドレスが、データベース レベルのファイアウォール ルールで指定されている範囲に含まれている場合、一致するデータベース レベルのファイアウォール ルールが導入されたデータベースへの接続のみが許可されます。
- 要求された IP アドレスが、サーバー レベル、またはデータベース レベルのファイアウォール ルールで指定されているどの範囲にも含まれていない場合、接続要求は失敗します。
詳細な情報については、Windows Azure SQL データベース ファイアウォールを参照してください。
データベースレベルのファイアウォールルールの管理
サーバー レベルのファイアウォール ルールとは異なり、データベース レベルのファイアウォール ルールはデータベースごとに作成され、master データベースを含む、各データベースに格納されます。各データベースの sys.database_firewall_rules ビューに現在のデータベース レベルのファイアウォール ルールが表示されます。さらに、各データベースの sp_set_database_firewall_rule ストアド プロシージャと sp_delete_database_firewall_rule ストアド プロシージャを使用して、そのデータベースにおける、データベース レベルのファイアウォール ルールを作成、および削除することができます。
データベース レベルのファイアウォール ルールの管理に関する詳細については、データベース レベルのファイアウォール設定を構成する方法 を参照してください。
データシリーズ