AWS WAFとは?
AWS WAFはその名のとおり、AWSが提供するWAFです。そもそもWAFとは「Web Application Firewall」の略で、Webアプリケーションに対する攻撃から保護するもの。Webサイトの入力フォームなどを悪用し、不正な文字列を送り付けることで攻撃を図るSQLインジェクションやクロスサイトスクリプティングなどについて、Webアプリケーションへの通信内容を監視することでブロックします。こういった攻撃は、トラフィックとして“正常”と判断されてしまうため、ファイアウォールやIPS・IDSでは防げず、WAFが必要、ということですね。
かつてWAFは、アプライアンス(ハードウェア)で導入していましたし、その後はソフトウェアベースのものも出ていました。これをAWSがフルマネージド型のサービスとして提供する、というわけです。
AWS WAFでは、悪意あるリクエストをルールに基づいてブロックしていくわけですが……、WAFで問題になるのが、このルールをどうやって設定して、運用するのかということですよ。当然ですが、最新の攻撃手法に対応していかないといけないわけですし、一度やれば終わり、とはいかないのが厄介なところ。ですが!AWS WAFはこのルールも“マネージド”で提供しています。その名も「AWS Managed Rules for AWS WAF」。そのままのネーミングですが、分かりやすくて素敵。要するに必要なルールをセットにしたものがいくつか提供されていて、そのなかからどれを適用するのかを選べばOK。「OWASP Top 10」(※)に対応したものなどもあるので、まずはそのあたりを設定しておくのがお勧めです。
ちなみに、AWSのマネージドルールのほかに、パートナーであるセキュリティベンダーが提供するマネージドルールもありまして、これもAWSのMarket Placeから購入して簡単に適用できます。セキュリティの要件によっては、こういったものを活用するのもひとつの手と言えます。
- ※Webアプリケーションのセキュリティに関する活動をおこなう非営利団体「OWASP」が発行するレポート。Webセキュリティにおけるさまざまな脅威のなかで、特に警戒すべきもの、危険性が高いものとして10項目が挙げられる
AWS WAFのメリット
AWS WAFのメリットは大きく「簡単に使いはじめられる」「圧倒的なスケーラビリティ」「AWSサービスとの親和性」の3つが挙げられます。……これ、そのままAWS自体の特長じゃん!という気持ちではありますが、AWS WAFならではのところもあるので、それぞれもう少し細かく見ていきましょう。
1. 簡単に使いはじめられる
初期投資がかからず、簡単な設定で、すぐに利用を開始できる、というのがAWS WAFでまず挙げられるメリット。上でも紹介したとおり、「セキュリティルール」もマネージドで提供されているので、「一般的な対策をまずやりたい」などはササっと対応できそうです。もちろん従量課金制で使った分だけのお支払い。料金は後述しますが、かなり安価な設定になっており、コスト面でもかなりハードルが下がっています。
2. 圧倒的なスケーラビリティ
WAFを使う場合に課題となるのが、「どれくらいのトラフィックに耐えられるようにするか」というサイジング。うっかりするとWAFがボトルネックになりかねず、かといってあまりに余裕を見るのもいかがなものか。そこでマネージド型のWAF。トラフィック量に応じて柔軟にスケールできて、Webサイトへのアクセスが突発的に増えてもAWS WAF自体がネックになることがありません。
3. AWSサービスとの親和性
AWSサービスとの親和性……って言っても、そもそもAWS WAFは、AWS環境に構築したWebサーバを保護するもので、連携前提では?とも思いますが、それだけではなく、ほかのAWSサービスと連携させていろいろできるよ、という話です。
具体的にはログの分析や監視が挙げられます。Amazon CloudWatchを活用して、モニタリングし、アラート通知する、といったことも可能です。もともとAmazon CloudWatchは、AWS環境の運用監視に多く使われますし、そことあわせてAWS WAFも一緒に運用できるのは、(AWSだからそりゃそうよねとは思いつつも)やっぱりメリットなんだろうと思います。
AWS WAFのデメリット
一方、AWS WAFのデメリットとしては「細かなチューニングができない」ことが挙げられます。マネージド型で、いろいろお任せできることの裏返し、とも言える。マネージドルールが具体的にどんな内容で監視しているかも公開されていないため、「どのトラフィックを通すのか」を細かく管理しなければならないといった要件がある場合などは、注意が必要です。また、「正しいトラフィックなのにブロックされてしまう」などの誤検知には、ひとつずつ「こういうトラフィックはOK」として設定していくことになりますが、そもそもなにがブロックされているのかが詳細に分からないなかで対処することになるので、ちょっと厄介かもしれません。
とはいえ!「そこまで細かく管理する必要があるか」「そんなに誤検知されるようなトラフィックが多いのか」……と考えると、よほどの事情がない限り、AWS WAFを使っておくのがよさそうです。
AWS WAFの料金
気になる利用料金ですが、課金対象となる項目は主に下記の3つです。
- WebACL:5.00USD/月
- ルール:1.00USD/月
- リクエスト数:0.60USD/100万リクエスト
……唐突に知らない単語が出てきましたね。「WebACL」とは一体なんなのか。
これは「Web Access Control List」のことで、ルールをまとめたリスト、と考えればよさそうです。このWebACLに関連付けたAWSサービスが保護対象になり、WebACL配下のルールが適用される、ということの様子。
では、それで具体的にいくらくらいになるのかというと、たとえば、1つのWebACLに、19個のルールを作成、月間1000万リクエストの場合、月30USD、という試算になります。
WebACL:5.00USD×1 = 5.00USD
ルール:1.00USD×19 = 19.00USD
リクエスト:0.60USD/100万×1000万 = 6.00USD
合計:30.00USD/月
ここで、もうひとつ覚えておきたいのが、「WCU(WAF Capacity Unit)」という考えです。WCUはルールに対する処理コストのことで、WebACLごとに上限が設定されています。ルールの中身に応じてWCUが設定されていて、複雑な処理が必要なルールほどWCUも増えることに。1つのWebACLにいくらでもルールを設定できるわけではなく、上限を意識する必要がある、ということは頭の片隅に留めておくといいかもしれません。
AWSのセキュリティサービスをまとめたホワイトペーパーもご用意
今回はAWS WAFについて基本を解説してきましたが、簡単に使えて、運用もお任せで、しかも低コスト、とやっぱり使わない理由はないのでは、というもの。外部に公開するWebアプリケーションサーバでは、AWS WAFを有効にすることをお勧めします。
前々から思っていましたが、そしてこのコラムでも何度も書いてきた気がしますが、そしてそしてなにを今さら感も強いですが、やっぱりセキュリティ系のサービスもAWSはかなり整えてあるよなぁ、と改めて思います。こういうのを組み合わせることで、かつてはどうにもハードルが高かったセキュリティ対策もグググッと使いやすくなるわけです。
AWS WAF以外にも、AWSのセキュリティ関連サービスから基本的なものをピックアップし、活用の実践例まで紹介するホワイトペーパーもご用意しています。(「ホワイトペーパー|AWS セキュリティ対策ガイド」)セキュリティの全体像から、各サービスの基本をぎゅっとまとめていますので、興味のある方はぜひダウンロードをお願いします!以上、シイノキでした!
お役立ち資料をダウンロード
「AWS セキュリティ対策ガイド」のダウンロードをご希望のお客様は、
以下必要事項をご入力ください。