ノート PC を VPN 経由で VNet に接続し、Cosmos DB アカウントの URL を開いても、要求は依然としてパブリック インターネット経由で出ていきます。トンネルは役割を果たしました。果たさなかったのは、プライベート エンドポイントの作成、プライベート DNS レコードの公開、パブリック アクセスの無効化であり、これらはアカウントに対する三つの別個の変更で、ネットワーク接続の性質ではありません。この例では、NoSQL 用の Azure Cosmos DB、VNet 内のプライベート エンドポイント、VPN でその VNet に接続したノート PC を使用し、アプリケーションのアドレスは変えません。

神話: VPN 上にいればデータベースがプライベートになる

VNet 上にいることは、パケットがその VNet 内のプライベート アドレスに到達できるというだけです。アカウント名がどこで解決されるかについては何も語らず、アカウントがまだパブリック トラフィックを受け入れるかどうかについても何も語りません。

プライベート エンドポイントは、独自のアドレス、独自の承認手順、独自の DNS 配線を持つ別個のリソースです。それが存在して承認されるまで、名前はパブリック エンドポイントに解決され、トンネルに関係なくトラフィックはそこへ向かいます。

実際に名前をプライベートに解決させるもの

SDK の通常のアカウント エンドポイント(https://ACCOUNT.documents.azure.com のようなもの)を維持します。プライベート DNS は、その名前を Private Link チェーン経由でエンドポイントのプライベート アドレスに解決する必要があります。数値 URL に置き換えて証明書チェックを無効にすると、DNS の問題をセキュリティの問題と引き換えることになるため、避けてください。

Example choiceValue
Cosmos APINoSQL
Private endpoint subresourceSql
Private DNS zoneprivatelink.documents.azure.com
SDK connection modeGateway

これらの値は NoSQL API に固有です。他の Cosmos API は同じ例で交換可能な項目ではなく、別の API からサブリソース名をコピーすると、決して解決されないエンドポイントができます。

承認された Azure ワークフローでエンドポイントを作成して承認し、そのプライベート DNS ゾーン グループ統合を使用します。ノート PC には そのゾーンに応答できるリゾルバー が直接または承認された転送経由で必要で、関連する各エンドポイント アドレスへの VPN クライアント ルートも必要です。

プライベート エンドポイントは、グローバルおよびリージョンのエントリを含め、複数のアドレスを持つことができます。アカウントのリージョンが変わったら hosts ファイルに一つのアドレスを固定するのではなく DNS 統合を維持し、無関係なパブリック リゾルバーからの応答はプライベート パスについて何も証明しないことを覚えておいてください。ハブ経由で DNS を転送する場合は、クライアントをデバッグする前にフォワーダーが応答することを確認してください。古いフォワーダーはパブリックの応答を返し、それは存在しないエンドポイントとまったく同じに見えます。

Gateway モードと Direct モードは交換できません

Gateway モードはサービス要求を TCP 443 の HTTPS で送信します。そのため 443 のみのファイアウォール ポリシーが機能し、この例はそれを意図的に選んでいます。

Private Link 経由の Direct モードには異なる接続要件があり、アカウントのドキュメントに記載されているより広い TCP ポート範囲が含まれます。Gateway モード用に書かれたポリシーを Direct モードのクライアントに黙って再利用すると、SDK は接続した後、最初のデータ操作でハングします。

一つのモードを選び、アカウントと一緒に記録し、ネットワーク ポリシーをそれに合わせます。トラブルシューティング中にモードを切り替えるチームは、通常どちらも満たさないファイアウォール ルール セットに行き着きます。

パブリック アクセスの無効化は別のスイッチです

アカウントをプライベート専用にする場合は、アカウントのサポートされている設定でパブリック ネットワーク アクセスを無効にし、結果を確認します。プライベート エンドポイントがありパブリック アクセスが有効なアカウントは依然としてインターネット上で応答するため、その存在を完全なアクセス判断と見なさないでください。

VPN の外側からも内側からも確認します。除外されるべきネットワークからの要求が、設定が有効になったことを証明するテストであり、ほとんどの変更ウィンドウが省略するテストです。

到達可能性は許可ではありません

VPN ノート PC からの許可された SDK 操作が受け入れテストで、通常のアカウント URL と想定された ID を使用します。VPN の到達可能性は Cosmos のデータ権限を与えません;データ プレーンは独自のロールまたはキーを確認します。

次に、別の ID と、もうアカウントに到達すべきでないネットワーク パスという拒否を実行します。どちらかが成功したら、文書化した境界は構築した境界ではありません。

終了時に、エンドポイントのプライベート アドレス、アカウント名に応答する DNS ゾーン、ポート要件を含む接続モード、パブリック アクセスが無効かどうかという四つの事実を書き留めます。この四つが次の人に構成を説明し、それぞれが独立して失敗します。

関連記事