📑

[Azure] プライベート接続(エンドポイント)について

2023/02/15に公開

プライベートリンクサービスとプライベートエンドポイントの違い

Azure Portalから検索すると、両サービスが出てくる。
この2つの違いとしては、個人的な整理は以下の通り。

  • プライベートリンクサービス
    オンプレExpress Routeを経由して、あるVnetから、別のVnetのAzureサービスにプライベート接続を行いたい場合のエンドポイントとなる。利用者側のVnetとサービス提供側のVnetと2つ存在することがミソになる気がする。
    また、現在はStandard LoadBalancerのみサポートされているため、利用シーンは限定的な印象がある。
    (2022/12/04)
    実機でもStandard LoadBalancerのサポートのみ確認できた。

  • プライベートエンドポイント
    Vnet内からプライベート接続でAzureサービスを利用したいときに使う。利用できるサービスは、プライベートリンクサービスよりも柔軟性が高い。(ストレージアカウントやDBなど、PaaS系サービス)

詳細は、公式のドキュメントを確認してほしい。
Azure Private Linkサービスに寄せられる質問
Azure Private Linkサービス都は

Azure Standard Load Balancer の背後で実行されている自分のサービスで Private Link アクセスを有効にすると、自分のサービスのコンシューマーがそのサービスに対して独自の VNet からプライベートにアクセスできるようになります。 顧客は、自分の仮想ネットワーク内にプライベート エンドポイントを作成し、それをこのサービスにマッピングすることができます。

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

プライベートエンドにもDNS解決が必要になる…とのことで、どういった意味なのだろうと気になったため、調べた。

PaaSにはプライベートIPが割り当てられるが、動的IPになる。そのため、IP指定は現実的ではない。そこで、プライベートエンドポイントの名前解決をできることが必要になる。そういう意味で、プライベートエンドポイントもDNS解決が必要になるとの意味らしい。
注意なのは、ここで名前解決するのは、プライベートエンドポイントの名前解決ということであり、実際のPaaSの名前解決を行っているわけではないことに注意。

じゃあどうやって、指定したPaaSまで到達しているのか?というのは明確な答えは分からなかったが、おそらく内部的にルーティングしているのだと思う。プライベートエンドポイントを作成する際に、アクセスするリソースを指定できるので、心配は不要だと思う。

一番わかりやすいのは、以下のサイトだった。
Azure Private Linkを構成するにあたって注意点は?

プライベートエンドポイントのNSG/UDR

プライベートエンドポイントネットワークポリシーという設定を有効にすることで、プライベートエンドポイントに対してもNSG/UDRを効かせることができる。

サービスエンドポイント

  • インターネットに出ないだけで、パブリックIPを利用する。
    漠然と記憶はしていたが、パブリックIPを利用したアクセスになることに注意。ただし、インターネット経由ではなく、Azureバックボーン経由になるのが、通常のアクセスとは異なる点である。
    経路としてのパブリックアクセスはOFFになるが、口としてのパブリックIPは残る感じになる。

  • 特定のAzure サービスへのアクセスに絞ることができない。
    プライベートリンクとは異なり、上記が制約として出てくるだろう。例えば、Storage Accoutのサービスエンドポイントが存在したとする。任意のストレージアカウントにアクセスが可能になるため、例えば自作したリソースに対してもアクセス可能になる。情報漏洩のリスクは存在する。

そのため、基本的にはプライベートエンドポイントの利用が推奨されている。

注意
Azure プラットフォームでホストされるサービスに対して、セキュリティで保護されたプライベートなアクセスを行うには、Azure Private Link の使用をお勧めします。

プライベートリンクサービス

自社所有のサービスと、顧客所有のサービスとをプライベートで通信するためのサービスだが、前提条件として何がクリアになっていれば利用できるのだろうか?
(同じサブスクリプション?リージョンは別でも大丈夫?)

プライベートエンドポイントとDNSの関係性

  • オンプレからプライベートDNSゾーンにアクセスするとき
    Azure が提供するDNSサーバにアクセスして名前解決を行うにはAzure内部からの通信のみしか受けていない。そのため、オンプレから名前解決を行うためには、Vnet内にDNSフォワーダ(VM)を作成し、オンプレ → DNSフォワーダ → Azure提供DNSサーバという経路でアクセスするしかない。以下は概要図

  • 168.63.129.16とは

DNS サーバーを明示的に指定していない環境における、既定の DNS リゾルバー

なるほどてっきり、DNSゾーンのことだと思っていたが、Azure既定のDNSリゾルバ**的な立ち位置になるのだろう。
https://jpaztech1.z11.web.core.windows.net/IPアドレス168.63.129.16について.html

パブリックDNSとプライベートDNSとDNSリゾルバーの関係

プライベートDNSゾーン:Azure Vnet内からの名前解決で使われる。
パブリックDNSゾーン:インタネート経由で名前解決で使われる。例えば、ドメインを公開してホストしておくことで、WEBサーバの名前解決などで用いられる。
DNSリゾルバー:DNSサーバへ問合せを行ってくれるソフトウェアのこと。

そう、DNSゾーンはあくまで、自身の担当分のレコードを保持しているだけで、積極的に情報をくれるわけではないのだ。そのため、リゾルバーのような主体的に問い合わせを行ってくれる存在が必要になる。

学習資材

https://learn.microsoft.com/ja-jp/training/modules/design-implement-private-access-to-azure-services/

Discussion