2020年6月9日にAWS Shield Advancedのアップデートがありました。
AWS Shield Advanced がイベントへのプロアクティブな対応のサポートを開始
といっても、ほとんどのAWSユーザーがAWS Shield Advancedを使ったことがないと思います。
本記事では、AWS Shieldについて、簡単におさらいした後で、アップデートの中身を確認していきます。
AWS Shield Advancedとは
まず、AWSを利用すると、自動的にAWS Shield Standardが無料で有効になります。
こちらのサービスだけでも、レイヤー 3 およびレイヤー 4 攻撃に対して自動保護が可能です。
具体的には、SYN フラッドや UDP 反射攻撃などの一般的な DDoS 攻撃に対する保護をしてくれます。
レイヤー3、レイヤー4攻撃に対してはShield Standard、レイヤー7攻撃についてはAWS WAFで軽減するというのが一般的なレベルの防御と思います。
しかし、それでは足りないという場合、AWS Shield Advancedが検討されます。
StandardとAdvancedの違いは、以下となります。(AWS Shield の仕組みから転載)
機能 | AWS Shield Standard | AWS Shield アドバンスド |
Active Monitoring | ||
ネットワークフローのモニタリング | はい | はい |
自動常時検出 | はい | はい |
自動化アプリケーション (レイヤー 7) トラフィックのモニタリング | はい | |
DDoS Mitigations | ||
SYN フラッドや UDP 反射攻撃などの一般的な DDoS 攻撃に対する保護 | はい | はい |
攻撃中の AWS 境界へのネットワーク ACL の自動デプロイメントを含む、追加の DDoS 軽減機能へのアクセス | はい | |
カスタムアプリケーションレイヤー (レイヤー 7) 攻撃の軽減 | はい。ユーザーが作成した AWS WAF ACL を使用します。AWS WAF の標準料金が発生します。 | はい。ユーザーまたは DRT が作成した AWS WAF ACL を使用します。AWS Shield アドバンスド サブスクリプションの一部として含まれます。 |
ルールのインスタント更新 | はい。ユーザーが作成した AWS WAF ACL を使用します。AWS WAF の標準料金が発生します。 | はい |
アプリケーションの脆弱性を保護する AWS WAF | はい。ユーザーが作成した AWS WAF ACL を使用します。AWS WAF の標準料金が発生します。 | はい |
Visibility and Reporting | ||
レイヤー 3/4 攻撃の通知 | はい | |
レイヤー 3/4 攻撃のフォレンジックレポート (発生元 IP、攻撃ベクトルなど) | はい | |
レイヤー 7 攻撃の通知 | はい。AWS WAF を使用します。AWS WAF の標準料金が発生します。 | はい |
レイヤー 7 攻撃のフォレンジックレポート (トップトーカーのレポート、サンプリングされたリクエストなど) | はい。AWS WAF を使用します。AWS WAF の標準料金が発生します。 | はい |
レイヤー 3/4/7 攻撃の履歴レポート | はい | |
DDoS Response Team Support (Must be subscribed to the Business Support plan or the Enterprise Support plan. |
||
重要度が高いイベントでのインシデント管理 | はい | |
攻撃中のカスタム軽減策 | はい | |
攻撃後の分析 | はい | |
Cost Protection (DDoS スケーリング料金のサービスクレジット) | ||
Route 53 | はい | |
CloudFront | はい | |
Elastic Load Balancing (ELB) | はい | |
Amazon EC2 | はい |
上記のようにAWS Shield Advancedの機能の一つとして、DRTのサポート(DDoS Response Team Support)がありますが、今回のアップデート対象はその部分となります。
DDoS レスポンスチーム (DRT)との連絡
今までは、ユーザーがAWS上で動かしているアプリケーションに対しDDoSを受けている疑いがあった場合、AWS側にサポートを求めるためには、ユーザー側からAWSサポートに連絡する必要がありました。
今後は、DRTがDDoS イベントを検出すると、DRT側からプロアクティブにユーザーに連絡してくれるようになりました。
Step 4: (Optional) Prepare for response team engagement によると、以下のいずれかの方法でDRTに連絡することができるとのことです。
方法1.サポートケース
AWS サポートセンターの AWS Shield でケースを開くことができます。お使いのアプリケーションが不健全な場合は、サポートプランで利用可能な最高レベルの深刻度を使用してケースを開き、電話またはチャットの連絡先オプションを選択します。あなたのケースの説明では、できるだけ詳細に記載してください。影響を受ける可能性のある保護されたリソース、およびエンドユーザーの経験の現在の状態に関する情報を提供するようにしてください。例えば、ユーザーエクスペリエンスが低下していたり、アプリケーションの一部が現在利用できない場合は、その情報を提供してください。
こちらは従来からある方法です。 他のAWSのサービスでトラブルが起きた時の対応方法と同じですね。
方法2.プロアクティブエンゲージメント
AWS Shield Advancedのプロアクティブエンゲージメントでは、保護されたリソースに関連付けられたAmazon Route 53のヘルスチェックがShield Advancedで検出されたイベント中に不健全になった場合、DRTが直接お客様に連絡します。このオプションの詳細については、「Shield Advanced proactive engagement」を参照してください。
こちらが新しく追加された方法です。 あらかじめ、DRT proactive engagementを有効にしておくと、プロアクティブに動いてくれるとなります。
以下のようなイメージです。
プロアクティブエンゲージメントの有効化方法
プロアクティブエンゲージメントの有効化するには、設定やDRTとの調整が必要になります。
まず、Shield Advancedでは保護対象のALBやCloudFrontディストリビューションなどの選択が必要になりますが、それはできている前提で、さらに必要となる設定は以下となります。
なお、残念ながらAWS Shield Advancedを設定できる環境を得られなかったので実際に試せず、AWSドキュメントを読んで確認した内容となります。
手順1.正常性ベースの DDoS 検出を設定
正常性ベースの検出を開始するには、Shield アドバンスド で保護する AWS リソースの Route 53 ヘルスチェックを作成します。Route 53 ヘルスチェックの詳細については、「 Amazon Route 53 がリソースの正常性をチェックする方法」および「 ヘルスチェックの作成と更新」を参照してください。ヘルスチェックを作成したら、次の手順に従ってそれを保護と関連付けます。 AWS Shield アドバンスド 保護の管理
保護対象のリソースに対し、Route 53 でヘルスチェック設定をし、それをShield コンソールで関連づけると、Shieldコンソールでステータスが見れるようになります。
ステータスには、正常(Healthy)、異常(Unhealthy)、使用不可(Unavailable)の3つがあります。
この後の一連の設定手順を完了すると、DRTはステータスが異常(Unhealthy)の場合にプロアクティブな行動をとるようになります。
手順2.プロアクティブエンゲージメント用の連絡先の登録
プロアクティブエンゲージメント用に1〜10個の連絡先を登録します。
手順3.プロアクティブエンゲージメントを有効化
プロアクティブなエンゲージメントを有効にするを選択します。 最初にプロアクティブなエンゲージメントを有効にすると、リクエストは手動でのレビューに移行します。リクエストがレビュー待ちの間は、コンソールにプロアクティブエンゲージメントのリクエストと保留が表示されます。DRTは、Route 53のヘルス・チェック構成のレビューを含むアーキテクチャ・レビューをスケジュールするために、お客様に連絡します。レビューが完了すると、DRTはお客様のリクエストを完了させ、積極的なエンゲージメントを可能にします。 Shield Advanced proactive engagement
Shieldコンソールでプロアクティブエンゲージメントを有効化すると、DRTから連絡が来て、レビューが行われます。 これで設定完了です。
どのような時にDRTから連絡が来るのか?
さて、設定できましたが、どんな場合にDRTから連絡が来るのでしょうか?
以下の2つの条件が揃った時にDRTから連絡が来るとのことです。
実際にユーザーのサービスに影響が出ていて、さらにその原因がDDoSと思われる場合のみ、連絡するというスタンスと思われます。
条件1
Shield Advancedの保護対象に対し、下記のいずれかのイベントが発生。
- Elastic IPアドレス、またはAWS Global Acceleratorアクセラレーターへのネットワークレイヤーイベントとトランスポートレイヤーイベント
- Amazon CloudFrontディストリビューション、またはApplication Load BalancerへのWebリクエストフラッド
条件2
Shield Advancedの保護対象に関連付けられたAmazon Route 53ヘルスチェックが(Unhealthy)になった場合。
まとめ
DRTに連絡をする時、今まではユーザーから連絡をする必要がありました。
今後は適切に設定をしておけば、DDoS起因と思われるサービスダウン発生時にはDRTからユーザーに連絡してくれます。
それによって、障害時のユーザーとDRTとの連携が迅速化されることが期待できます。
余談 (料金の話)
AWS Shield Advancedの話をすると、1年間契約、月額料金3,000USD という料金の話が最初に出てくることが多いです。
確かに高いと感じますが、以下のような特典もあるので、大規模な環境に限ってかもしれませんが、検討するのもありかなと思いました。
- 1契約で組織全体(複数AWSアカウント)にも使える
- AWS WAFの料金も含まれる
- DDoS攻撃を受けた時に増加したEC2インスタンス料金などの支払いはクレジットで返ってくる(翌月以降のShield Advanced料金でのみ使用可)
渡辺 信秀(記事一覧)
2017年入社 / 地味な内容を丁寧に書きたい