Azure Cosmos DB for PostgreSQL でのプライベート アクセス

適用対象: Azure Cosmos DB for PostgreSQL (PostgreSQL の Citus データベース拡張機能を利用)

Azure Cosmos DB for PostgreSQL では、次の 3 つのネットワーク オプションに対応しています。

  • アクセス権なし
    • これは、パブリックまたはプライベート アクセスが有効になっていない場合に、新しく作成されるクラスターの既定値です。 Azure の内部でも外部でも、データベース ノードに接続できるコンピューターはありません。
  • パブリック アクセス
    • コーディネーター ノードには、パブリック IP アドレスが割り当てられます。
    • コーディネーターノードへのアクセスは、ファイアウォールによって保護されています。
    • 必要に応じて、すべてのワーカー ノードへのアクセスを有効にすることができます。 この場合、パブリック IP アドレスはワーカー ノードに割り当てられ、同じファイアウォールによって保護されます。
  • プライベート アクセス
    • クラスターのノードには、プライベート IP アドレスのみが割り当てられます。
    • 各ノードには、選択した仮想ネットワーク内のホストがノードにアクセスできるように、プライベート エンドポイントが必要です。
    • ネットワーク セキュリティ グループなどの Azure 仮想ネットワークのセキュリティ機能は、アクセス制御に使用できます。

クラスターを作成する場合は、パブリックまたはプライベート アクセスを有効にするか、既定の [アクセスなし] を選択することができます。 クラスターを作成したら、パブリック アクセスとプライベート アクセスの切り替えを選択するか、両方とも一度にアクティブ化することができます。

このページでは、プライベート アクセス オプションについて説明します。 パブリック アクセスについては、こちらを参照してください。

定義

Virtual network。 Azure Virtual Network (VNet) は、Azure 内のプライベート ネットワークの基本的な構成要素です。 仮想ネットワークでは、データベース サーバーや Azure Virtual Machine (VM) などのさまざまな種類の Azure リソースが、安全に相互に通信することができます。 仮想ネットワークでは、オンプレミス接続がサポートされ、複数の仮想ネットワーク内のホストがピアリングを介して相互に通信でき、スケール、セキュリティ オプション、分離といった面でもメリットがあります。 クラスターの各プライベート エンドポイントには、関連付けられた仮想ネットワークが必要です。

サブネット。 サブネットは、仮想ネットワークを 1 つ以上のサブネットワークに分割します。 各サブネットワークでアドレス空間の一部が取得され、アドレス割り当ての効率が向上します。 ネットワーク セキュリティ グループを使用して、サブネット内のリソースを保護できます。 詳細については、「ネットワーク セキュリティ グループ」を参照してください。

クラスターのプライベート エンドポイントにサブネットを選択する場合、現在および将来のニーズを考慮し、そのサブネットで使用できる十分なプライベート IP アドレスが確保できることを確認してください。

プライベート エンドポイント プライベート エンドポイントは、仮想ネットワークのプライベート IP アドレスを使用するネットワーク インターフェイスです。 このネットワーク インターフェイスにより、Azure Private Link を利用するサービスにプライベートに、かつ安全に接続できます。 プライベート エンドポイントは、サービスを仮想ネットワークに取り込みます。

Azure Cosmos DB for PostgreSQL のプライベート アクセスを有効にすると、クラスターのコーディネーター ノードのプライベート エンドポイントが作成されます。 このエンドポイントにより、選択した仮想ネットワーク内のホストがコーディネーターにアクセスできるようになります。 必要に応じて、ワーカー ノードのプライベート エンドポイントを作成することもできます。

プライベート DNS ゾーン Azure プライベート DNS ゾーンは、リンクされた仮想ネットワーク内、およびピアリングされた仮想ネットワーク内のホスト名を解決します。 ノードのドメイン レコードは、クラスター用に選択されたプライベート DNS ゾーンに作成されます。 ノードの PostgreSQL 接続文字列には完全修飾ドメイン名 (FQDN) を使用してください。

クラスターのプライベート エンドポイントを使用すると、仮想ネットワーク (VNet) 上のホストは Azure Private Link を介してデータに安全にアクセスできるようになります。

クラスターのプライベート エンドポイントでは、仮想ネットワークのアドレス空間から IP アドレスを使用します。 仮想ネットワークとノード上のホスト間のトラフィックは、Microsoft バックボーン ネットワーク上のプライベート リンクを経由します。これによって、パブリック インターネットに公開されないようにします。

仮想ネットワーク内のアプリケーションは、プライベート エンドポイント経由でノードにシームレスに接続できます。その際、使用される接続文字列と承認メカニズムは、それを経由しない場合と同じものになります。

クラスターの作成中にプライベート アクセスを選択できます。また、パブリック アクセスを任意の時点でプライベート アクセスに切り替えることができます。

プライベート DNS ゾーンを使用する

Azure Cosmos DB for PostgreSQL によって以前に作成されたプライベート DNS ゾーンのいずれかを選択しない限り、プライベート エンドポイントごとに新しいプライベート DNS ゾーンが自動的にプロビジョニングされます。 詳細については、プライベート DNS ゾーンの概要に関するページを参照してください。

Azure Cosmos DB for PostgreSQL サービスは、プライベート エンドポイントを持つ各ノードに対して、選択したプライベート DNS ゾーンに c-mygroup01.12345678901234.privatelink.postgres.cosmos.azure.com などの DNS レコードを作成します。 プライベート エンドポイント経由で Azure VM からノードに接続すると、Azure DNS はノードの FQDN をプライベート IP アドレスに解決します。

プライベート DNS ゾーンの設定と、仮想ネットワーク ピアリングはそれぞれ独立しています。 同じリージョンまたは異なるリージョンの別の仮想ネットワークでプロビジョニングされたクライアントからクラスター内のノードに接続する場合は、プライベート DNS ゾーンをその仮想ネットワークにリンクさせる必要があります。 詳細については、「仮想ネットワークのリンク」を参照してください。

Note

また、サービスは、すべてのノードに対して c-mygroup01.12345678901234.postgres.cosmos.azure.com などのパブリック CNAME レコードを常に作成します。 ただし、パブリック インターネット上の選択されたコンピューターは、データベース管理者がクラスターへのパブリック アクセスを有効にした場合にのみ、パブリック ホスト名に接続できます。

カスタム DNS サーバーを使用する場合は、DNS フォワーダーを使用してノードの FQDN を解決する必要があります。 フォワーダーの IP アドレスは、168.63.129.16 である必要があります。 カスタム DNS サーバーは、仮想ネットワーク内にあるか、仮想ネットワークの DNS サーバー設定を使用して到達可能である必要があります。 詳細については、「独自の DNS サーバーを使用する名前解決」を参照してください。

Recommendations

クラスターのプライベートアクセスを有効にするときは、次のことを考慮してください。

  • サブネットのサイズ: クラスターのサブネットのサイズを選択するときは、コーディネーターの IP アドレスやそのクラスター内のすべてのノードなどの現在のニーズ、および将来のニーズ (クラスターの成長など) を考慮してください。 現在および将来のニーズに対応するために十分なプライベート IP アドレスがあることを確認します。 Azure では、各サブネットで 5 つの IP アドレスが予約されています。 詳細については、こちらの FAQ を参照してください。
  • プライベート DNS ゾーン: プライベート IP アドレスを持つ DNS レコードは、Azure Cosmos DB for PostgreSQL サービスによって管理されます。 クラスターに使用されているプライベート DNS ゾーンを削除しないようにしてください。

制限と制限事項

Azure Cosmos DB for PostgreSQL 制限と制限事項ページをご覧ください。

次のステップ