適用対象:Azure SQL Managed Instance
この記事では、Azure SQL Managed Instance のプライベート エンドポイントの概要と、それを構成する手順について説明します。 プライベート エンドポイントは、サービスのネットワーク インフラストラクチャ全体を公開することなく、サービスと複数の仮想ネットワークの間に、安全で分離された接続を確立します。
概要
Private Link は、任意の仮想ネットワークで Azure SQL Managed Instance を使用できるようにする Azure テクノロジです。 ネットワーク管理者は、仮想ネットワーク内の Azure SQL Managed Instance へのプライベート エンドポイントを確立でき、SQL 管理者はエンドポイントがアクティブになる前にそれを受け入れるか拒否するかを選びます。 プライベート エンドポイントは、サービスのネットワーク インフラストラクチャ全体を公開することなく、サービスと複数の仮想ネットワークの間に、安全で分離された接続を確立します。
プライベート エンドポイントと VNet ローカル エンドポイントの違い
各 Azure SQL Managed Instance でデプロイされる既定の VNet ローカル エンドポイントは、サービスを実行しているコンピューターが仮想ネットワークに物理的に接続されているかのように動作します。 これにより、ルート テーブル、ネットワーク セキュリティ グループ、DNS 解決、ファイアウォール、および同様のメカニズムを使って、ほぼ完全にトラフィックを制御できます。 また、このエンドポイントを使用して、フェールオーバー グループ、分散トランザクション、Managed Instance リンクなど、1433 以外のポートで接続を必要とするシナリオでインスタンスを関与させることもできます。 VNet ローカル エンドポイントは柔軟性を提供しますが、特定のシナリオ (特に複数の仮想ネットワークまたはテナントを含むシナリオ) 用に構成するときは複雑さが増します。
これに対し、プライベート エンドポイントのセットアップは、Azure SQL Managed Instance を実行しているコンピューターから別の仮想ネットワークに物理的なネットワーク ケーブルを延長するようなものです。 この接続パスは、Azure Private Link テクノロジを使って仮想的に確立されます。 プライベート エンドポイントから Azure SQL Managed Instance への 1 方向の接続のみが許可されます。 また、トラフィックはポート 1433 (標準 TDS トラフィック ポート) でのみ伝送されます。 これにより、ネットワーク ピアリングを設定したり、インスタンスのパブリック エンドポイントを有効にしたりする必要なしに、異なる仮想ネットワークで Azure SQL Managed Instance を使用できるようになります。 インスタンスを別のサブネットに移動した場合でも、確立されたプライベート エンドポイントは引き続きそれを指し示します。
Azure SQL Managed Instance でサポートされるさまざまな種類のエンドポイントについて詳しくは、「通信の概要」をご覧ください。
プライベート エンドポイントを使用する時期
Azure SQL Managed Instance へのプライベート エンドポイントは、 VNet ローカル エンドポイント または パブリック エンドポイント を使用するよりも安全であり、重要な接続シナリオの実装を簡略化します。 これらのシナリオは、次のとおりです。
- Airlock: Azure SQL Managed Instance へのプライベート エンドポイントは、ジャンプ サーバーと ExpressRoute ゲートウェイを備えた仮想ネットワークにデプロイされ、オンプレミスリソースとクラウド リソース間のセキュリティと分離を提供します。
- ハブ アンド スポーク トポロジ: スポーク仮想ネットワーク内のプライベート エンドポイントは、SQL クライアントとアプリケーションからハブ仮想ネットワーク内の Azure SQL Managed Instance へのトラフィックを実行し、明確なネットワーク分離と責任の分離を確立します。
- パブリッシャー コンシューマー: パブリッシャー テナント (ISV など) は、仮想ネットワーク内の複数の SQL マネージド インスタンスを管理します。 パブリッシャーは、他のテナントの仮想ネットワーク名にプライベート エンドポイントを作成し、コンシューマーがインスタンスを使用できるようにします。
- Azure PaaS サービスと SaaS サービスの統合: 一部の PaaS および SaaS サービス ( Azure Data Factory など) では、Azure SQL Managed Instance へのプライベート エンドポイントを作成および管理できます。
プライベート エンドポイントを使うと、VNet ローカル エンドポイントやパブリック エンドポイントより次のような利点があります。
- IP アドレスの予測可能性: Azure SQL Managed Instance へのプライベート エンドポイントには、サブネットのアドレス範囲から固定 IP アドレスが割り当てられます。 VNet ローカル エンドポイントとパブリック エンドポイントの IP アドレスが変更された場合でも、この IP アドレスは静的なままです。
- 詳細なネットワーク アクセス: プライベート エンドポイントは、その仮想ネットワーク内でのみ表示されます。
- 強力なネットワーク分離: ピアリングシナリオでは、ピアリングされた仮想ネットワークは双方向接続を確立しますが、プライベート エンドポイントは一方向であり、ネットワーク内のネットワーク リソースを Azure SQL Managed Instance に公開しません。
- アドレスの重複を回避する: 複数の仮想ネットワークをピアリングするには、慎重な IP 領域の割り当てが必要であり、アドレス空間が重複する場合に問題が発生する可能性があります。
- IP アドレスの不動産を節約する: プライベート エンドポイントは、サブネットのアドレス空間から 1 つの IP アドレスのみを使用します。
制限事項
- Azure SQL Managed Instance では、SQL クライアントによって送信される接続文字列に、インスタンスの正確な "ホスト名" が含まれている必要があります。 プライベート エンドポイントの IP アドレスの使用はサポートされていないため、失敗します。 これを解決するには、DNS サーバーを構成するか、「プライベート エンドポイントのドメイン名解決を設定する」で説明されているようにプライベート DNS ゾーンを使います。
- DNS 名の自動登録はまだサポートされていません。 代わりに、「プライベート エンドポイントのドメイン名解決を設定する」の手順のようにします。
- SQL Managed Instance へのプライベート エンドポイントは、SQL トラフィックの標準 TDS ポートであるポート 1433 への接続にのみ使用できます。 他のポートでの通信が必要なさらに複雑な接続シナリオは、インスタンスの VNet ローカル エンドポイントを介して確立する必要があります。
- Azure SQL Managed Instance へのプライベート エンドポイントには、「プライベート エンドポイントのドメイン名解決を設定する」で説明されているように、必要な DNS 解決を構成するための特別な設定が必要です。
- プライベート エンドポイントでは、接続の種類の設定に関係なく、常にプロキシ接続の種類が使用されます。
仮想ネットワーク内にプライベート エンドポイントを作成する
Azure portal、Azure PowerShell、または Azure CLI を使って、プライベート エンドポイントを作成します。
プライベート エンドポイントを作成した後、ターゲット仮想ネットワーク内での作成の承認が必要になる場合もあります。 「プライベート エンドポイントを作成するための要求を確認して承認する」を参照してください。
SQL Managed Instance へのプライベート エンドポイントを完全に機能させるには、手順に従ってプライベート エンドポイントのドメイン名解決を設定します。
PaaS または SaaS サービスでプライベート エンドポイントを作成する
一部の Azure PaaS および SaaS サービスでは、プライベート エンドポイントを使って、環境内からデータにアクセスできます。 そのようなサービスでプライベート エンドポイント ("マネージド プライベート エンドポイント" または "マネージド仮想ネットワーク内のプライベート エンドポイント" と呼ばれることもあります) を設定する手順は、サービスによって異なります。 それでも、管理者は、「プライベート エンドポイントの作成要求を確認して承認する」で説明されているように、Azure SQL Managed Instance で要求を確認して承認する必要があります。
注意
Azure SQL Managed Instance では、SQL クライアントからの接続文字列で、ドメイン名の最初のセグメントとしてインスタンスの名前を指定する必要があります (例: <instance-name>.<dns-zone>.database.windows.net)。 Ip アドレスを介して Azure SQL Managed Instance のプライベート エンドポイントに接続しようとする PaaS サービスと SaaS サービスは接続できません。
テナント間のプライベート エンドポイントを作成する
Azure SQL Managed Instance へのプライベート エンドポイントは、異なる Azure テナントに作成することもできます。 これを行うには、プライベート エンドポイントが表示される仮想ネットワークの管理者は、まず、プライベート エンドポイントを要求しようとしている Azure SQL Managed Instance の完全なリソース ID を取得する必要があります。 この情報を使用すると、プライベート リンク センターで新しいプライベート エンドポイントを作成できます。 以前と同様、Azure SQL Managed Instance の管理者は、「プライベート エンドポイントの作成要求を確認して承認する」 に従って、確認して承認または拒否できるリクエストを受け取ります。
プライベート エンドポイントの作成要求を確認して承認する
プライベート エンドポイントの作成が要求されると、SQL 管理者は、Azure SQL Managed Instance へのプライベート エンドポイントの接続を管理できます。 新しいプライベート エンドポイント接続を管理するための最初のステップは、プライベート エンドポイントを確認して承認することです。 プライベート エンドポイントを作成しているユーザーまたはサービスに、Azure SQL Managed Instance リソースに対する十分な Azure RBAC のアクセス許可がある場合、このステップは自動的に行われます。 ユーザーに十分なアクセス許可がない場合は、プライベート エンドポイントのレビューと承認を手動で行う必要があります。
プライベート エンドポイントを承認するには、次の手順のようにします。
Azure portal で、対象の Azure SQL Managed Instance に移動します。
[セキュリティ] で [プライベート エンドポイントの接続] を選びます。
[保留中] 状態の接続を確認し、チェック ボックスをオンにして、承認または拒否する 1 つ以上のプライベート エンドポイント接続を選択します。
[承認] または [拒否] を選んだ後、操作を確認するダイアログ ボックスで [はい] を選びます。
接続を承認または拒否すると、[プライベート エンドポイントの接続] の一覧に、現在のプライベート エンドポイント接続の状態と要求/応答メッセージが反映されます。
プライベート エンドポイントのドメイン名解決を設定する
Azure SQL Managed Instance へのプライベート エンドポイントを作成したら、ドメイン名解決を構成する必要があります。 それ以外の場合、ログインの試行は失敗します。 次の方法は、Azure DNS 解決を使用する仮想ネットワークに対して機能します。 カスタム DNS サーバーを使うように仮想ネットワークが構成されている場合は、それに応じて手順を調整します。
VNet ローカル エンドポイントのドメイン名が <instance-name>.<dns-zone>.database.windows.netインスタンスに対してプライベート エンドポイントのドメイン名解決を設定するには、インスタンスとそのプライベート エンドポイントが同じ仮想ネットワーク内にあるか、異なる仮想ネットワークにあるかに基づいて、このセクションの 2 つの手順のいずれかに従います。
重要
Azure SQL Managed Instance ドメイン名の VNet ローカル エンドポイントが独自の仮想ネットワーク内でどのように解決されるかを変更しないでください。 そのようにすると、管理操作を実行するインスタンスの機能が損なわれます。
プライベート エンドポイントと Azure SQL Managed Instance が異なる仮想ネットワークにある場合は、次の手順のようにします。
これらの手順を完了すると、エンドポイントの仮想ネットワーク内から <instance-name>.<dns-zone>.database.windows.net に接続する SQL クライアントは、プライベート エンドポイントを通して透過的にルーティングされるようになります。
Private Link センターにアクセスするか、次の手順のようにして、プライベート エンドポイントの IP アドレスを取得します。
Azure portal で、対象の Azure SQL Managed Instance に移動します。
[セキュリティ] で [プライベート エンドポイントの接続] を選びます。
表でプライベート エンドポイント接続を見つけ、選択した接続の プライベート エンドポイント名 を選択します。
[ 概要 ] ページで、ネットワーク インターフェイスを選択します。
[概要] ページの [基本] をチェックし、[プライベート IP アドレス] を確認してコピーします。
DNS ゾーンで、次の値を持つ新しいレコード セットを作成します。
- 名前:
<instance-name> - タイプ: A
- IP アドレス: 前のセットで取得したプライベート エンドポイントの IP アドレス
- 名前:
関連コンテンツ
- Azure SQL Managed Instance の
接続アーキテクチャ - Azure Private Link と プライベート エンドポイント
- Azure Private Link の可用性