AWS Load Balancer 到 EC2 实例防火墙规则

AWS Load Balancer to EC2 instance firewall rules

我有一个位于两个可用区的 AWS EC2 负载均衡器。我正在使用负载均衡器在 ec2 实例上前置 apache 服务器,并且正在使用 Cognito 对应用程序进行身份验证。

目前,我已经确定了负载均衡器网络接口的私有 IP 地址,并在我的后端 ec2 实例上创建了防火墙规则,只允许来自负载均衡器私有 IP 地址的流量。然而,这些私有 IP 地址在不断变化。

在我的后端 ec2 实例上设置防火墙规则以仅允许基本上由负载均衡器代理然后由 Cognito 验证的 HTTP 请求的最佳做法是什么?

我不太清楚你是否了解安全组,因为在 AWS 中,安全组被认为是有状态的防火墙。

您不希望直接引用负载均衡器的 IP 地址(我假设您使用的是 Application Load Balancer),因为这可能会改变。解决方案是将一个安全组分配给负载均衡器,另一个安全组分配给 EC2 实例 运行 应用程序。来自 EC2 实例的安全组可以允许来自连接到负载均衡器的安全组的端口 80 上的流量。

引用应用负载均衡器安全组的实例安全组指定入站规则示例:

由于您使用的是 Cognito,因此身份验证应该在负载均衡器之前进行,如 docs 中所述。本质上,您的客户从 Cognito 请求一个令牌,该令牌可用于在您的应用程序中对他们进行身份验证。您可以使用 NAT 或接口端点允许从 VPC/EC2 实例到 Cognito 的传出流量。