[AWS] WebページにALBのIP指定でアクセスできないよう制限する
やったこと
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のルールだから、この画面ではないのですが、こんな感じでできます。
ちょくちょく書くので自分のためにメモしておきます('◇’)ゞ