AWSのELBでIP制限をしたい

やりたいこと

AWSのELBで、社内IPからのアクセスのみに制限する。

タイミングによって、他のIPからもアクセス可能 or 固定レスポンスの表示を切り替える。

エラー内容

ELBのルール設定はあっているはずなのに、その他のIPからアクセスできなくなった。(一度アクセスできることを確認済)

調査

ELBのタグを選択し、「Listeners」のHTTPS:443を選択。

Rules → Manage Rules を選択し、ルールを追加する。

ルール1.社内IPからのアクセスを許可する。

条件の追加 → 送信元IP → 社内IPを入力する。

アクションの追加 → 転送先 → 目的のターゲットグループを選択 → 画面右上の「保存」を押下

ルール2.その他のIPからのアクセスを許可する。(すべてのIPからのアクセスを許可し、ルールの順位をルール1より下にする。)

条件の追加 → パス → *(アスタ) → アクションの追加 → 目的のターゲットグループを選択 → 画面右上の「保存」

を押下

ルール3.その他のIPからのアクセスの場合、固定レスポンスを表示する(メンテナンス画面など)

条件の追加 → パス → *(アスタ) → アクションの追加 → 固定のレスポンスを返す → 

レスポンスコードはそのまま(503)、ContentーTypeを選択(今回はtext-html)、表示したいhtmlを記入 → 画面右上の「保存」

ルールの設定と順位は合っているが、アクセスできなくなってる!!

原因

別途、ファイアウォールの設定が必要だった。

解決策

EC2>ロードバランサー>ロードバランサーを選択>Security>SecurityGroupIDを選択>インバウンドルールを編集

・インバウンドルール

HTTP、ポート80(localhost)、ソースに許可するIPを入力、説明を入力 → 社内IPでlocalhost HTTP接続可

HTTPS、ポート443、ソースに許可するIP入力、説明を入力 → 指定したIPでHTTPS接続可

SSH、ポート22、ソースに許可するIP入力、説明を入力 → 指定したIPでSSH接続可

HTTPS、ポート443、IP 0.0.0.0/0 を入力、説明を入力 → すべてのIPでHTTPS接続可

参考

セキュリティグループでリソースへのトラフィックを制御してみよう | DevelopersIO
セキュリティグループのルールを設定して、トラフィックを制御する方法を整理してみました。

コメント

タイトルとURLをコピーしました