📝

Azure ApplicationGatewayのPrivateLinkを使ってみる

に公開

イオン⁠⁠⁠⁠⁠⁠⁠スマートテクノロジーの SREチーム の 岩崎 です。

この記事は、AEON Advent Calendar 2025の20日目です🎉

ApplicationGatewayのPrivateLinkを使ってみました。

本記事はMicrosoft Learn(公式ドキュメント)と相違が生じる可能性がありますので、必要に応じて公式情報の Microsoft Learn を参照してください。

ApplicationGatewayのPrivateLinkとは

Microsoft Learn によると、Application Gateway Private Link は次のように説明されています。

Private Link では、プライベート エンドポイントを経由して、プライベート接続を Application Gateway へと拡張できます。対応するシナリオは次のとおりです。

Application Gateway と同じまたは異なるリージョン内の VNet
Application Gateway と同じまたは異なるサブスクリプション内の VNet
Application Gateway と同じまたは異なるサブスクリプション内で、同じまたは異なる Microsoft Entra テナント内の VNet

今回は別テナントのVnetとプライベートエンドポイントを経由して接続します。


https://learn.microsoft.com/ja-jp/azure/application-gateway/private-link

今回の構成を構築するにあたり私はTenant2側となります、Tenant1側の具体的な操作は省略させていただきます。

構築の流れ

前提

  • ApplicationGatewayは既に存在し、ルール,リスナー,バックエンド設定などは実装済み
  • バックエンドは実装済み(図のVirtual Network BのVM)

流れ

  1. ApplicationGatewayにPrivateLinkを構築
  2. Tenant1でPrivate Endpointを構築
     構築時に必要な情報
     - ApplicationGateway の リソースID
     - ApplicationGatewayのPrivateLinkのフロンドエンドIP構成名
  3. ApplicationGatewayでTenant1のPrivate Endpointを承認

手順

ApplicationGatewayにPrivateLinkを構築

  1. PrivateLinkを構成するサブネットのプライベートエンドポイントのネットワークポリシーを無効にします。

  2. ApplicatonGatewayのプライベートリンクをクリックし、+追加 をクリック

  3. 以下表の値にして、プライベートIPアドレスの設定で追加をクリックし、プライベートIPアドレスを追加します。最大8個ですが、必要なトラフィック分事前に追加しておくこともできますが後から追加可能です。

項目 値
名前 適当な名前
プライベートリンク仮想ネットワーク 選択された状態で変更不可
プライベートリンクのサブネット Private Link の専用サブネットを選択
フロントエンドIP構成 フロントエンドエンドIP構成を指定

  1. 画像にありませんが画面下部の追加をクリックして、PrivateLinkの構築完了です

Tenant1でPrivate Endpointを構築

  1. 実際に構築しておりませんが、プライベートエンドポイントの構築時のリソースタブで次の値を指定します
項目 値
接続方法 リソース ID またはエイリアスを使って Azure リソースに接続します。選択
リソース ID またはエイリアス Tenant2のApplicationGatewayのリソースID
対象サブリソース Tenant2のApplicationGatewayのPrivateLinkのフロンドエンドIP構成名

  1. その他項目はドキュメントを参照下さい

ApplicationGatewayでTenant1のPrivate Endpointを承認

  1. プライベートエンドポイント接続タブに「保留中」があります、こちらをチェックして「承認」

  2. これで完了です

クライアントからバックエンドへのアクセス

Tenant1のクライアントはPrivate Endpoint(10.10.1.4)を宛先にして通信することでPrivate linkされているApplicationGatewayを経由して、バックエンドに通信する事が出来ます。

実際にはApplicationGatewayのリスナーに登録されているホスト名(FQDN)をTenant1で名前解決(10.10.1.4)できるようにDNS登録します。クライアントはそのホスト名を宛先にして通信する構成になると思います。

拡張性

別のテナントから接続したい場合、Tenant2のApplicationGatewayのプライベートリンクを指定し、別テナントで新たにPrivate Endpointを構成する事で接続することが可能となります。

考慮事項

  • ApplicationGatewayのサブネットとは別にPrivateLink用のサブネットを用意する必要があります。
  • Private Link構成を構築するにはApplicationGatewayサブネットとは別の専用サブネットが必要となります。
    Private Linkは最大8つのIPアドレスが構築できるようで、8 × 65,536の同時TCP接続をサポートしています。
    つまり、524,288以上の同時接続が必要な場合はこの構成が取れなくなります。

https://learn.microsoft.com/ja-jp/azure/application-gateway/private-link-configure?tabs=portal#subnet-considerations-for-private-link-configuration

まとめ

  • 構築する流れと連携する値がわかっていれば、比較的簡単にできると思います。(今回は一度失敗してしまいましたが)
  • PrivateLink用のサブネットの「プライベート エンドポイントのネットワーク ポリシー」 を「無効化」は忘れずに。
  • Tenant1とTenant2でIPが重複していても構成することができます。
  • Application Gateway AccessLogのclientIPにはTenant2のPrivateLink用のサブネットのNAT後のIPではなく、Tenant1のクライアントのIPアドレスが記載されているので、どこからのアクセスなのか調査する事が出来ます。 後日記載予定ですが、このclientIPに対してIP制御をすることが可能です。

イオングループで、一緒に働きませんか?

イオングループでは、エンジニアを積極採用中です。少しでもご興味をもった方は、キャリア登録やカジュアル面談登録などもしていただけると嬉しいです。
皆さまとお話できるのを楽しみにしています!

AEON TECH HUB

Discussion