[新機能]AWS WAFの概要簡単まとめ! #reinvent

AWS WAF

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンニチハ。千葉です。

AWS WAFとは?という疑問に対して、AWS WAFについて概要をまとめてみました。

AWS WAFの概要

AWS WAFって何?

アプリケーション用のファイアウォールです。 IPアドレス、HTTPヘッダ、URI、User-Agent、SQLインジェクションに関するアクセス制御ができます。

ただし、CloudFront経由でのアクセスのみ対応します。 つまり、ELBやEC2で提供しているサービスについては、直接AWS WAFを利用できません。(2015/10/7現在) 今後のアップデートに期待ですね。

※ ただし、ELBやEC2で提供しているサービスをCloudFrontのオリジンとして指定すれば、もちろん利用することが可能です。

AWS WAFのアクセスフロー

AWS-WAF-Diagaram-4

まずはじめに、CloudFronがリクエストを受けます。 そのあと、AWS WAFにリクエストが転送され定義されたルールに従い、ブロックするのかリクエストに対応するのかを決めます。

つまり、以下の挙動となります。 CloudFront → AWS WAF → (判定) → CloudFrontにて通常通信 or 通信をブロック

また、AWS WAFはCloudFrontと統合されています。 つまり、CloudFrontと同じエッジロケーションで動作するためレスポンスに関する犠牲はありません。 また、ブロックされる場合はCloudFrontオリジンへ到達する前にブロックされるため、これまたパフォーマンスへの影響も少なくなります。

AWS以外で動いているサイトから利用可能か?

利用可能です。 AWS以外で稼働しているサイトを、CloudFrontでカスタムオリジンとして指定します。

どのような攻撃を防げるか?

  • SQLインジェクションや、クロスサイトスクリプティングのような一般的な攻撃
  • 特定のUser-Agent、ボット、スクレイパーなど

AWS WAFでのエラーページは作れるか?

作れます。CloudFrontで提供されているカスタムエラーページの設定します。

CloudFrontとWAFを組み合わせるポイントの詳細については、こちらから参照頂けます。

AWS WAFの設定が反映される時間

CloudFrontと同じく、エッジロケーション全体に設定反映が必要のため数分程度かかります。

ルールに沿ってアクセスを許可した数やブロックした数などの挙動を確認する方法

Cloud Watchメトリックスがあるので、そこから確認可能です。 テストするときなんかも、ここのメトリックスを参照することで確認可能です。

HTTPSトラフィックにも対応していますか?

YES。HTTPSリクエストでも利用できます。

まとめ

これで、なんとなくAWS WAFに関する概要をつかめたのではないかと思います。 AWS WAFが登場したことで、WAF導入の敷居がとても低くなったのではないかと思っています!

参考

AWS WAF FAQs