Azure Database for PostgreSQL - Private Link を使用したフレキシブル サーバー ネットワーク
Azure Private Link を使用すると、Azure Database for PostgreSQL - フレキシブル サーバーのプライベート エンドポイントを作成し、Virtual Network 内に配置することができます。 この機能は、仮想ネットワーク統合が提供する既存のネットワーク機能に加えて導入され、現在、Azure Database for PostgreSQL - フレキシブル サーバーで一般提供されています。
Private Link を使用すると、仮想ネットワークとサービスの間のトラフィックは、Microsoft のバックボーン ネットワークを通ります。 パブリック インターネットにサービスを公開する必要はありません。 お使いの仮想ネットワークに独自のプライベート リンク サービスを作成して顧客に提供することができます。 プライベート リンクを使用した設定と消費は、Azure PaaS サービス、顧客所有サービス、共有パートナー サービス間で一貫しています。
Note
プライベートリンクは、パブリック アクセス ネットワークを持つサーバーでのみ使用できます。 プライベート アクセス (仮想ネットワーク統合) を持つサーバー用に作成することはできません。
プライベート リンクは、この機能のリリース後に作成されたサーバーに対してのみ構成できます。 この機能のリリース前に存在していたサーバーは、プライベート リンクで設定できません。
Private Link は、次に示す 2 つの Azure リソースの種類を通じてユーザーに公開されます。
- プライベート エンドポイント (Microsoft.Network/PrivateEndpoints)
- プライベート リンク サービス (Microsoft.Network/PrivateLinkServices)
プライベート エンドポイント
プライベート エンドポイントは、リソースにネットワーク インターフェイスを追加し、仮想ネットワークから割り当てられたプライベート IP アドレスを提供します。 適用されると、仮想ネットワークを介してこのリソースと排他的に通信できます。 Private Link 機能をサポートしている PaaS サービスの一覧については、Private Link のドキュメントを参照してください。 プライベート エンドポイントは、特定の仮想ネットワークおよびサブネット内のプライベート IP アドレスです。
アドレス空間が重複している場合でも、異なる 仮想ネットワークまたはサブネット内の複数のプライベート エンドポイントから、同じパブリック サービス インスタンスを参照できます。
Private Link の主なベネフィット
プライベート リンクには次のようなベネフィットがあります。
- Azure プラットフォーム上のプライベート アクセス サービス: プライベート エンドポイントを使用して、Azure のアプリケーション コンポーネントとして使用できるすべてのサービスに仮想ネットワークを接続します。 サービス プロバイダーは、独自の仮想ネットワークでサービスをレンダリングできます。 コンシューマーは、ローカル仮想ネットワーク内のこれらのサービスにアクセスできます。 Private Link プラットフォームでは、Azure のバックボーン ネットワークを介してコンシューマーとサービスの間の接続が処理されます。
- オンプレミスおよびピアリングされたネットワーク: Azure で実行されているサービスに対し、ExpressRoute プライベート ピアリングや 仮想プライベート ネットワーク (VPN) トンネル経由でオンプレミスから、さらには、ピアリングされた仮想ネットワークから、プライベート エンドポイントを使用してアクセスすることができます。 ExpressRoute Microsoft ピアリングを構成したり、インターネットを経由してサービスに接続したりする必要はありません。 Private Link を使用すれば、Azure にワークロードを安全に移行することができます。
- データの漏えいに対する保護: プライベート エンドポイントは、サービス全体にではなく、PaaS リソースの特定のインスタンスにマップされます。 コンシューマーが接続できるのは、その特定のリソースだけです。 サービス内の他のリソースへのアクセスはブロックされます。 このメカニズムにより、データの漏えいリスクを防ぐことができます。
- Global Reach: 他のリージョンで実行されているサービスにプライベートに接続する: コンシューマーの仮想ネットワークはリージョン A にある可能性があります。リージョン B のプライベート リンクの背後にあるサービスに接続できます。
Azure Database for PostgreSQL - フレキシブル サーバーを使用したプライベート リンクのユース ケース
クライアントは、次の場所からプライベート エンドポイントに接続できます。
- 同じ仮想ネットワーク。
- 同じリージョン内またはリージョン間でピアリングされた仮想ネットワーク。
- リージョン間のネットワーク間接続。
ExpressRoute、プライベート ピアリング、または VPN トンネリングを使用して、オンプレミスから接続することもできます。 次の簡略図は、一般的なユース ケースを示しています。
Azure Database for PostgreSQL - フレキシブル サーバーを使用したプライベート リンクの制限事項とサポートされる機能
以下に、Azure Database for PostgreSQL - フレキシブル サーバーのプライベート エンドポイントの機能間の可用性マトリックスを示します。
機能 | 可用性 | メモ |
---|---|---|
高可用性 | はい | 設計どおりに動作 |
読み取りレプリカ | はい | 設計どおりに動作 |
仮想エンドポイントを使用した読み取りレプリカ | はい | 設計どおりに動作 |
ポイントインタイム リストア | はい | 設計どおりに動作 |
ファイアウォール規則を使用してパブリック/インターネット アクセスも許可 | はい | 設計どおりに動作 |
メジャー バージョンのアップグレード | はい | 設計どおりに動作 |
Microsoft Entra 認証 | はい | 設計どおりに動作 |
PGBouncer による接続プーリング | はい | 設計どおりに動作 |
プライベート エンドポイント DNS | はい | 設計および文書化されたとおりに動作 |
カスタマー マネージド キーを使用した暗号化 | はい | 設計どおりに動作 |
ピアリングされた仮想ネットワーク内の Azure VM から接続する
仮想ネットワーク ピアリングを構成して、ピアリングされた仮想ネットワーク内の Azure VM Virtual Machines (VM) から Azure Database for PostgreSQL - フレキシブル サーバーへの接続を確立します。
ネットワーク間環境内の Azure VM からの接続
ネットワーク間 VPN ゲートウェイ接続を構成して、別のリージョンまたはサブスクリプションに Azure VM から Azure Database for PostgreSQL - フレキシブル サーバーへの接続を確立します。
オンプレミス環境からの VPN 経由の接続
オンプレミス環境から Azure Database for PostgreSQL - フレキシブル サーバーへの接続を確立するには、次のいずれかのオプションを選択して実装します。
ネットワーク セキュリティとプライベート リンク
プライベート エンドポイントを使用する場合、トラフィックはプライベート リンク リソースに保護されます。 このプラットフォームではネットワーク接続が検証されます。指定されたプライベート リンク リソースに到達するこれらの接続のみを許可します。 同じ Azure サービス内のより多くのサブリソースにアクセスするには、より多くのプライベート エンドポイントとそれに対応するターゲットが必要です。 Azure Storage の場合、たとえば、サブリソースの "ファイル" と "BLOB" にアクセスするための個別のプライベート エンドポイントが必要になります。
プライベート エンドポイントからは、Azure サービスでプライベートにアクセスできる IP アドレスが提供されますが、必ずしもパブリック ネットワーク アクセスを制限する必要はありません。 ただし、その他のすべての Azure サービスには、別の Access Control が必要です。 これらの制御によってリソースに追加のネットワーク セキュリティ層が与えられます。プライベートリンク リソースに関連付けられている 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 ゾーン名の詳細については、マイクロソフトのドキュメントを参照してください。
Note
プライベート エンドポイントのプライベート 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 ソリューションが既に配置されている、オンプレミスのネットワークを拡張できます。
ハブ アンド スポーク ネットワーク アーキテクチャでのプライベート リンクと 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 サーバーを指す、顧客の企業ドメインへの送信エンドポイント フォワーダーが必要です。
プライベート リンクとネットワーク セキュリティ グループ
既定では、仮想ネットワーク内のサブネットに対してネットワーク ポリシーは無効になっています。 UDR や NSG のサポートなどのネットワーク ポリシーを利用するには、サブネットに対してネットワーク ポリシーのサポートを有効にする必要があります。 この設定は、サブネット内のプライベート エンドポイントにのみ適用されます。 この設定は、サブネット内のすべてのプライベート エンドポイントに影響します。 サブネット内のその他のリソースについては、NSG のセキュリティ規則に基づいてアクセスが制御されます。
NSG 対してのみ、UDR に対してのみ、またはその両方に対して、ネットワーク ポリシーを有効にすることができます。 詳細については、「プライベート エンドポイントのネットワーク ポリシーを管理する」を参照してください。
NSG とプライベート エンドポイントに対する制限事項は、「プライベート エンドポイントとは」に記載されています。
重要
データの漏えいに対する保護: プライベート エンドポイントは、サービス全体にではなく、PaaS リソースの特定のインスタンスにマップされます。 コンシューマーが接続できるのは、その特定のリソースだけです。 サービス内の他のリソースへのアクセスはブロックされます。 このメカニズムにより、データ漏えいのリスクに対する基本的な保護が提供されます。
Private Link とファイアウォール規則の組み合わせ
Private Link とファイアウォール規則を組み合わせて使用すると、次のような状況と結果になる可能性があります。
ファイアウォール規則を構成していない場合、既定では、トラフィックは Azure Database for PostgreSQL フレキシブル サーバーにアクセスできません。
パブリック トラフィックまたはサービス エンドポイントを構成し、プライベート エンドポイントを作成する場合、さまざまな種類の受信トラフィックが、該当する種類のファイアウォール規則によって承認されます。
パブリック トラフィックまたはサービス エンドポイントを構成せずにプライベート エンドポイントを作成する場合、Azure Database for PostgreSQL フレキシブル サーバー インスタンスには、プライベート エンドポイントからのみアクセスできます。 パブリック トラフィックまたはサービス エンドポイントを構成しない場合、すべての承認済みプライベート エンドポイントが拒否または削除されると、トラフィックは Azure Database for PostgreSQL フレキシブル サーバーにアクセスできなくなります。
プライベート エンドポイント ベースのネットワークに関する接続の問題のトラブルシューティング
プライベート エンドポイント ベースのネットワークの使用時に、接続の問題が発生する場合は、次の領域を確認してください。
- 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 メトリックとアラート」を参照してください。
関連するコンテンツ
Azure portal または Azure CLI でプライベート アクセス (VNet 統合) オプションを使用し、Azure Database for PostgreSQL フレキシブル サーバーを作成する方法について説明します。