【问题标题】:Blocking all traffic except from ELB security groups, nginx responds with 502阻止除 ELB 安全组以外的所有流量,nginx 以 502 响应
【发布时间】:2020-09-16 12:57:25
【问题描述】:

我希望你能帮助我。 我已经成功配置了一个连接到两个 ec2 实例的 ELB。 ELB 监听 443 端口并转发到 80 端口。

一切都按预期进行。

我现在想要实现的是阻止所有到 ec2 实例的流量,除了来自 ELB 的流量。

我创建了一个新的安全组:

Accept all from sg-xxxxx

其中 sg-xxx 是 ELB 的安全组,设置为:

Accept HTTPS from 0.0.0.0/0 | 0:*

我去 ec2 实例,删除默认 SG 并分配新创建的 SG 以仅接受来自 ELB(网络,分配安全组)服务器的流量响应:

<html>

<head>
    <title>502 Bad Gateway</title>
</head>

<body>
    <center>
        <h1>502 Bad Gateway</h1>
    </center>
    <hr>
    <center>nginx/1.15.8</center>
</body>

</html>

我做错了什么?

感谢您的帮助!

【问题讨论】:

  • 0.0.0.0/10 应该是什么意思?也许您想要 0.0.0.0/0 用于您的 ELB?
  • @Marcin,错字,已编辑,谢谢
  • 您的实例是可访问的,因为它是 nginx/1.15.8 响应,而不是 ELB 的错误。因此我会看看nginx?也许您的应用停止运行?
  • 我不知道。 nginx 应该会产生一些日志。也许他们提供了一些有用的信息?
  • 冒着问显而易见的风险,如果不是新安全组的存在,而是旧安全组的不存在,这会导致问题吗?其他东西(例如外部数据库或服务器)基于它在您要删除的旧 SG 中的成员身份信任此 EC2 实例。断开它会破坏应用程序,导致错误。

标签: amazon-web-services nginx amazon-elb


【解决方案1】:

推荐的配置是:

  • 负载均衡器 (LB-SG) 上的安全组具有:
    • 入站规则:来自0.0.0.0/0 的端口 80 和 443
    • 出站规则:允许所有流量
  • 每个 Amazon EC2 实例 (App-SG) 上的安全组:
    • 入站规则:来自LB-SG的端口80
    • 出站规则:允许所有流量

也就是说,App-SG 应该通过引用另一个安全组来接受来自LB-SG 的入站流量。

建议始终允许所有出站流量,因为在您自己的实例上运行的应用程序应该是“受信任的”,除非您特别想锁定安全性。

【讨论】:

    猜你喜欢
    • 2016-11-06
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 2017-03-05
    • 2017-03-06
    相关资源
    最近更新 更多