負荷分散とセキュリティを両立
「Azure Application Gateway」

前回、ネットワークセキュリティソリューション「Azure Firewall」と、ネットワークセキュリティを見直す際の留意点について解説した。今回は、セキュリティの文脈を踏まえて、企業のサーバーへの負荷分散を行いつつ通信の安全性もカバーするロードバランサーソリューション「Azure Application Gateway」を提案する。

一貫性のあるアプリケーションに対するオペレーション

日本マイクロソフト
パートナー事業本部 第一アーキテクト本部
クラウド ソリューション アーキテクト
久保智成 氏

 旧来からロードバランサーは、企業内のサーバーの負荷を複数のサーバーに分散させることでピークロードでもシステムビジーを回避したり、サーバー単体がダウンしても、稼働しているほかのサーバーで継続処理を行ったりするような用途で活用されている。あるいは、バックエンドへのトラフィックを切り替えることでアプリケーション更新などにも利用される。マイクロソフトでも、ロードバランサーの役割を担うツールをコンポーネントとして用途に合わせて複数サービスを提供している。例えば、マルチリージョンで活用するWebトラフィックに対しては「Azure Front Door」、HTTP、HTTPS以外のプロトコルも含む場合は「Azure Traffic Manager」や「Azure Load Balancer」などがあり、カバーする範囲や用途はソリューションごとに異なる。

 その中でも、シングルリージョン内、あるいはオンプレミスとクラウドを跨いだハイブリッドネットワークのアプリケーションレイヤー(OSI参照モデルで定義された階層の第7層)でWebトラフィックを処理し、セキュリティ機能なども備えているのが「Azure Application Gateway」だ。以上を踏まえ、日本マイクロソフト クラウド ソリューション アーキテクトの久保智成氏はこう話す。「複数の負荷分散ソリューションがある中でも、WebサーバーとWebクライアントの間でデータの送受信を行うHTTPおよびHTTPSの処理に特化したのがAzure Application Gatewayです」

 それでは、Azure Application Gatewayと他社製品と比較した際の優位性はどこにあるのか。久保氏はその違いをこう続ける。「通常、負荷分散ソリューションと、Webアプリケーションの脆弱性を悪用した攻撃からWebサイトを保護する『Web Application Firewall』(WAF)ソリューションは別々で管理します。しかし、トラフィックのさまざまな制御を行い、WAFも使えるAzure Application Gatewayでは負荷分散とセキュリティなどを統合的に実施でき、一貫性のあるシステム運用につなげられます」

 なお今回はセキュリティにフォーカスしている記事となるが、Azure Application Gatewayはアプリケーションのアップデート時の新旧の本番環境を切り替えるシステム更新手法「ブルーグリーンデプロイメント」のための機能はもちろん、URLパスの操作、複数サイトへのルーティングなどアプリケーションのライフサイクル全般に対して一貫性を持たせるための機能がそろっている点でも導入を推奨したい。

負荷分散やコードの前処理を統合

 Azure Application Gatewayは、アプリケーションレイヤーの負荷分散によってアプリケーション設計観点での業務改善にも役立つ。コンピュートリソース内のアプリケーションコードに対し、URLベースの負荷分散、ヘッダーの書き換え、HTTPSのアプリケーションのコードの前処理などが可能だ。活用例には、HTTPでアプリケーションにアクセスし、アプリ側がリダイレクト(プログラムの処理するデータの入力元や出力先などを変更すること)のレスポンスを返してHTTPSでクライアントに再アクセスするよう要求するケースがある。こうした要求への対応をAzure Application Gatewayで実施できる。これは分かりやすい例に過ぎず、実際のシステムでは応用的なリダイレクトやルーティングを行う。「アプリケーションレイヤーで処理する作業は、Azure Application Gatewayの環境設定としてアプリケーションで必要な証明書の管理・更新なども含めてアプリケーションコードと一元管理します。『Azure Kubernetes Service』(AKS)と同様にアプリケーション開発者はAzure Application Gatewayをアプリケーションの一部と考えて設計することで非常にクラウドネイティブに運用できます」(久保氏)

 セキュリティの観点では、WAFのデフォルトのルールセットとカスタムルールを多く設定可能だ。「不用意にAPIを晒しておくと、API悪用やサイバー攻撃の目標、あるいはDDoSなど悪意のあるリクエストを投げられるケースがあります。Azure Application Gatewayでは、WAFによりアプリケーションレイヤーの保護ができることはもちろんのほか、既知の攻撃パターンである特徴的なパラメータのセットされたリクエストにはWAFを利用するまでもなく無効なルーティング先に渡すことで簡易的な対処も可能です」(久保氏)

 また、開発環境を保護する機能も持っている。例えば、Kubernetesクラスターを容易に管理できるマネージドサービスであるAKSのKubernetesのクラスターの中のロードバランサーをAzure Application Gatewayに置き換えてWAFの機能を活用可能だ。これらを活用することで、開発環境の保護の強化もできるだろう。

プレビュー中の機能も継続的に刷新

 Azure Application Gatewayには、プレビュー中の機能として「プライベートリンクサポート」がある。本機能は、プライベートアドレス空間でテナントを跨いでアプリケーションを利用できる機能だ。例えば、SaaSアプリケーションを公開しているテナント2のバリューをテナント1にも共有したいとき、プライベートリンクによってテナント2はアクセス先をテナント1のプライベートアドレスとしてエンドポイントを伸ばせるのだ。

 これを踏まえ、今後の展望を久保氏はこう話す。「プライベートリンクサポートはGA版(正式版)のリリースを進めており、ネットワーク設計時のプライベート空間で閉じたアプリケーションとの連携強化を図ります。また、前回Azure Firewall Managerの機能強化の説明で、セキュリティ管理者がWAFポリシーをAzure Firewallと一括管理できるという話をしました。そのWAFポリシーにはAzure Front Doorのほか、Azure Application GatewayのWAFポリシーも含まれています。つまり、ネットワーク全体を一括管理できる機能がAzure Application Gatewayに統合されているので、アプリケーション管理者は一括管理でき、アプリケーション設計者もアプリケーショントラフィックを把握できるため各所で使い所のあるソリューションと言えます。マイクロソフトとしては、Azure Firewallと同様に企業のセキュリティポリシーに見合ったパーツとして活用することを推奨しています。WAFさえあれば全てが安全ではない点に留意が必要です」