CloudFront 適用済みの WordPress サイトに AWS WAF も適用してみる

# ０．はじめに

先日、こちらの記事の対応を行ったんですが、

* [SSL 化済みの WordPress サイトに CloudFront を適用してみる \- Qiita](https://qiita.com/kusokamayarou/items/21e4bcdaa7c8dd8523ab)

CloudFront に AWS WAF を適用してみます。

# １． AWS WAF の Web ACL を作成
1. 以下のページの手順に従って、AWS WAF の Web ACL を作成します。
    * [【新機能】AWS WAFマネージドルールを使ってWordPressに対する攻撃を防いでみた \#reinvent ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/aws-reinvent2017-waf-managed-rule-try/)
        * [AWS WAF & Shield](https://console.aws.amazon.com/waf/home#/webacls)
    * <font color="red"><b>注意する点は、以下。</b></font>
        * <font color="red"><b>リージョンは、「Global (CloudFront)」を選択すること!!</b></font>
    * ![FireShot Capture 046 - AWS WAF & Shield - console.aws.amazon.com.png](https://qiita-image-store.s3.amazonaws.com/0/161939/e0069ae7-487d-44ec-126a-b0c22ce3d0b2.png)
    * ※参考
        * [AWS WAFマネージドルールの制限と最適な利用方法 ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/aws-waf-managed-rule-limit/)
        * [AWS WAFマネージドルールはタダで使いまわそう！ ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/waf-managed-rule-pricing/)
        * [AWSでWAFを導入する理由と最適な選択 ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/waf-why/)
        * [AWS WAFのマネージドルールを試す \- Qiita](https://qiita.com/daisuke-senmyou/items/7e5c28231ee0a6b26c24)
        * [EC2 のWebサーバーへ CloudFront 経由で AWS WAF を導入 \| ハックノート](https://hacknote.jp/archives/37728/)
        * [AWS WAFにWordPress用のルールを設定してみる \| ハックノート](https://hacknote.jp/archives/41558/)
        * [AWS WAF を検討しているが、マネージドルールとしてどれを選べばよいか \| RUNSERVER Inc\.](https://www.runserver.jp/security/aws-waf-%E3%82%92%E6%A4%9C%E8%A8%8E%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8C%E3%80%81%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%89%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%A8%E3%81%97%E3%81%A6%E3%81%A9/)

# ２． 作成した Web ACL のログ出力設定
1. 以下のページの手順に従って、作成した Web ACL にログ出力を設定します。
    * [AWS WAFのログをFirehoseでS3に出力しブロックログをS3Selectで確認してみた ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/awf-waf-comprehensive-logging/)
        * [AWS WAF & Shield](https://console.aws.amazon.com/waf/home#/webacls)
        * [Amazon Kinesis ダッシュボード](https://console.aws.amazon.com/kinesis/home?region=us-east-1#/dashboard)
    * <font color="red"><b>注意する点は、以下。</b></font>
        * <font color="red"><b>CloudFront での利用なので、Kinesis Firehose もバージニアリージョンで作成すること!!</b></font>
    * ![FireShot Capture 047 - AWS WAF & Shield - console.aws.amazon.com.png](https://qiita-image-store.s3.amazonaws.com/0/161939/de52e2b7-edae-eb92-cb8f-1444908c9386.png)
    * ![FireShot Capture 049 - Amazon Kinesis Firehose - console.aws.amazon.com.png](https://qiita-image-store.s3.amazonaws.com/0/161939/9b243695-d9d3-2837-aaf0-a23b1d57652d.png)
    * ※参考
        * [ウェブ ACL トラフィック情報のログ記録 \- AWS WAF、AWS Firewall Manager、および AWS Shield アドバンスド](https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/logging.html)
        * [AWS WAFのログをFirehoseでS3に出力しブロックログをS3Selectで確認してみた ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/awf-waf-comprehensive-logging/)
        * [AWS WAFのログをFirehoseでS3に出力, 保存する \| ハックノート](https://hacknote.jp/archives/42845/)
        * [AWS WAF Full Log を S3 に出力する \| WafCharm（ワフチャーム）｜AIによるAWS WAFのルール自動運用サービス](https://www.wafcharm.com/blog/aws-waf-full-log-s3-output-jp/)

# ９９．ハマりポイント

* 今回は、クラスメソッドさんのおかげで非常に簡単に出来ました。
* クラスメソッドさん、本当にありがとう♪

# ＸＸ．まとめ

今後、運用管理を行っていく上で、ログの解析等が必要になると思いますが、その辺はまた整理して記事を投稿できればと思います。

その辺もおそらくクラスメッドさんの記事が参考になるのではと思いますが…。

* ※参考
    * [AWS WAFのフルログをAthenaで分析できるようにしてみた ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/query-aws-waf-full-log-by-athena/)
    * [AWS WAFマネージドルールで誤検知した場合の対処法 ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/aws-waf-false-positive/)
    * [\[新機能\]AWS WAFマネージドルールで誤検知対応できる例外ルールの設定が可能になりました ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/rule-group-exceptions-for-aws-waf-managed-rules/)
    * [Athenaで入れ子のjsonにクエリを投げる方法が分かりづらかったので整理する \- Qiita](https://qiita.com/yutaro1985/items/71589e93aad6ddcbd7a6)

本当にクラスメソッドさんには、頭が上がりません。

ありがとうございます!!
🙇‍♂️

では♪