Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Restrict HTTP Access to Elastic Beanstalk

Is it possible to restrict HTTP access to an Elastic Beanstalk application to only certain IP addresses? I"ve tried adding rules to my environment's Security Group but these don't appear to be having any effect. Is this because all HTTP traffic is routed through the Elastic Load Balancer, which isn't within the security group?

like image 279
EngineerBetter_DJ Avatar asked Jun 20 '13 19:06

EngineerBetter_DJ


3 Answers

I was able to restrict access to certain IP from a security group. I you look at an EC2 instance of your application the security group points to another one (see below).

enter image description here

Find this other security group, which is the one of the elastic load balancer. If you add inbound IP rules to this SG it will be applied to your application.

Hope this help.

like image 168
flacout Avatar answered Nov 10 '22 06:11

flacout


I have restricted HTTP access to an Elastic Beanstalk application to only certain IP addresses.
Following is my procedure.

  1. Create new beanstalk environment in the VPC(Amazon Virtual Private Cloud).
    Please read following documents.
    Using AWS Elastic Beanstalk with Amazon VPC
    Example: Launching an AWS Elastic Beanstalk Application in a VPC
    note: I tried to create a new beanstalk environment(Tomcat) in the VPC using AWS Tookit for Eclipse last month. But I could not create a new beanstalk environment due to the bug of AWS Toolkit for Eclipse. Finally, I could create a new beanstalk environment using a elastic-beanstalk-create-environment command. Therefore I recommend to use elastic-beanstalk-create-environment command.

  2. Create a new Network ACL(VPC's function) and open the inbound tab and configure to restrict source IP addresses. Set this Network ACL to the subnet of VPC which have a beanstalk's ELB.

like image 28
Ken Takehara Avatar answered Nov 10 '22 04:11

Ken Takehara


I was able to limit access to folders with the following X-FORWARDED restrictions:

<Directory "/var/www/html/folder_name">
    SetEnvIf X-FORWARDED-FOR x.x.x.x allow
    SetEnvIf X-FORWARDED-FOR a.a.a.a allow
    Order deny,allow
    Deny from all
    Allow from env=allow
</Directory>

This was done in the httpd.conf file, but I'm hoping it will also work in an .htaccess file. However, I'm supposedly not using an ELB, just a single instance and what ever load-balancing AWS may or may not already implement.

Hope this helps.

like image 1
onlymybest Avatar answered Nov 10 '22 06:11

onlymybest