【问题标题】:Create AWS EC2 security group open only to internal VPC instances and a single external service创建仅对内部 VPC 实例和单个外部服务开放的 AWS EC2 安全组
【发布时间】:2017-05-11 23:24:48
【问题描述】:

我有一个 Elastic Beanstalk 实例,它充当管理仪表板,呈现 HTML 模板和从数据库馈送的数据。这和数据库都在一个特定的 VPC 中。

在 VPC 中,我还有另一个单实例 Elastic Beanstalk 应用程序,它充当 Web 套接字客户端,将来自外部服务的数据保存到数据库中。这些是下图中的摄取提要。

摄取提要具有 HTTP Rest 端点,我可以从管理仪表板中点击它来启动/停止摄取提要。

我遇到的问题是如何从 VPC 外部关闭摄取提要。我希望它仅从 Admin Dashboard Elastic Beanstalk 应用程序连接。

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

【问题讨论】:

  • 你能识别外部服务的IP地址吗?
  • 它是 GDAX wss 提要。 docs.gdax.com/#websocket-feedwss://ws-feed.gdax.com
  • 我很困惑,外部服务是否将数据推送到您的 Ingestion Feeds 服务?还是 Ingestion Feeds 服务从外部服务获取数据?
  • 外部服务是 GDAX websocket feed。因此 Ingestion Feed 与 GDAX 建立连接,然后将数据发回。
  • 我认为这应该包含在出站安全组规则中,并且不应该是一个大的安全问题。

标签: amazon-web-services amazon-ec2 websocket amazon-elastic-beanstalk aws-security-group


【解决方案1】:

这应该符合您的要求:

管理仪表板服务器:安全组 A

  • 入站规则允许在您的仪表板服务的任何端口上进行流量,可能是端口 80 和/或 443。
  • 默认出站规则

摄取源服务器:安全组 B

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

数据库服务器:安全组 C

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

注意:

来自the documentation

安全组是有状态的——如果您从您的 例如,允许该请求的响应流量流入 无论入站安全组规则如何。对允许的响应 无论出站规则如何,都允许入站流量流出。

这应该允许您的 Ingestion Feeds 服务创建与外部服务的连接并在该连接上接收响应,而无需为 Ingestion Feeds 实例分配任何入站规则。

【讨论】:

    猜你喜欢
    • 2016-10-30
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多