限制从另一个

时间:2015-06-03 19:28:02

标签: security amazon-web-services elastic-beanstalk

我有两个Elastic Beanstalk应用程序“a”和“b”。任何人都应该能够通过http与(a)交谈,但只有(a)应该能够与(b)交谈。即。

internet -> a -> b

现在,如果两个应用程序都完全对互联网开放,那么一切正常。但是当我试图限制(b)ELB的安全组时,(a)似乎无法连接。

即。如果我允许(b)的负载均衡器安全组允许http:0.0.0.0/0,一切正常。但如果我将同一个安全组设置为仅允许http:[(a)的安全组],则(a)不能再与(b)通信。

两个应用都在同一个VPC中。我错过了什么?

- 编辑 -

明确:

  • App B:
    • ELB安全组:sg-a3d3ccc6
    • EC2安全组:sg-aed3cccb
  • App A:
    • ELB安全组:sg-4fe5fd2a
    • EC2安全组:sg-5ee5fd3b

工作:

App A的ELB安全组设置,允许任何人访问HTTP / S. App A's ELB Security Group Settings, to allow access from anyone to HTTP/S

App A的EC2安全组,只允许从A的ELB访问(是的,我在这里缺少https,但现在可以了) App A's EC2 Security Group, to allow access only from A's ELB

App B的ELB安全组,允许任何人访问 App B's ELB Security Group, to allow access from anyone

App B的EC2安全组,仅允许从B的ELB访问 App B's EC2 Security Group, to allow access only from B's ELB

不工作:

与上述相同,但将B的ELB安全组更改为仅允许从A的EC2组进行访问。哎呀,为了确定,我们将添加A的EC2和ELB。

App B的ELB安全组,仅允许从App A访问 App B's ELB Security Group, allowing access only from App A

1 个答案:

答案 0 :(得分:2)

如果有人这样做(正如有些人声称的那样),我会对细节非常感兴趣。我注册了一个支持帐户,并在AWS上开了一张票,正式他们说这是不可能的:

  

在研究了更多您尝试实施的设置之后   不受支持。在它所述的安全组规则部分中   当在SG规则中引用安全组时,它允许访问   来自与源关联的实例的本地IP地址   小组,而不是他们的公共或弹性IP。以下是文档页面   有关该主题的更多信息。

     

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules

     

要完成您想要做的事情,需要更多设置,但是   是可能的。

     

下面我已经包含了一个指向教程的链接   将EB环境部署到VPC中,私有实例   子网以及在AWS上设置NAT实例的过程。   使用它,它将允许您拥有您的私人EB应用程序   只能从公共EB应用程序访问的实例。

     

我建议考虑使用这种架构来设置新的VPC   而不是尝试修改现有的VPC。

     

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo-vpc-basic.html   http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html#NATInstance

即。两个EB实例之间的流量来自A的公共IP地址,但安全组仅对私有IP地址起作用。我还没有完成阅读,但看起来解决方案是创建一个新的VPC并将两者一起NAT,所以所有请求看起来都是来自私有IP地址。

这有点粗糙,其中最重要的是创造所有新的VPC将是一个皇家的痛苦。如果其他人在没有这个的情况下工作那么非常好奇。