0

我有一个Elastic Beanstalk实例,它充当管理控制台,呈现从数据库提供的HTML模板和数据。这和数据库在特定的VPC内。创建仅对内部VPC实例和单个外部服务开放的AWS EC2安全组

同样在VPC中,我还有另一个单实例Elastic Beanstalk应用程序,它用作web套接字客户端,将数据从外部服务保存到数据库中。这些是下图中的摄入饲料。

摄入饲料有HTTP休息端点,我可以从管理仪表板中启动/停止摄取饲料。

我遇到的问题是如何关闭VPC外部的摄取馈送。我希望它只能从Admin Dashboard Elastic Beanstalk应用程序进行连接。

但我也希望他们能够通过网络套接字连接到外部服务。

Diagram

+0

您能识别外部服务的IP地址吗? –

+0

它的GDAX wss feed。 https://docs.gdax.com/#websocket-feed wss://ws-feed.gdax.com –

+0

我很困惑,外部服务是否将数据推送到您的摄取馈送服务?还是服务提供服务从外部服务获取数据? –

回答

1

这应该满足你的要求:

管理员控制台服务器:安全A组

    仪表板送达任何端口,可能端口
  • 入站规则允许的流量80和/或443.
  • 默认出站规则

摄入饲料服务器:安全B组

  • 没有入站规则(参见下面的注释)
  • 默认出站规则

数据库服务器:安全C组

  • 入站规则允许属于安全组A的实例访问 数据库端口
  • 入站规则,允许情况下,属于安全B组对数据库的访问端口
  • 默认出站规则

注:

the documentation

安全组是有状态 - 如果您从 实例发送请求,则允许该请求的响应流量在 中流动,而不管入站安全组规则。无论出站规则如何,允许对允许的 入站流量的响应流出。

这应该允许您的摄取馈送服务与外部服务建立连接,并在该连接上接收响应,而不会将任何入站规则分配给摄取馈送实例。