Azure Database for PostgreSQL - Private Link を使用したフレキシブル サーバー ネットワーク

Azure Private Link を使用すると、Azure Database for PostgreSQL フレキシブル サーバーのプライベート エンドポイントを作成して Virtual Network (仮想ネットワーク) 内に配置できます。 この機能は、VNET 統合が提供する既存のネットワーク機能に加えて導入され、現在 Azure Database for PostgreSQL フレキシブル サーバーで一般提供中です。 Private Link を使用すると、仮想ネットワークとサービスの間のトラフィックは、Microsoft のバックボーン ネットワークを通ります。 パブリック インターネットにサービスを公開する必要はありません。 お使いの仮想ネットワークに独自のプライベート リンク サービスを作成して顧客に提供することができます。 Azure Private Link を使用した設定と消費は、Azure PaaS サービス、顧客所有サービス、共有パートナー サービス間で一貫しています。

Private Link は、次に示す 2 つの Azure リソースの種類を通じてユーザーに公開されます。

  • プライベート エンドポイント (Microsoft.Network/PrivateEndpoints)
  • Private Link サービス (Microsoft.Network/PrivateLinkServices)

プライベート エンドポイント

プライベート エンドポイントは、リソースにネットワーク インターフェイスを追加し、VNET (Virtual Network) から割り当てられたプライベート IP アドレスを提供します。 適用すると、仮想ネットワーク (VNET) を介して、このリソースと排他的に通信できます。 Private Link 機能をサポートしている PaaS サービスの一覧については、Private Link のドキュメントを参照してください。 プライベート エンドポイントは、特定の VNet とサブネット内のプライベート IP アドレスです。

アドレス空間が重複している場合でも、異なる VNet/サブネット内の複数のプライベート エンドポイントから同じパブリック サービス インスタンスを参照できます。

Azure Private Link には、次のようなメリットがあります。

  • Azure プラットフォーム上のプライベート アクセス サービス: プライベート エンドポイントを使用して、Azure のアプリケーション コンポーネントとして使用できるすべてのサービスに仮想ネットワークを接続します。 サービス プロバイダーは独自のローカル仮想ネットワークでサービスを提供することができ、また、コンシューマーは自身のローカル仮想ネットワークでサービスにアクセスすることができます。 Private Link プラットフォームでは、Azure のバックボーン ネットワークを介してコンシューマーとサービスの間の接続が処理されます。

  • オンプレミスおよびピアリングされたネットワーク: Azure で実行されているサービスに対し、ExpressRoute プライベート ピアリングや VPN トンネル経由でオンプレミスから、さらには、ピアリングされた仮想ネットワークから、プライベート エンドポイントを使用してアクセスすることができます。 ExpressRoute Microsoft ピアリングを構成したり、インターネットを経由してサービスに接続したりする必要はありません。 Private Link を使用すれば、Azure にワークロードを安全に移行することができます。

  • データの漏えいに対する保護: プライベート エンドポイントは、サービス全体にではなく、PaaS リソースの特定のインスタンスにマップされます。 コンシューマーが接続できるのは、その特定のリソースだけです。 サービス内の他のリソースへのアクセスはブロックされます。 このメカニズムにより、データの漏えいリスクを防ぐことができます。

  • グローバルな展開: 他のリージョンで実行中のサービスにプライベートに接続します。 リージョン A にあるコンシューマーの仮想ネットワークから、リージョン B の、Private Link の背後にあるサービスに接続することができます。

クライアントを使用すると、同じ VNet から、同じリージョン内またはリージョン間でピアリングされた VNet から、またはリージョン間の VNet 間接続を介して、プライベート エンドポイントに接続できます。 さらに、クライアントは、ExpressRoute、プライベート ピアリング、または VPN トンネリングを使用して、オンプレミスから接続できます。 一般的なユース ケースを示す簡略化された図を以下に示します。

Azure Private Link とプライベート エンドポイントの連携方法を示す図。

Azure Database for PostgreSQL フレキシブル サーバーのプライベート エンドポイントの機能間の可用性マトリックス。

機能 可用性 メモ
高可用性 (HA) はい 設計どおりに動作
読み取りレプリカ はい 設計どおりに動作
仮想エンドポイントを使用した読み取りレプリカ はい 設計どおりに動作
ポイントインタイム リストア (PITR) はい 設計どおりに動作
ファイアウォール規則を使用してパブリック/インターネット アクセスも許可 はい 設計どおりに動作
メジャー バージョン アップグレード(MVU) はい 設計どおりに動作
Microsoft Entra 認証 (Entra Auth) はい 設計どおりに動作
PGBouncer による接続プーリング はい 設計どおりに動作
プライベート エンドポイント DNS はい 設計および文書化されたとおりに動作
カスタマー マネージド キー (CMK) を使用した暗号化 はい 設計どおりに動作

ピアリングされた仮想ネットワー内の Azure VM から接続する

仮想ネットワーク ピアリングを構成して、ピアリングされた仮想ネットワーク内の Azure VM から Azure Database for PostgreSQL フレキシブル サーバーへの接続を確立します。

VNet 間環境内の Azure VM からの接続

VNet 間 VPN ゲートウェイ接続を構成して、別のリージョンまたはサブスクリプションの Azure VM から Azure Database for PostgreSQL フレキシブル サーバー インスタンスへの接続を確立します。

オンプレミス環境からの VPN 経由の接続

オンプレミス環境から Azure Database for PostgreSQL フレキシブル サーバー インスタンスへの接続を確立するには、次のいずれかのオプションを選択して実装します。

プライベート エンドポイントを使用する場合、トラフィックはプライベート リンク リソースに保護されます。 このプラットフォームではネットワーク接続が検証されます。指定されたプライベート リンク リソースに到達するこれらの接続のみを許可します。 同じ Azure サービス内のより多くのサブリソースにアクセスするには、より多くのプライベート エンドポイントとそれに対応するターゲットが必要です。 Azure Storage の場合、たとえば、サブリソースの "ファイル" と "BLOB" にアクセスするための個別のプライベート エンドポイントが必要になります。

プライベート エンドポイントからは、Azure サービスでプライベート アクセスできる IP アドレスが提供されますが、必ずしもパブリックネットワークアクセスを制限する必要はありません。 ただし、その他のすべての Azure サービスには、別のアクセス制御が必要です。 これらの制御によってリソースに追加のネットワーク セキュリティ層が与えられます。プライベートリンク リソースに関連付けられている Azure サービスへのアクセスを保護します。

プライベート エンドポイントは、ネットワーク ポリシーをサポートします。 ネットワーク ポリシーを使用すると、ネットワーク セキュリティ グループ (NSG)、ユーザー定義ルート (UDR)、アプリケーション セキュリティ グループ (ASG) をサポートできるようになります。 プライベート エンドポイントのネットワーク ポリシーの有効化の詳細については、「プライベート エンドポイントのネットワーク ポリシーを管理する」を参照してください。 プライベート エンドポイントで ASG を使用するには、「プライベート エンドポイントを使用してアプリケーション セキュリティ グループ (ASG) を構成する」を参照してください。

プライベート エンドポイントを使用する場合は同じ Azure サービスに接続する必要がありますが、プライベート エンドポイントの IP アドレスを使用します。 親密なエンドポイント接続では、プライベート IP アドレスをリソース名に解決するための、個別の ドメイン ネーム システム (DNS) 設定が必要です。 プライベート DNS ゾーンは、カスタム DNS ソリューションなしで仮想ネットワーク内のドメイン名解決を提供します。 ユーザーはプライベート DNS ゾーンを各仮想ネットワークにリンクして、そのネットワークに DNS サービスを提供します。

プライベート DNS ゾーンは Azure サービスごとに個別の DNS ゾーン名を提供します。 たとえば、前のイメージでストレージ アカウント BLOB サービスのプライベート DNS ゾーンを構成した場合、DNS ゾーン名は privatelink.blob.core.windows.net になります。 すべての Azure サービスの、プライベート DNS ゾーン名の詳細については、ここから Microsoft のドキュメントを参照してください。

Note

プライベート エンドポイントのプライベート DNS ゾーン構成は、推奨される名前付けスキームを使用する場合にのみ自動的に生成されます: privatelink.postgres.database.azure.com。新しくプロビジョニングされたパブリック アクセス (VNET が挿入されていない) サーバーでは、一時的に DNS レイアウトが変更されます。 サーバーの FQDN は、servername.privatelink.postgres.database.azure.com 形式の A レコードに解決される CName になります。 近い将来、この形式は、サーバー上にプライベート エンドポイントが作成されるときだけ適用されます。

Azure リソースとオンプレミス リソースのハイブリッド DNS

ドメイン ネーム システム (DNS) は、ランディング ゾーンのアーキテクチャ全体における重要な設計トピックです。 組織によっては、DNS での既存の投資を使用したい場合もあれば、すべての DNS ニーズにネイティブ Azure 機能を採用したい場合もあります。 Azure DNS Private Resolver サービスを Azure プライベート DNS ゾーンと組み合わせて使用し、クロスプレミスの名前解決を実現できます。 DNS Private Resolver は、DNS 要求を別の DNS サーバーに転送でき、外部 DNS サーバーが要求を転送するために使用できる IP アドレスも提供します。 そのため、外部のオンプレミス DNS サーバーは、プライベート DNS ゾーンにある名前を解決できます。

プライベート DNS リゾルバーをオンプレミスの DNS フォワーダーと共に使用して DNS トラフィックを Azure DNS に転送する方法の詳細については、このドキュメントと、こちらのドキュメントを参照してください。 説明されているソリューションを使用すると、Azure 内のリソースを解決するための DNS ソリューションが既に配置されているオンプレミスのネットワークを拡張できます。 Microsoft アーキテクチャ。

プライベート DNS ゾーンは通常、ハブ VNet がデプロイされている同じ Azure サブスクリプションで、一元的にホストされます。 この中央ホスティング プラクティスは、クロスプレミス DNS 名前解決や、Active Directory などの中央の DNS 解決に対するその他のニーズによって推進されます。 ほとんどの場合、ゾーンで DNS レコードを管理するアクセス許可を持つのは、ネットワークと ID の管理者のみです。

このようなアーキテクチャでは、次の構成が行われます。

  • オンプレミスのDNSサーバーには、プライベートエンドポイントのパブリックDNSゾーンごとに条件付きフォワーダーが構成されており、ハブVNetでホストされているプライベートDNSリゾルバーを指します。
  • ハブVNetでホストされているプライベートDNSリゾルバーは、Azureが提供するDNS (168.63.129.16) をフォワーダーとして使用します。
  • ハブ VNet は、Azure サービスのプライベート DNS ゾーン名 (Azure Database for PostgreSQL - フレキシブル サーバーの場合は privatelink.postgres.database.azure.com など) にリンクする必要があります。
  • すべての Azure VNet は、ハブ VNet でホストされているプライベート DNS リゾルバーを使用します。
  • プライベート DNS リゾルバーに、お客様の企業ドメイン (Active Directory ドメイン名など) に対する権限がない場合 (単なるフォワーダーであるためなどの理由で)、そのようなゾーンに対する権限のあるオンプレミスの DNS サーバーまたは Azure にデプロイされている DNS サーバーを指す、お客様の企業ドメインへの送信エンドポイント フォワーダーがそれにある必要があります。

既定では、仮想ネットワーク内のサブネットに対してネットワーク ポリシーは無効になっています。 ユーザー定義ルートやネットワーク セキュリティ グループのサポートなどのネットワーク ポリシーを利用するには、サブネットに対してネットワーク ポリシーのサポートを有効にする必要があります。 この設定は、サブネット内のプライベート エンドポイントにのみ適用されます。 この設定は、サブネット内のすべてのプライベート エンドポイントに影響します。 サブネット内の他のリソースについては、ネットワーク セキュリティ グループのセキュリティ規則に基づいてアクセスが制御されます。

ネットワーク ポリシーは、ネットワーク セキュリティ グループのみ、ユーザー定義ルートのみ、またはその両方に対して有効にすることができます。 詳細については、Azure ドキュメントを参照してください

ネットワーク セキュリティ グループ (NSG) とプライベート エンドポイントの制限事項は、こちらに記載されています

重要

データの漏えいに対する保護: プライベート エンドポイントは、サービス全体にではなく、PaaS リソースの特定のインスタンスにマップされます。 コンシューマーが接続できるのは、その特定のリソースだけです。 サービス内の他のリソースへのアクセスはブロックされます。 このメカニズムにより、データ漏えいのリスクに対する基本的な保護が提供されます。

Private Link とファイアウォール規則を組み合わせて使用すると、次のような状況と結果になる可能性があります。

  • ファイアウォール規則を構成していない場合、既定では、どのトラフィックも Azure Database for PostgreSQL フレキシブル サーバー インスタンスにアクセスできません。

  • パブリック トラフィックまたはサービス エンドポイントを構成し、プライベート エンドポイントを作成する場合、さまざまな種類の受信トラフィックが、対応する種類のファイアウォール規則によって承認されます。

  • パブリック トラフィックまたはサービス エンドポイントを構成せずにプライベート エンドポイントを作成する場合、Azure Database for PostgreSQL フレキシブル サーバー インスタンスにはプライベート エンドポイントからのみアクセスできます。 パブリック トラフィックまたはサービス エンドポイントを構成しない場合、すべての承認済みプライベート エンドポイントが拒否または削除されると、どのトラフィックも Azure Database for PostgreSQL フレキシブル サーバー インスタンスにアクセスできなくなります。

プライベート エンドポイント ベースのネットワークに関する接続の問題のトラブルシューティング

プライベート エンドポイント ベースのネットワークを使用して接続の問題が発生しているかどうかを確認する基本的な領域を次に示します:

  1. IP アドレスの割り当てを確認する: プライベート エンドポイントに正しい IP アドレスが割り当てされていること、および他のリソースとの競合がないことを確認します。 プライベート エンドポイントと IP の詳細については、この 「ドキュメント」を参照してください
  2. ネットワーク セキュリティ グループ (NSG) を確認する: プライベート エンドポイントのサブネットの NSG 規則を確認して、必要なトラフィックが許可され、競合する規則がないことを確認します。 NSG の詳細については、この「ドキュメント」を参照してください
  3. ルート テーブルの構成を検証する: プライベート エンドポイントのサブネットに関連付けられているルート テーブルと、接続されているリソースが適切なルートで正しく構成されていることを確認します。
  4. ネットワーク モニターと診断を使用する: Azure Network Watcher を利用して、接続モニターやパケット キャプチャなどのツールを使用してネットワーク トラフィックを監視および診断します。 ネットワーク診断の詳細については、この「ドキュメント」を参照してください

プライベートのトラブルシューティングの詳細については、この「ガイド」を参照してください

プライベート エンドポイント ベースのネットワークに関するDNS 解決のトラブルシューティング

プライベート エンドポイント ベースのネットワークを使用してDNS 解決の問題が発生しているかどうかを確認する基本的な領域を次に示します:

  1. DNS 解決を検証する: プライベート エンドポイントで使用されている DNS サーバーまたはサービスと接続されているリソースが正しく機能しているかどうかを確認します。 プライベート エンドポイントの DNS 設定が正確であることを確認します。 プライベート エンドポイントと DNS ゾーンの設定の詳細については、この「ドキュメント」を参照してください
  2. DNS キャッシュをクリアする: プライベート エンドポイントまたはクライアント コンピューターの DNS キャッシュをクリアして、最新の DNS 情報が確実に取得され、一貫性のないエラーが発生しないようにします。
  3. DNS ログを分析する: DNS ログで、エラー メッセージや、DNS クエリエラー、サーバー エラー、タイムアウトなどの異常なパターンを確認します。 DNS メトリックの詳細については、この「ドキュメント」を参照してください

次のステップ

  • Azure portal または Azure CLIプライベート アクセス (VNet 統合) オプションを使って Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成する方法について説明します。