この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
こんにちはDXソリューション統括部の村松です。
App ServcieやAzure SQL Database等のPaaSを用いることでサーバいらずで手軽にWebアプリケーションの実行環境を構成できるかと思います。
しかし、実行させるWeb アプリケーションによってはその中で機密情報を扱っていることもあり、
多くのお客様(企業様)では「Web アプリケーション環境はなるべくセキュアにしたい」が本音ではないでしょうか?
今回はそういった“セキュアなWeb アプリケーション実行環境”の構成例を紹介していきたいと思います。
ここではWEBサーバ、DBサーバ、ストレージで構成されるWeb アプリケーション実行環境を例にします。
図1 セキュアなWeb アプリケーションの実行環境の構成例
上記の構成例においてポイントは以下の4つになります。
1.関連する通信経路を管理
各PaaSとvNetを統合して関連する通信経路を管理します。
具体的にはService EndpointとUser Defined Routeを構成して通信をルーティングします。
2.データ(機密情報)へのアクセスを制限
各PaaSにて標準のファイアウォール機能を有効にして、許可されていないネットワークからのデータベースやストレージへのアクセスを制限します。
3.インターネットからのインバウンド通信の保護
App Serviceの前にApplication GatewayとWeb Application Firewallを配置して
インターネットからApp Serviceへのインバウンド通信をL7レベル(アプリケーション層)で保護します
これによりSQLインジェクションやクロスサイトスクリプティングといったWebアプリケーションに対する攻撃を検知もしくはブロックします。
4.インターネットへのアウトバウンドの通信の保護
インターネットへのゲートウェイの前にAzure Firewallを配置し、
App Servcieからインターネットへのアウトバウンド通信を、L7レベル(アプリケーション層)で保護します。
これにより公開されているC&Cサーバの宛先や許可していないAPIへの通信を検知もしくはブロックします。
いかがでしょうか?上記は主にネットワーク周辺のセキュリティを考慮した構成ですが、
Web アプリケーションを設計する際は、こういった目に見えない部分(非機能の部分)も意識することで
より安全なWeb アプリケーションを構成できると思います。
ちなみに上記の構成は実際に私が携わったプロジェクトにて設計をしたものですが、
元ネタとなっているのは、以下の記事の内容となっています。
Zero to Hero with App Service, Part 6: Securing your web app
https://azure.github.io/AppService/2020/08/14/zero_to_hero_pt6.html
以上 今回はここまでになります。またの機会お会いしましょう!