エクスポート (0) 印刷
すべて展開

Azure SQL データベース ファイアウォール

更新日: 2015年2月

Microsoft Azure SQL データベースは、Azure などのインターネット ベースのアプリケーション向けのリレーショナル データベース サービスです。データの保護を支援するために、Azure SQL データベース ファイアウォールでは、権限を持つコンピューターが指定されるまで、Azure SQL データベース サーバーに対するすべてのアクセスが遮断されます。このファイアウォールでは各要求の発信元 IP アドレスに基づいてアクセスを許可します。

ファイアウォールを構成するには、アクセスを許可する IP アドレスの範囲を指定したファイアウォール ルールを作成します。ファイアウォール ルールは、サーバー レベルおよびデータベース レベルで作成できます。

  • サーバーレベルのファイアウォール ルール:これらのルールにより、クライアントが Azure SQL データベース サーバー全体 (つまり、同じ論理サーバー内のすべてのデータベース) にアクセスできるようになります。これらのルールは、master データベースに格納されます。

  • データベース レベルのファイアウォール ルール: Azure SQL データベース サーバー内の個々のデータベースへのアクセスをクライアントに許可するためのルールです。これらのルールはデータベースごとに作成され、各データベースに格納されます (master を含む)。これらのルールは、同じ論理サーバー内の特定の (セキュリティで保護された) データベースへのクライアント アクセスを制限するのに役立ちます。



    noteメモ
    Azure SQL データベース でフェデレーション データベースを作成する場合に、ルート データベースにデータベースレベルのファイアウォール ルールが含まれていても、そのルールがフェデレーション メンバー データベースにコピーされることはありません。フェデレーション メンバーに対するデータベースレベルのファイアウォール ルールが必要な場合は、フェデレーション メンバーに対してルールを再作成する必要があります。ただし、ALTER FEDERATION … SPLIT ステートメントを使用して、データベースレベルのファイアウォール ルールを含むフェデレーション メンバーを新しいフェデレーション メンバーに分割した場合は、新しいターゲット メンバーにソース フェデレーション メンバーと同じデータベースレベルのファイアウォール ルールが含まれます。フェデレーションの詳細については、「Azure SQL データベースでのフェデレーション」を参照してください。

    フェデレーションの現在の実装は、Web およびビジネス サービス層と共に提供が終了します。最大限のスケーラビリティ、柔軟性、およびパフォーマンスを実現するためには、カスタム シャーディングの展開を検討してください。カスタム シャーディングの詳細については、「Azure SQL データベースのスケール アウト」を参照してください。

このトピックの内容

初期状態では、Azure SQL データベース サーバーに対するアクセスはすべてファイアウォールによってブロックされます。Azure SQL データベース サーバーの使用を開始するには、Management Portal を開き、サーバーレベルのファイアウォール ルールを指定して、Azure SQL データベース サーバーにアクセスできるようにする必要があります。ファイアウォール ルールを使用して、インターネットのどの IP アドレス範囲に接続を許可するかを指定すると共に、Azure アプリケーションから Azure SQL データベース サーバーへの接続試行を許可するかどうかを指定します。

ただし、Azure SQL データベース サーバー内の 1 つのデータベースへのアクセスだけを選択的に許可する必要がある場合は、必要なデータベースに対して、IP アドレス範囲がサーバーレベルのファイアウォール ルールで指定されている IP アドレス範囲を超えるデータベースレベルのルールを作成し、クライアントの IP アドレスがデータベースレベルのルールで指定されている範囲に含まれるようにします。

次の図に示すように、インターネットや Azure からは、ファイアウォールを通過した後でなければ Azure SQL データベース のサーバーやデータベースには到達できません。

SQL データベース ファイアウォールによってサーバーへのアクセスを制限する

コンピューターがインターネットからデータベース サーバーに接続しようとすると、ファイアウォールは、この要求の発信元の IP アドレスをサーバーレベルのすべてのファイアウォール ルールと比較し、必要であればデータベースレベルのルールとも比較します。

  • 要求の IP アドレスがサーバーレベルのファイアウォール ルールで指定されている範囲内にある場合、Azure SQL データベース サーバーへの接続が許可されます。

  • 要求の IP アドレスがサーバーレベルのファイアウォール ルールで指定されている範囲内にない場合、データベースレベルのファイアウォール ルールがチェックされます。要求の IP アドレスがデータベースレベルのファイアウォール ルールで指定されている範囲内にある場合、一致するデータベースレベルのルールを含むデータベースへの接続のみが許可されます。

  • 要求の IP アドレスがサーバーレベルとデータベースレベルのファイアウォール ルールで指定されているどの範囲内にもない場合、接続要求は失敗します。

noteメモ
Azure SQL データベースにローカル コンピューターからアクセスするには、TCP ポート 1433 での発信を許可するようにネットワークのファイアウォールとローカル コンピューターを設定してください。

アプリケーションが Azure データベース サーバーにアクセスしようとすると、ファイアウォールは Azure 接続が許可されているかどうかを調べます。ファイアウォール設定の開始アドレスと終了アドレスが 0.0.0.0 に設定されていれば、このような接続は許可されます。接続試行が許可されない場合、要求は Azure SQL データベース サーバーに到達しません。

Azure からの接続を許可するように 管理ポータルで設定するには、次の 2 つの方法があります。

  • 新しいサーバーを作成するときに [Windows Azure サービスにサーバーへのアクセスを許可します] チェック ボックスをオンにする

  • サーバーの [構成] タブの [使用できるサービス] セクションで [Windows Azure サービス] の [はい] をクリックする

最初のサーバーレベル ファイアウォール設定は、管理ポータルで作成することも、プログラムで REST API や Azure PowerShell を使用して作成することもできます。それ以降のサーバーレベル ファイアウォール ルールの作成と管理には、これらの方法に加えて、Transact-SQL も使用できます。サーバーレベルのファイアウォール ルールの詳細については、「方法:ファイアウォール設定を構成する (Azure SQL データベース)」を参照してください。

最初のサーバーレベル ファイアウォールの構成が完了した後で、必要に応じて特定のデータベースへのアクセスを制限するように設定します。データベースレベルのファイアウォール ルールで指定された IP アドレス範囲が、サーバーレベルのファイアウォール ルールで指定された範囲の外にある場合は、クライアントの IP アドレスがデータベースレベルの範囲内にある場合に限り、データベースにアクセスできます。データベースレベルのファイアウォール ルールは、1 つのデータベースにつき最大 128 個作成できます。master データベースおよびユーザー データベースのデータベースレベルのファイアウォール ルールの作成と管理は、Transact-SQL を使用して行うことができます。詳細については、「方法:ファイアウォール設定を構成する (Azure SQL データベース)」を参照してください。

Azure Management Portalに加えて、ファイアウォール ルールの管理はプログラムで Transact-SQL、REST API、Azure PowerShell を使用して行うこともできます。次の表は、これらの方法別に使用できるコマンドをまとめたものです。

Transact-SQL

カタログ ビュー/ストアド プロシージャ

レベル

説明

sys.firewall_rules

サーバー

現在のサーバーレベルのファイアウォール ルールを表示します

sp_set_firewall_rule

サーバー

サーバーレベルのファイアウォール ルールを作成または更新します

sp_delete_firewall_rule

サーバー

サーバーレベルのファイアウォール ルールを削除します

sys.database_firewall_rules

データベース

現在のデータベース レベルのファイアウォール ルールを表示します。

sp_set_database_firewall_rule

データベース

データベースレベルのファイアウォール ルールを作成または更新します。

sp_delete_database_firewall_rule

データベース

データベース レベルのファイアウォール ルールを削除します。

REST API

API

レベル

説明

ファイアウォール規則の一覧表示

サーバー

現在のサーバーレベルのファイアウォール ルールを表示します

ファイアウォール規則の作成

サーバー

サーバーレベルのファイアウォール ルールを作成または更新します

ファイアウォール規則の設定

サーバー

既存のサーバーレベルのファイアウォール ルールのプロパティを更新します

ファイアウォール規則の削除

サーバー

サーバーレベルのファイアウォール ルールを削除します

Azure PowerShell

コマンドレット

レベル

説明

Get-AzureSqlDatabaseServerFirewallRule

サーバー

現在のサーバー レベルのファイアウォール ルールを返します。

New-AzureSqlDatabaseServerFirewallRule

サーバー

新しいサーバー レベルのファイアウォール ルールを作成します。

Set-AzureSqlDatabaseServerFirewallRule

サーバー

既存のサーバーレベルのファイアウォール ルールのプロパティを更新します

Remove-AzureSqlDatabaseServerFirewallRule

サーバー

サーバーレベルのファイアウォール ルールを削除します

noteメモ
ファイアウォール設定の変更が適用されるまで、5 分近くかかる場合があります。

Microsoft Azure SQL データベース サービスにアクセスする際に問題が発生した場合は、次の点を検討してください。

  • Local firewall configuration: コンピューターで Azure SQL データベース にアクセスするには、コンピューターの TCP ポート 1433 に対してファイアウォール例外を作成する必要がある場合があります。

  • ネットワーク アドレス変換 (NAT): NAT が原因で、コンピューターから Azure SQL データベースへの接続に使用される IP アドレスが、そのコンピューターの IP 構成設定画面に表示される IP アドレスとは異なることがあります。コンピューターから Azure への接続に使用されている IP アドレスを調べるには、管理ポータルにログインし、データベースをホストしているサーバーの [構成] タブに移動してください。[使用できる IP アドレス] セクションに [現在のクライアント IP アドレス] が表示されます。[使用できる IP アドレスに追加します] をクリックすると、このコンピューターからサーバーにアクセスできるようになります。

  • 許可一覧に加えた変更がまだ有効になっていない: Azure SQL データベース ファイアウォール構成に対する変更が有効になるまでに最大 5 分かかることがあります。

  • The login is not authorized or an incorrect password was used: ログインに Azure SQL データベース サーバーに対する権限がない場合、または使用したパスワードが間違っている場合、Azure SQL データベース サーバーへの接続が拒否されます。ファイアウォール設定を作成するとクライアントがサーバーへの接続を試行できるようになりますが、セキュリティ資格情報は各クライアントが指定する必要があります。ログインの準備の詳細については、「Azure SQL データベースにおけるデータベースとログインの管理」を参照してください。

  • 動的 IP アドレス: インターネット接続に動的 IP アドレス指定を使用している場合に、ファイアウォールを通過できないという問題が発生したときは、次の解決策を試してみてください。

    • Azure SQL データベース サーバーにアクセスするクライアント コンピューターに割り当てられている IP アドレス範囲をインターネット サービス プロバイダー (ISP) に問い合わせます。その IP アドレス範囲をファイアウォール ルールとして追加してください。

    • 代わりにクライアント コンピューターの静的 IP アドレスを取得して、その IP アドレスをファイアウォール ルールとして追加します。

関連項目

表示:
© 2015 Microsoft