AWSのELB配下のEC2のApacheで送信元IPアドレス制限をかけるにはちょっとした工夫が必要です。
通常のApacheのIP制限
例えばApacheで「/wp-admin」に「999.999.999.999」からのアクセスのみ許可する場合、次のような設定になります。
<Location /wp-admin> order deny,allow deny from all allow from 999.999.999.999 </Location>
しかしながら、ELB配下でEC2のApacheでIPアドレス制限を設定する場合は、送信元のIPはELBになってしまうので別の方法で設定する必要があります。
ELB配下でのApacheのIP制限
ELB配下のEC2のApacheで送信元のIPアドレスで制限する場合は、本来の送信元IPアドレスを「X-Forwarded-For」ヘッダーから取得する必要があります。
<Location /wp-admin> SetEnvIf X-Forwarded-For "999\.999\.999\.999.*" allowed_ip Order Deny,Allow Deny from all Allow from env=allowed_ip </Location>
複数の場合は「SetEnvIf」を追加するだけです。例えば、IPアドレス「999.999.999.999」「888.888.888.888」からのリクエストのみ許可する場合はこんな感じ。
<Location /wp-admin> SetEnvIf X-Forwarded-For "999\.999\.999\.999.*" allowed_ip SetEnvIf X-Forwarded-For "888\.888\.888\.888.*" allowed_ip Order Deny,Allow Deny from all Allow from env=allowed_ip </Location>
以下の記事を参考にさせて頂きました。