Azure Private Link を使用すると、Azure Database for PostgreSQL フレキシブル サーバーのプライベート エンドポイントを作成し、仮想ネットワーク内に配置することができます。 この機能は、仮想ネットワーク統合によって提供されるネットワーク機能の代わりに推奨されます。
Private Link を使用すると、仮想ネットワークとサービスの間のトラフィックは、Microsoft のバックボーン ネットワークを走査します。 パブリック インターネットにサービスを公開する必要はなくなりました。 お使いの仮想ネットワークに独自のプライベート リンク サービスを作成して顧客に提供することができます。 Private Link を使用した設定と消費は、Azure PaaS サービス、顧客所有サービス、共有パートナー サービス間で一貫しています。
Private Link は、次に示す 2 つの Azure リソースの種類を通じてユーザーに公開されます。
- プライベート エンドポイント (Microsoft.Network/PrivateEndpoints)
- Private Link サービス (Microsoft.Network/PrivateLinkServices)
プライベート エンドポイント
プライベート エンドポイントは、リソースにネットワーク インターフェイスを追加し、仮想ネットワークから割り当てられたプライベート IP アドレスを提供します。 適用されると、仮想ネットワークを介してこのリソースと排他的に通信できます。 Private Link 機能をサポートしている PaaS サービスの一覧については、Private Link のドキュメントを参照してください。 プライベート エンドポイントは、特定の仮想ネットワークおよびサブネット内のプライベート IP アドレスです。
異なる仮想ネットワークまたはサブネット内にある複数のプライベート エンドポイントは、アドレス空間が重複している場合でも、同じパブリック サービス インスタンスを参照できます。
Private Link の主な利点
Private Link には次のような利点があります。
- Azure プラットフォーム上のサービスへのプライベート アクセス: プライベート エンドポイントを使用して、Azure のアプリケーション コンポーネントとして使用できるすべてのサービスに仮想ネットワークを接続します。 サービス プロバイダーは、独自の仮想ネットワークでサービスをレンダリングできます。 コンシューマーは、自身のローカル仮想ネットワーク内でこれらのサービスにアクセスできます。 Private Link プラットフォームでは、Azure のバックボーン ネットワークを介してコンシューマーとサービスの間の接続が処理されます。
- オンプレミスおよびピアリングされたネットワーク: Azure ExpressRoute プライベート ピアリング、仮想プライベート ネットワーク (VPN) トンネル、およびプライベート エンドポイントを使用してピアリングされた仮想ネットワークを経由して、Azure で実行されているサービスにオンプレミスからアクセスします。 ExpressRoute Microsoft ピアリングを構成したり、インターネットを走査してサービスに接続したりする必要はありません。 Private Link を使用すれば、Azure にワークロードを安全に移行することができます。
- データ漏えいに対する保護: プライベート エンドポイントは、サービス全体ではなく PaaS リソースのインスタンスにマップされます。 コンシューマーが接続できるのは、その特定のリソースだけです。 サービス内の他のリソースへのアクセスはブロックされます。 このメカニズムにより、データの漏えいリスクを防ぐことができます。
- Global Reach: 他のリージョンで実行されているサービスへのプライベート接続: コンシューマーの仮想ネットワークがリージョン A にある場合に、リージョン B の、Private Link の背後にあるサービスに接続できます。
Azure Database for PostgreSQL フレキシブル サーバーを使用した Private Link のユース ケース
クライアントは、次の場所からプライベート エンドポイントに接続できます。
- 同じ仮想ネットワーク。
- 同じリージョン内またはリージョン間でピアリングされた仮想ネットワーク。
- リージョン間のネットワーク間接続。
クライアントは、ExpressRoute、プライベート ピアリング、または VPN トンネリングを使用して、オンプレミスから接続することもできます。 次の簡略化された図は、一般的なユース ケースを示しています。
Private Link でサポートされている機能
以下に、Azure Database for PostgreSQL フレキシブル サーバーのプライベート エンドポイントの機能間の可用性マトリックスを示します。
機能 | 可用性 | メモ |
---|---|---|
高可用性 | はい | 設計どおりに動作。 |
読み取りレプリカ | はい | 設計どおりに動作。 |
仮想エンドポイントを使用した読み取りレプリカ | はい | 設計どおりに動作。 |
ポイントインタイム リストア | はい | 設計どおりに動作。 |
ファイアウォール規則を使用してパブリック/インターネット アクセスも許可 | はい | 設計どおりに動作。 |
メジャー バージョンのアップグレード | はい | 設計どおりに動作。 |
Microsoft Entra 認証 | はい | 設計どおりに動作。 |
PGBouncer による接続プーリング | はい | 設計どおりに動作。 |
プライベート エンドポイント DNS | はい | 設計および文書化されたとおりに動作。 |
カスタマー マネージド キーを使用した暗号化 | はい | 設計どおりに動作。 |
プライベート エンドポイントを構成できるのは、Azure Database for PostgreSQL フレキシブル サーバーが Private Link のサポートを導入した後に作成されたサーバーで、ネットワーク モードが仮想ネットワーク統合ではなくパブリック アクセスを使用するように構成されたものだけです。
その日付より前に作成され、ネットワーク モードが仮想ネットワーク統合ではなくパブリック アクセスを使用するように構成されたサーバーでは、プライベート エンドポイントの作成はまだサポートされていません。 プライベート エンドポイントの使用は、現在、仮想ネットワーク統合で作成されたサーバーではサポートされていません。
ピアリングされた仮想ネットワーク内の Azure VM から接続する
仮想ネットワーク ピアリングを構成して、ピアリングされた仮想ネットワーク内の Azure 仮想マシン (VM) から Azure Database for PostgreSQL フレキシブル サーバーへの接続を確立します。
ネットワーク間環境内の Azure VM から接続する
ネットワーク間 VPN ゲートウェイ接続を構成して、別のリージョンまたはサブスクリプションの Azure VM から Azure Database for PostgreSQL フレキシブル サーバーへの接続を確立します。
オンプレミス環境から VPN 経由で接続する
オンプレミス環境から Azure Database for PostgreSQL フレキシブル サーバーへの接続を確立するには、次のいずれかのオプションを選択して実装します。
ネットワーク セキュリティと Private Link
プライベート エンドポイントを使用すると、トラフィックがセキュリティで保護されて、"プライベート リンク リソース" 宛てに限定されます。 プラットフォームはネットワーク接続を検証し、指定されたプライベート リンク リソースに到達する接続のみを許可します。 同じ Azure サービス内のより多くのサブリソースにアクセスするには、より多くのプライベート エンドポイントとそれに対応するターゲットが必要です。 たとえば、Azure Storage の場合、サブリソースであるファイルと BLOB にアクセスするためには個別のプライベート エンドポイントが必要になります。
プライベート エンドポイントからは、Azure サービスでプライベート アクセスできる IP アドレスが提供されますが、必ずしもパブリック ネットワーク アクセスが制限されるわけではありません。 ただし、その他のすべての Azure サービスには、別のアクセスの制御が必要です。 これらの制御によってリソースにネットワーク セキュリティ層が追加されて、プライベート リンク リソースに関連付けられている Azure サービスへのアクセスを保護します。
プライベート エンドポイントは、ネットワーク ポリシーをサポートします。 ネットワーク ポリシーを使用すると、ネットワーク セキュリティ グループ (NSG)、ユーザー定義ルート (UDR)、アプリケーション セキュリティ グループ (ASG) をサポートできるようになります。 プライベート エンドポイントのネットワーク ポリシーの有効化の詳細については、「プライベート エンドポイントのネットワーク ポリシーを管理する」を参照してください。 プライベート エンドポイントで ASG を使用するには、「プライベート エンドポイントを使用してアプリケーション セキュリティ グループを構成する」を参照してください。
Private Link と DNS
プライベート エンドポイントを使用する場合は、同じ Azure サービスに接続し、プライベート エンドポイントの IP アドレスを使用する必要があります。 親密なエンドポイント接続では、プライベート IP アドレスをリソース名に解決するための、個別のドメイン ネーム システム (DNS) 設定が必要です。
プライベート DNS ゾーンは、カスタム DNS ソリューションなしで仮想ネットワーク内のドメイン名解決を提供します。 ユーザーはプライベート DNS ゾーンを各仮想ネットワークにリンクして、そのネットワークに DNS サービスを提供します。
プライベート DNS ゾーンは Azure サービスごとに個別の DNS ゾーン名を提供します。 たとえば、前のイメージでストレージ アカウント Blob service のプライベート DNS ゾーンを構成した場合、DNS ゾーン名は privatelink.blob.core.windows.net
になります。 すべての Azure サービスのプライベート DNS ゾーン名の詳細については、マイクロソフトのドキュメントを参照してください。
注意
プライベート エンドポイントのプライベート DNS ゾーン構成は、privatelink.postgres.database.azure.com
の推奨される名前付けスキームを使用する場合にのみ、自動的に生成されます。
新しくプロビジョニングされたパブリック アクセス (仮想ネットワーク統合されていない) サーバーでは、DNS レイアウトが変更されています。 サーバーの FQDN は、次のいずれかの形式の A レコードを指す servername.postgres.database.azure.com
形式の CNAME レコードになります。
- サーバーに既定のプライベート DNS ゾーンがリンクされたプライベート エンドポイントがある場合、A レコードは
server_name.privatelink.postgres.database.azure.com
形式を使用します。 - サーバーにプライベート エンドポイントがない場合、A レコードはこの
server_name.rs-<15 semi-random bytes>.postgres.database.azure.com
の形式を使用します。
Azure リソースとオンプレミス リソースのハイブリッド DNS
DNS は、ランディング ゾーンのアーキテクチャ全体における重要な設計項目です。 DNS への既存の投資を使用することを望む組織があります。 また、その他の組織は、DNS のすべてのニーズに対応するために、ネイティブの Azure 機能の導入を望んでいます。
Azure DNS Private Resolver を Azure プライベート DNS ゾーンと組み合わせて使用することで、クロスプレミスの名前解決を実現できます。 DNS Private Resolver は、DNS 要求を別の DNS サーバーに転送し、外部 DNS サーバーが要求を転送するために使用できる IP アドレスも提供します。 これにより、外部のオンプレミス DNS サーバーは、プライベート DNS ゾーンにある名前を解決できます。
DNS Private Resolver をオンプレミスの DNS フォワーダーと併用して、DNS トラフィックを Azure DNS に転送する方法の詳細については、以下を参照してください。
- Azure プライベート エンドポイントの DNS 統合
- オンプレミス ワークロード用に Azure Private Resolver を使用してプライベート エンドポイント DNS インフラストラクチャを作成する
説明したソリューションを使用すると、Azure.Microsoft
アーキテクチャ内のリソースを解決するための DNS ソリューションが既に配置されている、オンプレミスのネットワークを拡張できます。
ハブ アンド スポーク ネットワーク アーキテクチャでの Private Link と DNS の統合
通常、プライベート DNS ゾーンは、ハブ仮想ネットワークがデプロイされている同じ Azure サブスクリプションで、一元的にホストされます。 この中央ホスティング プラクティスは、クロスプレミス DNS 名前解決や、Microsoft Entra などの中央の DNS 解決に対するその他のニーズによって推進されます。 ほとんどの場合、ゾーンで DNS レコードを管理するアクセス許可を持つのは、ネットワークと ID の管理者のみです。
このようなアーキテクチャでは、次のコンポーネントが構成されます。
- オンプレミスの DNS サーバーには、プライベート エンドポイントのパブリック DNS ゾーンごとに条件付きフォワーダーが構成されており、ハブ仮想ネットワークでホストされているプライベート DNS リゾルバーを指します。
- ハブ仮想ネットワークでホストされているプライベート DNS リゾルバーは、Azure が提供する DNS (168.63.129.16) をフォワーダーとして使用します。
- ハブ仮想ネットワークは、Azure サービスのプライベート DNS ゾーン名 (Azure Database for PostgreSQL フレキシブル サーバーの場合は
privatelink.postgres.database.azure.com
など) にリンクさせる必要があります。 - すべての Azure 仮想ネットワークは、ハブ仮想ネットワークでホストされているプライベート DNS リゾルバーを使用します。
- プライベート DNS リゾルバーは、単なるフォワーダー (Microsoft Entra ドメイン名など) であるため、顧客の企業ドメインに対して権限がありません。それらのゾーンに対する権限を持つ、オンプレミスの DNS サーバーや Azure にデプロイされた DNS サーバーを指す、顧客の企業ドメインへの送信エンドポイント フォワーダーが必要です。
Private Link とネットワーク セキュリティ グループ
既定では、仮想ネットワーク内のサブネットに対してネットワーク ポリシーは無効になっています。 UDR や NSG のサポートなどのネットワーク ポリシーを利用するには、サブネットに対してネットワーク ポリシーのサポートを有効にする必要があります。 この設定は、サブネット内のプライベート エンドポイントにのみ適用されます。 この設定は、サブネット内のすべてのプライベート エンドポイントに影響します。 サブネット内のその他のリソースについては、NSG のセキュリティ規則に基づいてアクセスが制御されます。
NSG に対してのみ、UDR に対してのみ、またはその両方に対して、ネットワーク ポリシーを有効にすることができます。 詳細については、「プライベート エンドポイントのネットワーク ポリシーを管理する」を参照してください。
NSG とプライベート エンドポイントに対する制限事項は、「プライベート エンドポイントとは」に記載されています。
重要
データ漏洩に対する保護: プライベート エンドポイントは、サービス全体ではなく PaaS リソースのインスタンスにマップされます。 コンシューマーが接続できるのは、その特定のリソースだけです。 サービス内の他のリソースへのアクセスはブロックされます。 このメカニズムにより、データ漏えいのリスクに対する基本的な保護が提供されます。
Private Link とファイアウォール規則の組み合わせ
Private Link とファイアウォール規則を組み合わせて使用すると、次のような状況と結果になる可能性があります。
ファイアウォール規則を構成していない場合、既定では、トラフィックは Azure Database for PostgreSQL フレキシブル サーバーにアクセスできません。
パブリック トラフィックまたはサービス エンドポイントを構成し、プライベート エンドポイントを作成する場合、さまざまな種類の受信トラフィックが、該当する種類のファイアウォール規則によって承認されます。
パブリック トラフィックまたはサービス エンドポイントを構成せずにプライベート エンドポイントを作成する場合、Azure Database for PostgreSQL フレキシブル サーバーには、プライベート エンドポイントからのみアクセスできます。 パブリック トラフィックまたはサービス エンドポイントを構成しない場合、すべての承認済みプライベート エンドポイントが拒否または削除されると、トラフィックは Azure Database for PostgreSQL フレキシブル サーバーにアクセスできなくなります。
トラブルシューティング
Azure Database for PostgreSQL フレキシブル サーバーで Private Link エンドポイントを使用すると、構成の誤りやネットワークの制約が原因で接続の問題が発生する可能性があります。 これらの問題をトラブルシューティングするには、プライベート エンドポイント、DNS 構成、ネットワーク セキュリティ グループ (NSG)、およびルート テーブルのセットアップを確認します。 これらの領域に体系的に対処することで、一般的な問題を特定して解決し、シームレスな接続を確保し、データベースへのアクセスをセキュリティで保護することができます。
プライベート エンドポイント ベースのネットワークに関する接続の問題
プライベート エンドポイント ベースのネットワークの使用時に、接続の問題が発生する場合は、次の領域を確認してください。
- IP アドレスの割り当てを確認する: プライベート エンドポイントに正しい IP アドレスが割り当てられていること、および他のリソースとの競合がないことを確認します。 プライベート エンドポイントと IP の詳細については、「Azure プライベート エンドポイントの管理」を参照してください。
- NSG を確認する: プライベート エンドポイントのサブネットの NSG ルールを確認して、必要なトラフィックが許可され、競合するルールがないことを確認します。 NSG の詳細については、「ネットワーク セキュリティ グループ」を参照してください。
- ルート テーブルの構成を検証する: プライベート エンドポイントのサブネットに関連付けられているルート テーブルと、接続されているリソースが適切なルートで正しく構成されていることを確認します。
- ネットワーク モニターと診断を使用する: Azure Network Watcher を利用し、接続モニターやパケット キャプチャなどのツールを使用して、ネットワーク トラフィックを監視および診断します。 ネットワーク診断の詳細については、「Azure Network Watcher とは」を参照してください。
プライベート エンドポイントのトラブルシューティングの詳細については、「Azure プライベート エンドポイント接続に関する問題のトラブルシューティング」も参照してください。
プライベート エンドポイント ベースのネットワークを使用した DNS 解決
プライベート エンドポイント ベースのネットワークの使用時に DNS 解決の問題が発生する場合は、次の領域を確認してください。
- DNS 解決を検証する: プライベート エンドポイントで使用されている DNS サーバーまたはサービスと接続されているリソースが正しく機能しているかどうかを確認します。 プライベート エンドポイントの DNS 設定が正確であることを確認します。 プライベート エンドポイントおよび DNS ゾーンの設定の詳細については、「Azure プライベート エンドポイントのプライベート DNS ゾーンの値」を参照してください。
- DNS キャッシュを消去する: プライベート エンドポイントまたはクライアント マシンの DNS キャッシュを消去して、最新の DNS 情報が確実に取得され、一貫性のないエラーが発生しないようにします。
- DNS ログを分析する: DNS ログで、エラー メッセージや、DNS クエリ エラー、サーバー エラー、タイムアウトなどの異常なパターンを確認します。 DNS メトリックの詳細については、「Azure DNS メトリックとアラート」を参照してください。