[AWS] WebページにALBのIP指定でアクセスできないよう制限する

2023-03-19

やったこと

AWSでEC2やS3などを使ってWebのコンテンツを配信されている方は多いと思いますが、ALBのIPアドレスを使ってコンテンツを見れてしまうことに気づいたので、今回ドメインでのアクセスのみに制限しました。

検出

Google Search Console のリンク見ていて、上位のリンク元サイトにIPアドレスが表示されているのを見て気づきました。調べたところ、IPアドレスは Application Load Balancer のものでした。

検出で詰まったところ

今日(2022/3/30)、AWSにログインしてみたらコンソールが新しくなる連絡がでてたので、適用してみました。

ロードバランサーがみつからない

EC2 > ロードバランシング > ロードバランサ― と移動。

あれ、見つからない。

書いてある通りで、リージョンがなぜか「バージニア北部」になっていました。
もしかすると、コンソールを適用した時かな?

画面右上から使っているリージョンに切り替えて、見つけることができました。

ロードバランサーのパブリックIPがみつからない

EC2 > ロードバランシング > ロードバランサ― と移動したものの、ここからリンクをたどっても目的のIPをみつけられませんでした、かなしい(。´・ω・)

正解はこちらでした。

EC2 > ネットワークインタフェイス

一覧のセキュリティグループや説明をたよりにネットワークを特定して、IPアドレスを調べられます。

正解がわかったあとに、ロードバランサ―のページから行ってみようと思ったけど、それでもたどりつけませんでした…(._.)
探し物が下手なのかもしれません。

設定

EC2 > ロードバランシング > ロードバランサ― から目的のALBを選んでリスナーの設定をします。

修正前
① www付きのドメイン でのアクセスは wwwなしにリダイレクト
② それ以外はターゲットグループを指定して転送

修正後
① www付きのドメイン でのアクセスは wwwなしにリダイレクト
② ドメインかサブドメインのアクセスだったらターゲットグループを指定して転送
③ それ以外は 403 を返す。

ドメインが neko-note.org だとこんな風になります。

ホワイトリストで転送して、デフォルトアクションで 403 を返すのがポイント(。-`ω-)
(設定されてなかったのにドヤる)

以上です。

おまけ

HTTP から HTTPS への転送は ポート80のルールだから、この画面ではないのですが、こんな感じでできます。

ちょくちょく書くので自分のためにメモしておきます('◇’)ゞ

技術AWS

Posted by 86