Azure Private Linkを使用すると、Azure Database for PostgreSQLフレキシブル サーバーのプライベート エンドポイントを作成し、サーバーを仮想ネットワークに取り込みます。 この機能は、仮想ネットワーク統合によって提供されるネットワーク機能の代わりに推奨されます。
Private Linkを使用すると、仮想ネットワークとサービス間のトラフィックがMicrosoftバックボーン ネットワークを経由します。 サービスをパブリック インターネットに公開する必要がなくなりました。 お使いの仮想ネットワークに独自のプライベート リンク サービスを作成して顧客に提供することができます。 Private Link を使用した設定と消費は、Azure PaaS サービス、顧客所有サービス、共有パートナー サービス間で一貫しています。
次の 2 つのAzure リソースの種類によって、Private Linkがユーザーに公開されます。
- プライベート エンドポイント (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 リソースのインスタンスにマップされます。 コンシューマーが接続できるのは、その特定のリソースだけです。 サービス内の他のリソースへのアクセスはブロックされます。 このメカニズムにより、データの漏えいリスクを防ぐことができます。
- グローバル リーチ: 他のリージョンで実行されているサービスにプライベートに接続します。コンシューマーの仮想ネットワークはリージョン A に存在できます。リージョン B のPrivate Linkの背後にあるサービスに接続できます。
Azure Database for PostgreSQL を使用した Private Link のユース ケース
クライアントは、次の場所からプライベート エンドポイントに接続できます。
- 同じ仮想ネットワーク。
- 同じリージョン内またはリージョン間でピアリングされた仮想ネットワーク。
- リージョン間のネットワーク間接続。
クライアントは、ExpressRoute、プライベート ピアリング、または VPN トンネリングを使用して、オンプレミスから接続することもできます。 次の簡略化された図は、一般的なユース ケースを示しています。
Private Link でサポートされている機能
Azure Database for PostgreSQL フレキシブル サーバーのプライベート エンドポイントの機能間可用性マトリックスを次に示します。
| 特徴 | 可用性 | 注記 |
|---|---|---|
| 高可用性 | イエス | 設計どおりに動作。 |
| 読み取りレプリカ | イエス | 設計どおりに動作。 |
| 仮想エンドポイントを使用した読み取りレプリカ | イエス | 設計どおりに動作。 |
| ポイントインタイム リストア | イエス | 設計どおりに動作。 |
| ファイアウォール規則を使用してパブリック/インターネット アクセスも許可 | イエス | 設計どおりに動作。 |
| メジャー バージョンのアップグレード | イエス | 設計どおりに動作。 |
| Microsoft Entra 認証 | イエス | 設計どおりに動作。 |
| PGBouncer による接続プーリング | イエス | 設計どおりに動作。 |
| プライベート エンドポイント DNS | イエス | 設計および文書化されたとおりに動作。 |
| カスタマー マネージド キーを使用した暗号化 | イエス | 設計どおりに動作。 |
プライベート エンドポイントは、Private Linkのサポートが導入Azure Database for PostgreSQL後に作成したサーバーに対してのみ構成できます。 仮想ネットワーク統合ではなくパブリック アクセスを使用するようにネットワーク モードを構成する必要があります。
仮想ネットワーク統合ではなくパブリック アクセスを使用するようにネットワーク モードを構成した場合、その日付より前に作成したサーバーのプライベート エンドポイントを構成することはできません。 プライベート エンドポイントの使用は、現在、仮想ネットワーク統合で作成されたサーバーではサポートされていません。
ピアリングされた仮想ネットワーク内の 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 プライベート リゾルバーは、DNS 要求を別の DNS サーバーに転送でき、外部 DNS サーバーが要求の転送に使用できる IP アドレスも提供します。 そのため、外部のオンプレミス DNS サーバーは、プライベート DNS ゾーンにある名前を解決できます。
オンプレミスの DNS フォワーダーで 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 ゾーン名 (
privatelink.postgres.database.azure.comなど、Azure Database for PostgreSQL フレキシブル サーバーの場合) にリンクします。 - すべてのAzure仮想ネットワークは、ハブ仮想ネットワークでホストされている プライベート DNS リゾルバーを使用します。
- プライベート DNSリゾルバーは、単なるフォワーダー (Microsoft Entra ドメイン名など) であるため、顧客の企業ドメインに対して権限がありません。 顧客の企業ドメインに対する送信エンドポイント フォワーダーが必要であり、オンプレミスの DNS サーバー、またはそのようなゾーンに対して権限のあるAzureにデプロイされた DNS サーバーを指している必要があります。
Private Link とネットワーク セキュリティ グループ
既定では、仮想ネットワーク内のサブネットに対してネットワーク ポリシーは無効になっています。 UDR や NSG サポートなどのネットワーク ポリシーを使用するには、サブネットのネットワーク ポリシーのサポートを有効にする必要があります。 この設定は、サブネット内のプライベート エンドポイントにのみ適用されます。 この設定は、サブネット内のすべてのプライベート エンドポイントに影響します。 サブネット内のその他のリソースについては、NSG のセキュリティ規則に基づいてアクセスが制御されます。
NSG に対してのみ、UDR に対してのみ、またはその両方に対して、ネットワーク ポリシーを有効にすることができます。 詳細については、「プライベート エンドポイントのネットワーク ポリシーを管理する」を参照してください。
NSG とプライベート エンドポイントに対する制限事項は、「プライベート エンドポイントとは」に記載されています。
Important
データ漏洩に対する保護: プライベート エンドポイントは、サービス全体ではなく PaaS リソースのインスタンスにマップされます。 コンシューマーが接続できるのは、その特定のリソースだけです。 サービス内の他のリソースへのアクセスはブロックされます。 このメカニズムにより、データ漏えいのリスクに対する基本的な保護が提供されます。
Private Link とファイアウォール規則の組み合わせ
Private Link とファイアウォール規則を組み合わせて使用すると、次のような状況と結果になる可能性があります。
ファイアウォール規則を構成しない場合、既定では、トラフィックは Azure Database for PostgreSQL フレキシブル サーバーにアクセスできません。
パブリック トラフィックまたはサービス エンドポイントを構成し、プライベート エンドポイントを作成する場合、さまざまな種類の受信トラフィックが、該当する種類のファイアウォール規則によって承認されます。
パブリック トラフィックまたはサービス エンドポイントを構成せず、プライベート エンドポイントを作成した場合、Azure Database for PostgreSQLフレキシブル サーバーにはプライベート エンドポイント経由でのみアクセスできます。 パブリック トラフィックまたはサービス エンドポイントを構成しない場合、承認されたすべてのプライベート エンドポイントが拒否または削除された後、トラフィックは Azure Database for PostgreSQL フレキシブル サーバーにアクセスできません。
Troubleshoot
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 private endpoint プライベート DNS zone valuesを参照してください。
- DNS キャッシュを消去する: プライベート エンドポイントまたはクライアント マシンの DNS キャッシュを消去して、最新の DNS 情報が確実に取得され、一貫性のないエラーが発生しないようにします。
- DNS ログを分析する: DNS ログで、エラー メッセージや、DNS クエリ エラー、サーバー エラー、タイムアウトなどの異常なパターンを確認します。 DNS メトリックの詳細については、「Azure DNSメトリックとアラート」を参照してください。
制限事項と考慮事項
Private Linkの導入後に作成されたサーバーのプライベート エンドポイントのみを構成できます。 仮想ネットワーク (VNet) 統合を使用するサーバーは、プライベート エンドポイント構成の対象ではありません。
データベース サービス自体ではなくネットワーク制約Azure、プライベート エンドポイントの数を制限します。 具体的には、VNet 内の特定のサブネットに挿入できるプライベート エンドポイントの数が制限されます。
仮想マシンは、同じ仮想ネットワーク内で正しく構成されているか、適切なルーティングが設定されていれば、プライベート エンドポイントを介してデータベースに接続できます。