LoginSignup
3
2

AWSのALB + EC2の構成でサイト管理画面へのIP制限をする(WAF無し)

Posted at

webサイトで管理画面へのアクセスはIP制限を行いたい場合の方法メモ

経緯

料金等を考えずにALB + EC2で特定URLへのアクセス制限をしたい場合はAWS WAFを利用すれば良いのですが、コストの都合上などで使用しない方針になったのでEC2のapacheのconfigで制限を実施しました。

Apacheでのアクセス元IP制限について

ALBを挟まずにEC2のみでサイトを運用している場合はhttpd設定ファイルに

<Directory /xxx/yyy>
  Require <IP adress>
</Directory>

の記載で対象サイトにアクセス元のIP制限をかけることができるのですが、ALBを挟んでいる場合はEC2と通信するのは常にALBとなるのでこの書式ではIP制限を行うことができません。

設定した内容

なので今回はX-Forwarded-Forヘッダの値を見て以下のような記述でアクセス制限をします。apacheの設定ファイルに記載します。

<Directory /xxx/yyy>
  SetEnvIf X-Forwarded-For "^192\.168\.xxx\.xxx" allowed_ip
  Require env allowed_ip
</Directory>

X-Forwarded-ForはクライアントやALB、CloudFrontなどの経由したサーバのIPアドレスが記録されるヘッダーなので、正規表現でここにアクセス元のIPがあるかどうかで許可を行なっています。

CloudFront + EC2などでもこの記載でアクセス制限可能ですね。

以下参考サイト

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2