ヤマムギ

growing hard days.

*

CloudFrontのカスタムヘッダーがなければALBのルーティングで403レスポンスを返す

      2022/04/12

大阪リージョンにはWAFがまだないです(2021年4月現在)

今のこのブログの構成は、上図でして、ALBのセキュリティグループはどこからでもリクエストを受けています。

とすると、こんなどうでもいいアクセスもたくさん受けてしまいます。
CloudFront側ではWAFでブロックしたりもしてるのですが、ALBのIPに直接来たリクエストは受けてました。
以前、東京リージョンで運用してたときは、CloudFrontのカスタムヘッダーがなければ、ALB側に設定したWAFでブロックしてたのですが、大阪リージョンにはWAFがありません。
ですが、よくよく考えるとALBにはルーティングがあるじゃないかと(気づくのが遅い)。

ということでルーティングのルール設定をしました。

CloudFrontの設定

オリジンにカスタムヘッダーを設定しました。

ALBの設定

ルールを挿入して、CloudFrontで追加されたカスタムヘッダーがHTTPヘッダーにあるときだけ、ターゲットグループにルーティングするようにしました。

それ以外は503を返すようにしました。
(攻撃者に対して503でいいのかな?)

後でApplication Load Balancers へのアクセスを制限するを参考に403に変更しました。
クライアント側のリクエストに原因があるのでそれはそうですね。

テスト

Postmanでテストしました。

ALBのDNSに、カスタムヘッダーのヘッダーなしでGETリクエストをしたら、503エラーになりました。
予定通りです。

CloudFrontのカスタムヘッダーをリクエストヘッダーに手動で追加してPostmanからGETリクエストを実行したら、EC2へルーティングされました。
OKです。

まとめ

要件を満たすことができて、WAFのコストも削減できました。
実現方法を複数知っていると、何らかの制約ができたときにも対応しやすいですね。
もっともっと機能やサービスを知っていかなければです。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

S3 Intelligent-Tieringのオブジェクトの階層移動をCloudWatchメトリクスで確認

CloudWatchメトリクスの保存期間は現時点で15ヶ月(455日)なのでそろ …

Well-Architected Tool レンズヴァージョンアップ

当ブログのWell-Architectedレビューを久しぶりにやろうと思い、We …

WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する

このブログのアーキテクチャは現在こちらです。 データベースは、Amazon Au …

AWS EC2 Amazon Linuxにmauticをインストールする(Sendgrid, Nginx, MySQL on RDS)

mauticをAmazon LinuxとNginx,MySQL on RDSにイ …

Amazon Connectのパスワードどころかユーザー名も忘れたのでEmergency accessした

長い間放置していたAmazon Connect環境にアクセスしようとしたところ、 …

ALBの重み付けルーティングでカナリアリリースをしてみました

当ブログのAMIの更新と、ALBターゲットグループのヘルスチェックを変更したかっ …

リザーブドインスタンスはじめました

このブログも2014年9月にはじめたので、もうすぐ3年。 1件~17件とばらつき …

「AWSではじめるLinux入門ガイド 」を執筆しました

2020年4月30日に、「AWSではじめるLinux入門ガイド」という本を発行い …

AWS Lambda(Python3.7)でPandocを実行する際にCSSもLayerから読み込む

Pandocで必要そうなオプションを確認しておく 先日の「AWS Lambda( …

IAMユーザーのマネジメントコンソールログインパスワードを変更してDynamoDBに記録するLambda(Python)

やりたいこと IAMユーザーのマネジメントコンソールへのサインインパスワードを動 …