Amazon Web Services ブログ

AWS WAF を活用した VMware Cloud on AWS 上の Web サーバーへの更なるセキュリティ提供

AWS で VMware Cloud on AWS の Sr. Specialist Solutions Architect を務める Craig Herring による記事です。

より多くの企業が自社のアプリケーションにオンラインやリモートでの接続を提供するようになり、web 攻撃は継続的に増加傾向にあります。これらのアプリケーションや会社の資産を、ランサムウェア、ボット、DDoS、SQL インジェクション、スクリプティングによる攻撃などのリスクから確実に保護することは非常に重要なことです。

長年にわたり、IT 業界ではさまざまな種類のランサムウェアとそれらの攻撃からの回復手段が作り出されてきました。これらの攻撃を事前に軽減することで、データやビジネスへの影響から回復するための高価なプロセスを踏む必要がなくなります。高度なセキュリティ管理を導入することで、これらの攻撃により引き起こされるデータ損失やダウンタイムを軽減することができます。

VMware Cloud on AWS への移行を検討している、あるいは既に移行している場合、Amazon Web Services (AWS) のグローバルインフラ上の vSphere 環境に存在する web サーバーを保護するという要件が出てくる可能性があります。

いくつかのネイティブ AWS サービスを活用することで、これらのワークロードに特定のセキュリティを提供することができます。アーキテクチャによっては、従来のオンプレミスの web アプリケーションファイアウォールやロードバランサーが、VMware Cloud on AWS では同じように機能しない場合があります。これを解決するために、一般的な web エクスプロイトやボットからアプリや API を保護するのに役立つ web アプリケーションファイアウォールである AWS WAF が活用できます。

VMware Cloud on AWS は、AWS と VMware が共同開発したフルマネージドサービスです。多くの企業のオンプレミスの vSphere 基盤と同じ見た目と操作感の VMware Software-Defined Data Center (SDDC) インフラを提供します。また、VMware vSAN と VMware NSX によるソフトウェア定義ストレージとネットワークの技術も含まれています。

AWS WAF は、指定された HTTP/HTTPS トラフィックをスキャンし、さまざまな攻撃から保護します。WAF ACL ルールセットは、許可されるトラフィックまたは悪意のあるトラフィックを定義し、AWS Firewall Manager を利用することで全てのデプロイ済みの AWS WAF を数分以内に更新することができます。

あらかじめ設定されたルールセットは、AWS が WAF ACL コンソールを通じて提供するほか、サードパーティのルールセットを AWS Marketplace から購入することもできます。その他のセキュリティコントロールも AWS WAF で使用することができ、また Amazon CloudWatch ではメトリクスやログ、アラートを監視することができます。

設計における考慮点

これらのサービスを構築し始めると、各インフラストラクチャのコンポーネントをどの AWS リージョンやアベイラビリティーゾーン (AZ) にデプロイするかなど、いくつかの設計上の決定を行う必要があります。これには、VMware Cloud on AWS SDDC やネイティブの Amazon VPC (Virtual Private Cloud)、その他の利用する可能性のあるネイティブ AWS サービスが含まれます。

これらのロケーションを決定する際には、サービスがどのような場所からアクセスされるかを考慮します。例えばユーザーが米国の東海岸にいる場合は、us-east-1 または us-east-2 リージョンにサービスを作成することになるでしょう。同様に、ユーザーが西海岸もしくはヨーロッパにいる場合には、それぞれ最も近いリージョンにサービスを作成するでしょう。もしユーザーが複数の地域に点在している場合は、マルチリージョンデザインを検討することもあります。

AWS CloudFront はグローバルな配信機能を持ち、225 以上の PoP (Point of Presence) を通じて、よりエンドユーザーに近い場所からコンテンツを配信することができるコンテンツ配信サービスです。この例では、アプリケーションロードバランサー (ALB) を選択することにします。その他の設計上の考慮点としては、web アプリケーションが VMware Cloud on AWS でどのように動作するか、web サーバーに接続するためにインターネットからどのようにトラフィックが流れるか、などがあります。

この構成では以下のようにデザインを決定します:

  • リージョン: us-east-2, us-west-2
  • アベイラビリティゾーンの数: 4
  • VPC の数: 2
  • ネットワークサブネットの数: 8 (ネイティブ AWS および VMware Cloud on AWS SDDC のネットワークセグメント)
  • VMware Cloud on AWS: 4 SDDC (1 AZ ごとに 1 SDDC)
  • データベース、アプリケーション、web サーバーは各 SDDC 内に存在。データベースは VMware Transit Connect 経由でレプリケーションされる。

null
図 1: アプリケーションロードバランサー + WAF と VMware Cloud on AWS との統合

実装概要

上述のように基本的な設計が決まったら、以下のプロセスに沿って実装していきます。

VPC のデプロイ

各リージョンに、少なくとも 2 つのアベイラビリティゾーンにまたがる VPC を作成します。これにより、1 つの AZ に障害が発生した場合や、リージョン全体に問題が発生した場合に、冗長性と回復力を確保することができます。手動で VPC を作成するオプションがあり、サブネット、ルートテーブル、ネットワーク接続を作成する必要があります。もう 1 つのオプションは、いくつか別の設定を定義した後に、これらのオブジェクトを作成するものです。

SDDC のデプロイ

VPC をデプロイした各 AZ に、VMware Cloud on AWS SDDC をデプロイします。各 SDDC は、Connected VPC 経由、もしくは VMware Transit Connect または AWS Transit Gateway を利用して相互に接続する必要があります。ユースケースによっては、他のアーキテクチャを考慮する必要があるかもしれません。最もシンプルな構成は、以下の図 2 に示すような Connected VPC を利用したアーキテクチャです。

次に、SDDC をデプロイし、作成のためのセットアップを続行します。このプロセスは、各 SDDC について最大で 2 時間かかりますが、並行してデプロイすることが可能です。SDDC のデプロイは、VMware Cloud Console 内で実行されます。

SDDC が作成されている間に残りの環境のセットアップを続けます。Amazon Elastic Compute Cloud (Amazon EC2) ターゲットグループを作成し、SDDC のネットワークセグメント上の web サーバーの設計方針に基づいて、ターゲットグループのタイプは IP addresses を選択します。

null
図 2: ターゲットグループの作成

ターゲット名を指定し、関連付ける VPC を選択し、適切なヘルスチェックパスを入力します。負荷分散先の web サーバーが 4 台以上ある場合、複数のターゲットグループを作成し、アプリケーションロードバランサー (ALB) に関連付けることができます。

null
図 3: ヘルスチェックパスの設定

次に、”Step 1″ で “Other private IP address” を選択します。そして SDDC セグメント内にある特定のターゲットを追加します。ターゲットは web サーバーの IP アドレスです。

Include as pending below” を選択すると、最後のダイアログボックスが開き、ターゲットの概要を確認することができます。

null
図 4: ターゲット IP の作成

次に、アプリケーションロードバランサーを作成します。”Scheme” で “Internet-facing” が選択されていることを確認します。接続される VPC を選択し、このロードバランサーをデプロイするサブネットを選択します。

web トラフィック通信が許可されたセキュリティグループを選択します。最後に、前段で作成したリスナーのターゲットグループを選択します。

null
図 5: アプリケーションロードバランサー の作成

ALB にセキュリティコントロールをアタッチするには、WAF の Web ACL を作成します。AWS WAF と AWS Shield のサービスを検索するか、ALB の Integrated Services タブ内のリンクを選択することでこれらのサービスを見つけることができます。

null
図 6: WAF の Web ACL 設定

WAF ACL を作成する際、名前、Amazon CloudWatch のメトリクス名、そしてこの例では Resource type – Regional resource を設定します。この ACL は 3 つのリソースタイプのうちの 1 つにアタッチすることができ、この例では前のステップで作成した ALB を選択しています。

次の画面では、web サーバーを保護するために使用する特定のルールを定義することができます。”Add rules” から、独自のルールや AWS またはサードパーティから提供されるマネージドルールを追加します。

null
図 7: WAF ルールの定義

次のステップでは、ルールの優先順位と Amazon CloudWatch のメトリクスを選択できます。最後のステップでは、特定のルールのメトリクスとサンプリングのオプションを設定することができます。

最後に導入するコンポーネントは Amazon CloudFront で、AZ やリージョンさえもまたいでコンテンツを配信することが可能であり、多くの保護機能を追加することでアプリケーションのセキュリティを強化します。このサービスは、ユーザーへのコンテンツ配信において、我々が今回利用する 2 つのリージョンを結びつけます。

SDDC のデプロイが完了したら SDDC グループを作成し、データベースのレプリケーションやその他のアプリケーションの通信のために Transit Connect 経由で両 SDDC 間でトラフィックを流せるようにします。後のステップで、適切な NSX-T のセキュリティポリシーも追加します。

これが完了したら、各 SDDC 内に web、アプリケーションおよびデータベースサーバーをデプロイするネットワークセグメントを作成します。SDDC の作成中にデフォルトのネットワークセグメントが作成されています。これらは環境内の別のネットワークサブネットと重複する可能性があるため削除することができます。

この例では以下のようなネットワークを作成しています。

  • Webserver-lab-01
    • サブネット: 10.10.10.1/24
    • DHCP: Gateway DHCP Server
    • DHCP 範囲: 10.10.10.10 – 10.10.10.250
  • Webserver-lab-02
    • サブネット: 10.11.10.1/24
    • DHCP: Gateway DHCP Server
    • DHCP 範囲: 10.11.10.10 – 10.11.10.250

次に、セキュリティポリシーに関連付ける web サーバー用の仮想マシン (VM) メンバーグループを作成します。ここでは、compute group を作成し、VM 名でメンバーを定義しています。この例では、”VM group begins with” に “lab-web” と入力したものが使用されています。VM はこの名前で手動でデプロイできますが、vRealize Automation Cloud のようなサービスでは自動的に VM 名を設定することができます。

次に、両環境間で経路が正しく伝搬されていることを確認します。これらは、Transit Connect の “Networking & Security” の項目で見ることができます。Transit Connect からのその他のルートについては、Routing メニュー内の SDDC グループの中で確認できます。

ドロップダウンメニューからメンバーと外部テーブルを選択すると、VPC にアタッチされたルートテーブルとして VPC のルーティングテーブルを確認することができます。NSX-T のネットワークセグメントは、アタッチされた VPC に伝搬される必要があります。ALB から SDDC ネットワークセグメントへのトラフィックフローを許可する ACL が追加されていることを確認してください。

SDDC ネットワークセグメントから VPC 内の ALB、そして最終的にはインターネットへのトラフィックフローを許可する必要があります。これを実現するためには、以下のように SDDC Compute GatewayDistributed Firewall の両方にポリシーを追加します。

null
図 8: Gateway Firewall ルールの例

上記の図と同様に、Security の Distributed Firewall セクション内に追加のルールが必要です。これらは、web サーバーが AWS アプリケーションロードバランサーと通信することを許可します。

null
図 9: Distributed Firewall ルールの例

最後に、VM をデプロイし、ALB に関連付けられたターゲットグループに IP アドレスを追加します。

まとめ

本稿では、VMware Cloud on AWS 内に存在する web アプリケーションに追加のセキュリティを提供するために、アプリケーションロードバランサーに関連付けられた AWS WAF ポリシーを統合する方法について取り上げました。オプションとして、Amazon EC2 ベースの web アプリケーションインスタンスを組み込んで、SDDC と EC2 の両方でアプリケーションのバランスを取ることもできます。

翻訳は ENT-C SA 太田が担当しました。原文はこちらです。