Amazon ec2 如何限制仅从内部区域访问ElasticBeanstalk端口80?

Amazon ec2 如何限制仅从内部区域访问ElasticBeanstalk端口80?,amazon-ec2,amazon-elastic-beanstalk,amazon-route53,Amazon Ec2,Amazon Elastic Beanstalk,Amazon Route53,我有ElasticBeanstalk环境,它应该通过HTTPS端口向Internet公开,但也只能通过HTTP向云中的某些实例公开。因此它有2个侦听器。EB自动为my env的LoadBalancer安全组设置“HTTP ANY IP”入站规则 现在,我已经为我的电子商务环境定义了一个Route 53别名,例如“myenv.company.internal”。接下来,我curl“http://env1.company.internal“来自某个EC2实例,它仅在入站规则为“HTTP ANY IP

我有ElasticBeanstalk环境,它应该通过HTTPS端口向Internet公开,但也只能通过HTTP向云中的某些实例公开。因此它有2个侦听器。EB自动为my env的LoadBalancer安全组设置“HTTP ANY IP”入站规则

现在,我已经为我的电子商务环境定义了一个Route 53别名,例如“myenv.company.internal”。接下来,我
curl“http://env1.company.internal“
来自某个EC2实例,它仅在入站规则为“HTTP ANY IP”时有效。如果我试图将HTTP仅限于EC2实例的安全组,则该实例无法
curl

如何将我的EB环境的HTTP端口80访问权限限制为云中的其他安全组

如何将我的EB环境的HTTP端口80访问权限限制为云中的其他安全组

对于面向internet的ALB,您不能这样做。如果为公共ALB设置
env1.company.internal
私有托管区域记录,它将解析为ALB的公共IP地址

因此,您不能在ALB SG入口规则中使用SGs来限制流量。这就是为什么它与HTTP ANY IP一起工作,而不与参考SGs一起工作的原因


如果要解决此问题,可以将弹性IP连接到其他实例,并将ALB上的端口80限制为仅允许从弹性IP地址进行连接。更多情况下,您可以使用NAT网关的公共IP地址。

您不能将安全组作为internet流量的参考。不确定您想要实现什么。澄清:我希望我的beanstalk env可以通过两个端口访问:https从任何地方,80只从属于某个安全组的EC2实例。我尝试设置端口80入站角色,如“HTTP端口80仅适用于sg-12345678组”,但该组中的实例无法卷曲到EB中。端口80应可直接在EB实例上访问,或通过面向internet的ALB?通过ALB访问(这就是我使用Route53别名的原因)。EB实例本身属于不同的sec组,该组仅允许ALB访问它们。我尝试的入站规则仅适用于ALB sec组
http://env1.company.internal
来自R53的私有托管区域?不幸的是,我无法分配弹性IP,因为其他EC2实例也是beanstalk实例,并且不断变化。有没有一种方法可以限制我的VPC的ip地址(假设有类似“公共ip”的内容?)?不理想,但至少端口80不会公开。@SagiMann最简单的方法是使用其专用IP地址直接连接到EB实例。您是否有理由使用公共ALB端口80,仅用于私人通信?我无法理解这样做的理由,因为我需要对http请求进行负载平衡,即使它们来自云中。实例本身在Beanstalk下不断变化,我无法在任何地方列出或引用它们及其IP。EB实例是否在NAT后面的私有子网中?然后,您可以在ALB中将NAT的IP地址列为白名单。那么不管你有多少个实例,或者他们的IP地址是什么。@ Saigimn我会考虑重新构建你的设置。我会将EB实例放置在私有子网中。让您的ALB保持现在的互联网流量。但是为实例的端口80设置第二个ALB(仅限内部)。根据你的要求,不知道是否有更简单的方法。