Azure SQL Database と Azure Synapse Analytics のネットワーク アクセスの制御

対象: Azure SQL データベースAzure Synapse Analytics (専用 SQL プールのみ)

Azure SQL Database と Azure Synapse Analytics 用の論理サーバーを Azure portal から作成すると、結果は yourservername.database.windows.net という形式のパブリック エンドポイントになります。

次のネットワーク アクセスの制御を使用して、パブリック エンドポイント を介したデータベースへのアクセスを選択的に許可できます:

  • IP ファイアウォール規則:この機能を使用すると、特定の IP アドレスからの接続を明示的に許可できます。 たとえば、オンプレミスのマシンから、または開始 IP アドレスと終了 IP アドレスを指定して IP アドレスの範囲を指定します。

  • Azure サービスおよびリソースにこのサーバーへのアクセスを許可する: 有効すると、Azure 境界内の他のリソースが SQL Database にアクセスできます。 例えば、Azure Virtual Machine が SQL Database リソースにアクセスできるようになります。

また、次の方法で 仮想ネットワーク からデータベースへの プライベート アクセス を許可することもできます:

  • 仮想ネットワーク ファイアウォール規則: この機能を使用して、Azure 境界内の特定の仮想ネットワークからのトラフィックを許可します。

  • プライベート リンク: この機能を使って、特定の仮想ネットワーク内に Azure での論理サーバー 用のプライベート エンドポイントを作成します。

重要

この記事は、SQL Managed Instance には適用され "ません"。 ネットワーク構成の詳細については、Azure SQL Managed Instance への接続に関するページを参照してください。

IP ファイアウォール規則

IP ベースのファイアウォールは、Azure の論理サーバーの機能であり、明示的にクライアント マシンの IP アドレスを追加 するまで、サーバーへのすべてのアクセスを遮断します。

Azure サービスを許可する

Azure portal から 新しい論理サーバーを作成するとき、[Azure サービスおよびリソースにこのサーバーへのアクセスを許可する] は、既定ではオフになっており、有効になっていません。 この設定は、パブリック エンドポイントを介した接続が許可されている場合に表示されます。

この設定は、次のように、論理サーバーを作成した後で [ネットワーク] の設定で変更することもできます。

サーバーのファイアウォール管理のスクリーンショット

[Azure サービスおよびリソースにこのサーバーへのアクセスを許可する] を有効にすると、サーバーによって Azure 境界内のすべてのリソースからの通信が許可されます。これは、サブスクリプションの一部であるかにかのサーバーへのアクセスを許可する] を有効にすると、サーバーによって Azure 境界内のすべてのリソースからの通信が許可されます。これは、サブスクリプションの一部であるかは関係ありません。 多くの場合、この設定を有効にすると、ほとんどのお客様が望むよりも許容範囲が広くなっています。 この設定を解除し、より制限の厳しい IP ファイアウォール規則に置き換えるか、プライベート アクセス用のオプションを使用します。

重要

[Azure サービスとリソースにこのサーバーへのアクセスを許可する] をオンにすると、開始 IP アドレスと終了 IP アドレスが 0.0.0.0 の IP ベースのファイアウォール規則が追加されます

ただし、その場合、仮想ネットワークの一部ではない Azure の仮想マシンで実行され、そのため Azure IP アドレスを介してデータベースに接続される次の機能に影響があります。

Import Export Service

[Azure サービスおよびリソースにこのサーバーへのアクセスを許可する] が有効になっていない場合、インポート エクスポート サービスは機能しません。 ただし、Azure VM から SqlPackage を手動で実行するか、DACFx API を使用してコード内で直接エクスポートを実行することにより、この問題を回避することができます。

データ同期

[Azure サービスおよびリソースにこのサーバーへのアクセスを許可する] を有効にせずにデータ同期機能を使用するには、ハブ データベースをホストしているリージョンの SQL サービス タグから IP アドレスを追加する、個々のファイアウォール規則エントリを作成する必要があります。 これらのサーバーレベルのファイアウォール規則を、ハブメンバー の両方のデータベース (異なるリージョンに存在する可能性がある) をホストするサーバーに追加します。

次の PowerShell スクリプトを使用して、米国西部リージョンの SQL サービス タグに対応する IP アドレスを生成します。

PS C:\>  $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\>  $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27

ヒント

Location パラメーターを指定しても、Get-AzNetworkServiceTag は SQL サービス タグのグローバル範囲を返します。 それを必ずフィルターに掛けて、同期グループによって使用されるハブ データベースをホストするリージョンを見つけます

PowerShell スクリプトの出力は、クラスレス ドメイン間ルーティング (CIDR) 表記です。 これは、次のように Get-IPrangeStartEnd.ps1 を使用して、開始と終了の IP アドレスの形式に変換する必要があります。

PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start        end
-----        ---
52.229.17.64 52.229.17.127

次の PowerShell スクリプトを使用し、すべての IP アドレスを CIDR から開始と終了の IP アドレスの形式に変換できます。

PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start          end
-----          ---
13.86.216.0    13.86.216.127
13.86.216.128  13.86.216.191
13.86.216.192  13.86.216.223

これで、これらを個別のファイアウォール規則として追加し、[Azure サービスおよびリソースにこのサーバーへのアクセスを許可する] 設定を無効にすることができます。

Sql サービス タグ

サービス タグ は、セキュリティ規則およびクライアントから SQL Database へのルートで使用できます。 サービス タグは、ネットワーク セキュリティ グループ、Azure Firewall、およびユーザー定義ルートで、セキュリティ規則のソースまたは宛先フィールドで指定することで使用できます。 Sql サービス タグは 、SQL Database で使用されているすべての IP アドレスで構成されます。 タグはリージョンごとにさらにセグメント化されます。 たとえば、Sql.WestUS では、米国西部の SQL Database で使用されるすべての IP アドレスが一覧表示されます。

Sql サービス タグは、[ゲートウェイ IP アドレス] に記載されている SQL Database への接続を確立するために必要な IP アドレスで構成されます。 さらに、サービス タグは、次のような機能で使用される SQL Database からの送信トラフィックにも関連付けられます:

SqlManagement サービス タグ

SqlManagement サービス タグは、SQL Database に対するコントロール プレーン操作に使用されます。

仮想ネットワーク ファイアウォールの規則

仮想ネットワーク規則 は、お使いの VM を含む特定のサブネットからのアクセスを確立および管理するためのより簡単な代替手段です。

プライベート リンクを使用すると、プライベート エンドポイント経由でサーバーに接続できます。 プライベート エンドポイント は、特定の 仮想ネットワーク およびサブネット内のプライベート IP アドレスです。