はじめに
App Serviceの通信をVNET内にとどめいたいという要望はよくあります。
App Service Environmentを利用すれば良いのではと思うかもしれませんが、コスパが悪いし運用も面倒です。
そこでプライベートエンドポイントとリージョンVNET統合を利用して通信をVNETにとどめたいを思います。
注意事項としては完全隔離ではないという点です。ここら辺はセキュリティ要件と検討する必要があります。
構成
今回はApp Service(Web App)が1つとVNETか1つの単純な構成を想定します。
サブネットはプライベートエンドポイント用とリージョンVNET統合用の2つを用意する必要があります。同じサブネットに設定することはできません。大きなネットワークになる場合は、IP設計が重要になると思います。
リージョンVNET統合の設定
App Serviceを開き、ネットワークを開きます。
その中からVNET統合を開きます。
VNETの追加します。
接続するVNETとサブネットを選択し接続します。
選択したサブネットが追加したら完了です。
通常は、「ルートすべて」が有効になっています。有効にすることでVNET内を通過します。
はじめに App ServiceでリージョンVNet統合する場合のポータルのUIが変わり、それに伴い「ルートすべて」という項目が増えデフォルトで有効になる仕様になりました。 これまでは「WEBSITE
level69.net
これについては下記で紹介しています。
リージョンVNet統合でApp Serviceのルートはどのように変わる? - 技術的な何か。
この状態では、アクセス制限を行っていないため外部からのアクセスが可能です。
プライベートエンドポイントの設定
プライベートエンドポイントを作成します。
作成時に「プライベートDNSゾーンと統合する」は、はいに設定することをお勧めします。
内部のIPアドレスを引く場合に便利です。
プライベートエンドポイントを設定するとアクセス制限の設定が行えなくなります。
つまりこの時点で外部からの通信がシャットダウンされます。
受信アドレスが設定されます。これを利用してプライベートDNSに登録することも出来ます。
実際にアクセスしてみると
アクセスをブロックしたというメッセージが表示されます。
完全隔離ではないといった点はここになります。
あと、高度なツール(kudu)もポータル(外部)からアクセスできなくなることに注意が必要です。利用する場合は踏み台などVNET内からアクセスする必要があります。
試してはないですがDDoSが効くんではなかろうかと?
まとめ
今回はApp Serviceの通信をVNET内にとどめる方法を紹介しました。リージョンVNET統合とプライベートエンドポイントを利用することで実現します。ネットワークの設定だけなのでコスパは良いです。内部向けのアプリケーションなどの場合は外部からの通信を内部だけにしたいなどあると思いますので、セキュリティ要件と検討しながら利用するとよいと思います。