Azure SQL Managed Instance のパブリック エンドポイントを構成する

適用対象: Azure SQL Managed Instance

Azure SQL Managed Instance のパブリック エンドポイントを使うと、仮想ネットワークの外部からマネージド インスタンスにデータ アクセスできます。 マネージド インスタンスには、Power BI や Azure App Service などのマルチテナント Azure サービスまたはオンプレミス ネットワークからアクセスできます。 マネージド インスタンスでパブリック エンドポイントを使用すると、VPN を使用する必要がなくなるため、VPN のスループットの問題を回避できます。

この記事では、次のことについて説明します。

  • マネージド インスタンスのパブリック エンドポイントを有効または無効にする
  • マネージド インスタンスのパブリック エンドポイントへのトラフィックを許可するようマネージド インスタンスのネットワーク セキュリティ グループ (NSG) を構成する
  • マネージド インスタンスのパブリック エンドポイントの接続文字列を取得する

アクセス許可

マネージド インスタンス内にあるデータの機密性のため、マネージド インスタンスのパブリック エンドポイントを有効にするための構成では、2 段階のプロセスが必要です。 このセキュリティ対策は、職務の分離 (SoD) に準拠します。

  • マネージド インスタンスの管理者は、マネージド インスタンスでパブリック エンドポイントを有効にする必要があります。 マネージド インスタンスの管理者は、マネージド インスタンス リソースの [概要] ページで確認できます。
  • ネットワーク管理者は、ネットワーク セキュリティ グループ (NSG) を使ってマネージド インスタンスへのトラフィックを許可する必要があります。 詳しくは、ネットワーク セキュリティ グループのアクセス許可に関するページを参照してください。

パブリック エンドポイントの有効化

Azure portal、Azure PowerShell、または Azure CLI を使って、SQL マネージド インスタンスのパブリック エンドポイントを有効にできます。

Azure portal で SQL マネージド インスタンスのパブリック エンドポイントを有効にするには、次の手順のようにします。

  1. Azure ポータルにアクセスします。
  2. マネージド インスタンスのあるリソース グループを開き、パブリック エンドポイントを構成する SQL Managed Instance を選択します。
  3. [セキュリティ] 設定で [ネットワーク] タブを選択します。
  4. 仮想ネットワークの構成ページで [有効] を選択し、 [保存] アイコンを選択して構成を更新します。

パブリック エンドポイントが有効になっている SQL Managed Instance の [仮想ネットワーク] ページを示すスクリーンショット。

パブリック エンドポイントの無効化

Azure portal、Azure PowerShell、Azure CLI を使って、SQL マネージド インスタンスのパブリック エンドポイントを無効にできます。

Azure portal を使ってパブリック エンドポイントを無効にするには、次の手順のようにします。

  1. Azure ポータルにアクセスします。
  2. マネージド インスタンスのあるリソース グループを開き、パブリック エンドポイントを構成する SQL Managed Instance を選択します。
  3. [セキュリティ] 設定で [ネットワーク] タブを選択します。
  4. 仮想ネットワークの構成ページで [無効] を選んでから、[保存] アイコンを選んで構成を更新します。

ネットワーク セキュリティ グループでパブリック エンドポイントのトラフィックを許可する

Azure portal を使って、ネットワーク セキュリティ グループ内のパブリック トラフィックを許可します。 次の手順に従います。

  1. Azure portal で SQL マネージド インスタンスの [概要] ページに移動します。

  2. [仮想ネットワークまたはサブネット] リンクを選ぶと、[仮想ネットワークの構成] ページに移動します。

    仮想ネットワークとサブネットの値を確認できる仮想ネットワーク構成ページを示すスクリーンショット

  3. 仮想ネットワークの構成ペインで [サブネット] タブを選び、マネージド インスタンスの [セキュリティ グループ] の名前を記録しておきます。

    マネージド インスタンスのセキュリティ グループを取得できる [サブネット] タブを示すスクリーンショット。

  4. マネージド インスタンスが含まれているリソース グループに戻ります。 前に記録したネットワーク セキュリティ グループの名前が表示されるはずです。 ネットワーク セキュリティ グループの名前を選んで、ネットワーク セキュリティ グループの構成ページを開きます。

  5. [受信セキュリティ規則] タブを選択し、deny_all_inbound 規則よりも優先度の高い規則を以下の設定で追加します:

    設定 提案された値 説明
    ソース 任意の IP アドレスまたはサービス タグ
    • Power BI などの Azure サービスの場合は、Azure クラウド サービス タグを選択します
    • 自分のコンピューターまたは Azure 仮想マシンの場合は、NAT IP アドレスを使用します
    ソース ポート範囲 * ソース ポートは、通常、動的に割り当てられ、予測できないため、* (任意) のままにしておきます
    宛先 Any マネージド インスタンスのサブネットへのトラフィックを許可するには、宛先は [任意] のままにしておきます
    宛先ポート範囲 3342 宛先ポート野範囲を 3342 に設定します。これが、マネージド インスタンスのパブリック TDS エンドポイントです
    プロトコル TCP SQL Managed Instance では、TDS に TCP プロトコルを使用します
    操作 Allow パブリック エンドポイントを介したマネージド インスタンスへの受信トラフィックを許可します
    優先順位 1300 この規則が deny_all_inbound 規則よりも優先度が高いことを確認してください

    新しい public_endpoint_inbound ルールが deny_all_inbound ルールの上にある受信セキュリティ ルールを示すスクリーンショット。

    注意

    マネージド インスタンスへのパブリック エンドポイント接続にはポート 3342 が使用され、現在は変更できません。

ルーティングが適切に構成されていることを確認する

アドレス プレフィックスが 0.0.0.0/0 のルートは、サブネットのルート テーブルのその他のルートのアドレス プレフィックスに含まれていない IP アドレス宛てのトラフィックをルーティングする方法を Azure に指示します。 サブネットが作成されると、アドレス プレフィックスが 0.0.0.0/0 で、ネクストホップの種類が インターネット の既定 のルートが作成されます。

パブリック エンドポイント トラフィックをインターネットに直接ルーティングするために、必要なルートを追加せずにこのデフォルト ルートをオーバーライドすると、受信トラフィックが仮想アプライアンス/仮想ネットワーク ゲートウェイを経由しなくなるため、非対称ルーティングの問題が発生する可能性があります。 パブリック インターネット経由でマネージド インスタンスに到達するすべてのトラフィックは、パブリック インターネット経由で戻されるようになります。これには、ソースごとに特定のルートが追加されるか、デフォルト ルートが 0.0.0.0/0 アドレス プレフィックスにより設定されることで、次ホップの種類として インターネット に戻されます。

デフォルト ルートに対する変更の影響に関する詳細は、「0.0.0.0/0 アドレス プレフィックス」を参照してください。

パブリック エンドポイントの接続文字列を取得する

  1. パブリック エンドポイントに対して有効になっている マネージド インスタンスの構成ページに移動します。 [設定] 構成の下にある [接続文字列] タブを選択します。

  2. パブリック エンドポイントのホスト名は <mi_name>.public.<dns_zone>.database.windows.net という形式になっており、接続に使われるポートは 3342 です。 SQL Server Management Studio または Azure Data Studio 接続で使用できるパブリック エンドポイント ポートを示す接続文字列のサーバー値の例を次に示します: <mi_name>.public.<dns_zone>.database.windows.net,3342

    パブリック エンドポイントと VNet ローカル エンドポイントの接続文字列を示すスクリーンショット。

次のステップ

パブリック エンドポイントで安全に Azure SQL Managed Instance を使用する方法を学習する。