No.127


【AWS】【ELB】【Apache】ELB下のインスタンスでのIPアドレス制限

ELB配下のインスタンスでIPアドレス制限をしたい。

 普通のサーバでに.htaccessでIPアドレス制限をするのは簡単。

order deny,allow
deny from all
allow from IPアドレス

 ただ、ELB配下のインスタンスの場合はこれではNG。理由は各インスタンスへのアクセスはELBから行われるため、インスタンス的にはどんな環境からのアクセスでもELBからのアクセスと見なしてしまうのだ。

 というわけで、対応方法としてはロードバランサーが設定する環境変数を利用することになる。X-Forwarded-Forという変数に転送前のアクセス元IPアドレスを設定してくれるのだ。

SetEnvIf X-Forwarded-For "IPアドレス" allowedip
order deny,allow
deny from all
allow from env=allowedip

 IPアドレスを記載するときには注意点が幾つかある。

  • ピリオドはエスケープすること
  • ネットワークアドレスなどの記述は行えないこと
  • 複数記載する場合はパイプで繋ぐこと

 複数書く場合は下記のようになる。

SetEnvIf X-Forwarded-For "111\.222\.333\.444|555\.666\.777\.888" allowedip