AWS WAF のウェブ ACL に、AWS マネージドルールグループを追加する。
AWS マネージドルールグループ は、既知の攻撃パターンや悪意のある送信元からのリクエストを遮断するルールのセットで、すでに置いているレートベースルールと組み合わせればウェブ ACL の防御を広げられます。
しかし AWS WAF のルールを増やしても、攻撃で増えた利用料についてクレジットを申請する仕組みは加わらないため、申請できるようにするという条件を満たせません。
ある会社は、Amazon CloudFront と Application Load Balancer (ALB) でウェブサイトを公開し、AWS WAF のレートベースルールでリクエストをブロックしています。先月、分散型サービス拒否 (DDoS) 攻撃で利用料が急増しました。今後、同様の攻撃で増えた利用料について、AWS へクレジットを申請できるようにしておく必要があります。 ソリューションアーキテクトは何を推奨すべきですか。
今後の DDoS 攻撃で増えた利用料について、AWS へクレジットを申請できるようにしておく方法を選ぶ
AWS WAF のウェブ ACL に、AWS マネージドルールグループを追加する。
AWS マネージドルールグループ は、既知の攻撃パターンや悪意のある送信元からのリクエストを遮断するルールのセットで、すでに置いているレートベースルールと組み合わせればウェブ ACL の防御を広げられます。
しかし AWS WAF のルールを増やしても、攻撃で増えた利用料についてクレジットを申請する仕組みは加わらないため、申請できるようにするという条件を満たせません。
Amazon CloudWatch のアラームでリクエスト数の急増を検知し、Amazon SNS で担当者に通知する。
Amazon CloudWatch のアラームで CloudFront や AWS WAF のメトリクスを監視し、Amazon SNS で通知すれば、攻撃によるリクエスト数の急増にすぐ気付けます。
とはいえ監視と通知が伝えるのは急増が起きたことだけで、増えた利用料を補うサービスクレジットの申請は、この構成のどこからも行えません。
AWS Shield Advanced をサブスクライブし、CloudFront と ALB を保護対象にする。
AWS Shield Advanced をサブスクライブしてリソースを保護対象に追加すると、DDoS 攻撃で保護対象の利用量が増えたとき、その利用料についてサービスクレジットを申請できるようになります。
申請できるのは、攻撃が始まる前に保護対象へ追加してあったリソースです。攻撃中に追加したリソースは対象外で、先月の攻撃のように加入前に起きた分もさかのぼって申請できないため、次の攻撃に備えていま追加しておきます。CloudFront と ALB では、ウェブ ACL にブロックするレートベースルールを実装してあることも前提で、本問の構成はすでにこれを満たしています。
CloudFront のキャッシュ期間を延ばし、オリジンの ALB へ届くリクエストを減らす。
CloudFront のキャッシュ期間を延ばすと、エッジから返せる応答が増え、オリジンの ALB へ届くリクエストを減らせます。攻撃の最中もオリジンの負荷を抑えやすくなります。
しかしエッジで受けたリクエストとデータ転送の利用料は残り、増えた利用料についてクレジットを申請する仕組みもこの構成にはないため、条件を満たしません。
DDoS の設問は、まずどの層の攻撃かで道具が分かれます。ネットワーク層・トランスポート層は AWS Shield、アプリケーション層は AWS WAF のウェブ ACL が担当します。
Shield の Standard はすべての AWS アカウントで追加費用なく自動的に働きます。Advanced をサブスクライブすると、主に次の機能が加わります。
・請求の急増に対するコスト保護(サービスクレジット。攻撃前に保護対象へ追加し、CloudFront と ALB ではブロックするレートベースルールを置き、DDoS 攻撃中のコストを抑えるベストプラクティスに沿って構成しておくことが前提)
・アプリケーション層の自動の DDoS 緩和
・詳細な攻撃の可視化
・Shield Response Team による支援(Business Support または Enterprise Support への加入も必要)
「攻撃で増えた利用料」「クレジット」とあれば、Shield Advanced のコスト保護が決め手です。AWS WAF のルールや CloudWatch の監視、CloudFront のキャッシュは、いずれもコスト保護を持ちません。