ヤマムギ

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 , ,

  関連記事

RDSのポイントインタイムリカバリをしました

WordPressで画像アップロードができなくなった(AWS WAFでブロックし …

AWS Transit Gateway Network ManagerにTransit Gatewayを登録してルートアナライザーで確認

グローバルネットワークの作成 VPC左ペインのメニュー Transit Gate …

AWS IAMのMFA「エンティティは既に存在しています」に対応しました

エンティティは既に存在しています MFA Device entity at th …

Amazon S3オブエジェクトへのリクエストをCloudTrail, Athenaで識別

こちらCloudTrail を使用した Amazon S3 リクエストの識別に書 …

東京リージョンの1つのAZ(apne1-az2)でt3.nanoスポットインスタンスが拒否されちゃいました

拒否されちゃいました ちょっとした検証をしようとしてて、t3.nanoのスポット …

[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました

Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …

特定AWSアカウント特定リージョンのCloudFormationスタックを削除するLambda(Python)

やりたいこと 特定アカウント内特定リージョン内のCloudFormationスタ …

ヤマムギvol.26 Amazon DynamoDBのデモをしました

今日はAWS認定クラウドプラクティショナー対策本(緑本)に関係するデモをしました …

AWS CloudShellでboto3(SDK for Python)使うならpython3

本の執筆をしていて、ちょっとAWS CLIやSDKのふるまいを確認したいことがあ …

CloudFormationスタックポリシーでスタック更新を防止する

CloudFormationのスタックにスタックポリシーを設定することによって、 …