【问题标题】:Allow ELB connection just from instances in the same VPC, Subnet and Security Group仅允许来自同一 VPC、子网和安全组中的实例的 ELB 连接
【发布时间】:2019-10-02 01:10:27
【问题描述】:

我当前的 ELB 工作正常,但出于安全原因,我想通过仅允许同一安全组中的实例来限制连接,因此我创建了一个额外的安全组,仅用于管理 ELB,我没有问题同时我允许 0.0.0.0/0 到 443 端口,但是当我删除规则时,我失去了连接,如果我允许实例的公共 ip 它将工作,但我有几个实例,所以它不是一个选项,我还尝试允许实例的私有 CIDR (10.0.0.0/24) 但它不起作用,我还尝试允许相同的安全组但不成功

提前致谢

【问题讨论】:

  • 需要更多信息,但您似乎是从公共 IP 地址访问 ELB。
  • wget 在 ELB 网址上?如果您的 ELB 是公共的,则您的流量将通过公共 IP(如果您使用公共子网)或 NAT IP(如果您使用私有子网)路由到您的 Internet 网关。
  • @kenlukas 我正在从同一 VPC 和安全组中的实例执行 WGET,但该实例不属于 ELB 的目标组
  • @kenlukas WGET 从实例到指向 ELB url 的域,当我添加允许实例的公共 IP 的规则时;它运作良好,但我有几个实例,所以我不能手动添加一个一个

标签: amazon-web-services amazon-elb aws-security-group


【解决方案1】:

设置应该是:

  • Amazon EC2 实例上的安全组运行您的应用程序 (SG-App),允许来自适当位置的传入流量访问应用程序
  • 负载均衡器上的一个安全组 (SG-LB),允许来自SG-App 的端口 443 上的入站连接

也就是说,SG-App 允许来自与SG-App 关联的任何实例的入站连接。这比允许“来自同一安全组”的连接要好得多,因为实例需要对 ELB 进行不同的设置。

当实例解析与负载均衡器关联的 DNS 名称时,它应该解析为一个私有 IP 地址 (10.0)。您可以通过连接到其中一个实例并尝试 ping/查找 ELB DNS 名称并查看它使用的 IP 地址来对此进行测试。

【讨论】:

  • 我做得对,在图像中你会看到 sg-b6f2c3c8 是 SG-App 但 DNS 解析为 ELB 公有 IP,它没有解析为私有 IP
  • 啊!创建 ELB 时,有一个 Scheme 选项提供两种选择:“面向 Internet 的负载均衡器通过 Internet 将来自客户端的请求路由到目标。内部负载均衡器使用私有路由从客户端到目标的请求IP 地址。”我怀疑您需要重新创建 ELB 并选择 internal 以使其解析为私有 IP 地址。
  • 听起来不错,但我在我的应用程序中使用 elb.mydomain.com 传播了一个 URL,该 URL 通过具有别名记录的 Route 53 指向 ELB,因此整个更改 URL 的工作量太大应用代码,并且应用运行在443端口,所以需要https
  • 您需要启动一个新的“内部”ELB 并将其连接到相同的目标组(这意味着两个 ELB 的工作方式相同)。然后您可以编辑 Route 53 条目以指向新的 ELB。在一段时间内,流量将转移到新的 ELB。然后你可以删除旧的 ELB。它也会更便宜,因为从 VPC 到公共 IP 地址的流量按 1c/GB 收费,即使它返回到同一个 VPC 也是如此。 (“从公共或弹性 IPv4 地址“传入”和“传出”的数据在每个方向按 0.01 美元/GB 收费。”)
猜你喜欢
  • 2018-09-09
  • 2018-07-05
  • 2017-08-13
  • 2014-04-27
  • 2019-02-17
  • 1970-01-01
  • 2020-12-29
  • 2018-03-18
  • 1970-01-01
相关资源
最近更新 更多