Amazon AWS EC2 使用 public IP4 禁止访问已安装的应用程序

Amazon AWS EC2 disable access to installed application using public IP4

  1. 我创建了一个新的 amazon aws EC2 实例。
  2. 我安装了一个 apache2 网络服务器,带有 wordpress 应用程序。
  3. 我配置了我的域名,并添加了一个负载平衡器以使用亚马逊 public ssl 证书重定向到 https。
  4. 一切正常,我可以使用 https://mysiteweb.com/
  5. 访问我的网站
  6. 即使我访问我的应用程序站点 http://mysiteweb.com,重定向也会执行到 https://

问题是我仍然可以使用 EC2 public IP4 访问我的应用程序:http://XX.XXX.XXX.XX 这里没有执行重定向 ID。

与 DNS public (IP4) 的想法相同:ec2-XX-XX-XX-XX.compute-1.amazonaws.com,这里也没有重定向。

如何解决这个问题。

谢谢。

您应该将实例的安全组更新为仅允许从连接到负载均衡器的安全组在端口 80/443 上进行入站访问。

您的负载均衡器至少附加了一个安全组,如下所示

sg-123456
INBOUND RULES
| Protocol | Port  | Source    |
--------------------------------
| TCP      | 80    | 0.0.0.0/0 | 
| TCP      | 443   | 0.0.0.0/0 | 

然后您将更新实例安全组以匹配下面的示例,此处 sg-123456 是负载均衡器安全组。

sg-123457
INBOUND RULES
| Protocol | Port  | Source    |
--------------------------------
| TCP      | 80    | sg-123456 | 
| TCP      | 443   | sg-123456 | 

通过这样做,您可以防止负载均衡器以外的任何事情在您的实例上执行任何 HTTP 请求。

您可以进一步提高实例的安全性,并通过将您的实例移动到私有子网中来防止这种情况发生,这样任何人都无法公开连接到它。

另外 配置您要使用的 Web 服务器 运行 将任何不是目标主机名的主机名重定向为您期望的主机名。

这可以通过添加一个捕获任何请求的默认 VHOST 来实现,这将是您在 Apache 和 Nginx 等 Web 服务器中添加的第一个。然后添加一个额外的虚拟主机,并将 ServerAlias 设置为您预期用户登陆的域。

这样做可以防止您的负载均衡器上的抓取返回您的站点。

可以通过为您的 EC2 实例配置安全组 (SG) 来纠正该问题,应该将其配置为允许来自负载均衡器 SG 的传入连接: