-
Notifications
You must be signed in to change notification settings - Fork 0
MS_AppServiceClosedNetwork
- 戻る
AKS(AKSをセキュアに利用するためのテクニカルリファレンス)は、
VNET にインジェクションするのがデフォルトだが、
Azure App Service はインジェクションが高価なので、
Azure Private Link / Endpoint で、となると複雑化しそう。
補足(App Service の閉域化が難しい理由): App Service は
マルチテナントの共有基盤であるため、
AKS のように VNET の中へ丸ごと入れる(インジェクション)ことができない。
「インジェクションが高価」とあるのは、
それを可能にする App Service Environment (ASE) が
専有基盤であり高額である、という指摘である。このため、App Service の閉域化は入口と出口を別々に塞ぐという
非対称な構成になる。ここが本ページの主題である。
方向 何を使うか 意味 入口(外 → App Service) Private Endpoint App Service に VNET 内の私設 IP を生やす 出口(App Service → 他) リージョン VNET 統合 App Service の送信を VNET 側に流す この 2 つは別機能であり、両方やらないと閉域にならない
というのが最大の落とし穴。
-
以下のように構成する際、
クライアント →(Azure Application Gateway)→ Web(Azure App Service)→(Azure Firewall)→ DB(Azure SQL Database)
-
以下、を使用して、
- リージョン VNET 統合
- Azure Private Link / Endpoint
-
VNET に、以下を組み込む。
-
DMZ 的な構成にする際、
-
リージョナル VNET 統合した VNET に
Azure Application Gateway を配置し、
Azure Private Link / Endpoint で、
Azure App Service のエンドポイントを引き込む。
-
以下のように構成する際、
Web → VNET → DB
└→ Web -
リージョナル VNET 統合した VNET に
Azure Firewall を配置し、
Azure Private Link / Endpoint で、
Azure SQL Database のエンドポイントを引き込む。
補足(構成の全体像): 上記を図にすると次のようになる。
クライアント │ HTTPS ▼ ┌───────────────── VNET ─────────────────┐ │ [ Application Gateway (WAF) ] │ ← 入口。公開はここだけ │ │ │ │ ▼ Private Endpoint │ │ ┌──────────────┐ │ │ │ App Service │(マルチテナント基盤) │ │ └──────┬───────┘ │ │ │ リージョン VNET 統合 │ ← 出口。送信が VNET に出る │ ▼ │ │ [ Azure Firewall ] │ │ │ │ │ ▼ Private Endpoint │ │ [ Azure SQL Database ] │ └────────────────────────────────────────┘実装上の要点は次のとおり。
WEBSITE_VNET_ROUTE_ALL(現在は「送信トラフィックのルーティング」設定)を有効にする
既定では、VNET 統合してもプライベート アドレス宛だけが VNET に流れる。
すべての送信を VNET(=Firewall)経由にするには明示的な設定が要る。- プライベート DNS ゾーンの構成が必須
privatelink.azurewebsites.net、privatelink.database.windows.netを
VNET にリンクしないと、名前解決が公衆 IP に向いて閉域にならない。
App Service 側はWEBSITE_DNS_SERVERの指定が必要になる場合がある。- App Service の「パブリック ネットワーク アクセス」を無効化する
Private Endpoint を作っても、公衆エンドポイントは自動では閉じない。- VNET 統合用サブネットは App Service 専用
Microsoft.Web/serverFarmsに委任され、他のリソースと共有できない。
スケールアウト分の IP を見込んだサイズにすること。
- Azure App Service の VNet 統合 | SIOS Tech. Lab
https://tech-lab.sios.jp/archives/22563
- App Service の仮想ネットワーク統合
https://learn.microsoft.com/ja-jp/azure/app-service/overview-vnet-integration - Azure App Service のプライベート エンドポイントを使用する
https://learn.microsoft.com/ja-jp/azure/app-service/networking/private-endpoint
- YouTube
https://www.youtube.com/watch?v=DBlPPic3pJ0 - video
https://nakama.blob.core.windows.net/mskk/2020_06_16_AppService_TechnicalReference_Part1.zip - ppt
https://nakama.blob.core.windows.net/mskk/2020_06_16_AppService_TechnicalReference_v0.06.zip
- YouTube
https://www.youtube.com/watch?v=JGNMw91ApX0 - video
https://nakama.blob.core.windows.net/mskk/2020_06_16_AppService_TechnicalReference_Part2.zip
- YouTube
https://www.youtube.com/watch?v=hZz93refe1k - video
https://nakama.blob.core.windows.net/mskk/2020_06_16_AppService_TechnicalReference_Part3.zip
※ Azure 仮想ネットワーク基礎中の
「閉域環境における PaaS サービスの利用」にも同様のトピックが含まれる。
Tags: 移行, クラウド, コンテナ, Azure, AKS, IaC, セキュリティ, 通信技術, 認証基盤
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。