ブラックボックス

プログラミングのノウハウやライフハックをどんどん投稿していきたい

Nov 8, 2021 - 2 minute read - ノウハウ

【AWS】Application Load Balancer(ALB)で特定パスのIPアドレス制限を設定する

WordPressの管理画面など、不特定多数のアクセスを許可したくないページがあると思いますが、
特定のパスについてアクセス制限を行うような設定方法についてメモをします。

タイトルにあるように、Application Load Balancer(ALB)を使用している場合の設定方法となります。
また、ALBからEC2やECSなどへの基本的なリスナーは既に設定済みであることが前提となります。

例として、下記を設定する場合の設定を記載します。

  • 対象パス:/admin/配下
  • 許可IPアドレス:127.0.0.1

AWSのマネジメントコンソールにログインし、
_EC2→ロードバランサ→対象ALB選択→対象リスナーのルールの表示/編集
_ と遷移。

上部メニューの⊕を押下し、ルールの挿入モードに変更。

画面真ん中の⊕ルールの挿入を押下し1レコードを挿入。

条件に「パス」を選択し、値に制限をかけたいパスを入力(ワイルドカード可能)、
アクションに「固定レスポンスを返す」を選択し、アクセスを拒否する場合にクライアントへ返すレスポンスコードを入力(例では404とする)、レスポンス本文は設定してもしなくても良い。
レスポンス本文を設定するとアクセス拒否時に画面に表示される文字列となる。

右上の保存ボタンを押下し、先ほど追加したルールの上の⊕ルールの挿入を押下。

条件は先と同じパスを入力しチェックマークを押下

条件に「送信元IP」を選択し、アクセスを許可したいIPアドレスをCIDRで入力(127.0.0.1のみを許可する為127.0.0.1/32を設定)。

アクションに「転送先」を選択し、ターゲットグループにデフォルトアクションと同じ転送先を設定(例ではhttpというターゲットグループ)

右上の保存ボタンを押下し保存。
ここまで設定すると下記のようになっているはず。

上から1:許可設定、2:拒否設定、最後:条件に該当しない場合(/admin/*以外のパス)の順番で設定されます。

設定に誤りがある場合はヘッダメニューのペンマークが編集、⊝ボタンが削除となるので適宜設定を修正ないし削除が可能です。

ここまで設定をしアクセスを確認。
ここまで記載した内容は例なので、正規の設定を行った後にCIDRの範囲外のIPアドレスからアクセスをする。

正規の設定ではレスポンス本文に「404 NotFound」を設定していたのでレスポンスボディに設定され返却された。