AWS 负载均衡器到 EC2 实例防火墙规则
Posted
技术标签:
【中文标题】AWS 负载均衡器到 EC2 实例防火墙规则【英文标题】:AWS Load Balancer to EC2 instance firewall rules 【发布时间】:2021-12-05 18:05:25 【问题描述】:我有一个位于两个可用区的 AWS EC2 负载均衡器。我正在使用负载均衡器在 ec2 实例上前置 apache 服务器,并且正在使用 Cognito 对应用程序进行身份验证。
目前,我已经确定了负载均衡器网络接口的私有 IP 地址,并在我的后端 ec2 实例上创建了防火墙规则,以仅允许来自负载均衡器私有 IP 地址的流量。然而,这些私有 IP 地址在不断变化。
在我的后端 ec2 实例上设置防火墙规则以仅允许基本上由负载均衡器代理然后由 Cognito 进行身份验证的 HTTP 请求的最佳做法是什么?
【问题讨论】:
【参考方案1】:我不清楚防火墙是否理解安全组,因为在 AWS 中,安全组被认为是有状态的防火墙。
您不希望直接引用负载均衡器的 IP 地址(我假设您使用的是 Application Load Balancer),因为这可能会改变。解决方案是将一个安全组分配给负载均衡器,另一个分配给运行应用程序的 EC2 实例。 EC2 实例的安全组可以允许来自连接到负载均衡器的安全组的端口 80 上的流量。
为引用应用负载均衡器安全组的实例的安全组指定入站规则示例:
由于您使用的是 Cognito,因此应在负载均衡器之前进行身份验证,如 docs 中所述。本质上,您的客户从 Cognito 请求一个令牌,该令牌可用于在您的应用程序中对他们进行身份验证。您可以使用 NAT 或接口端点允许从您的 VPC/EC2 实例到 Cognito 的传出流量。
【讨论】:
Cognito 身份验证在负载均衡器前按预期工作。我试图了解如何做到这一点:“EC2 实例的安全组可以允许来自连接到负载均衡器的安全组的端口 80 上的流量。”负载均衡器允许来自所有 IP 的端口 443 上的所有流量:0.0.0.0/0。在托管应用程序的 EC2 实例上,我看不到如何指定专门允许来自负载均衡器安全组的流量的入站规则。关于那件作品的任何提示? 我添加了一个关于如何创建引用另一个 SG 的 SG 的屏幕截图。您可以看到我们可以在下拉列表中选择除了 IP 地址之外的其他内容。我不知道这还能怎么解释。以上是关于AWS 负载均衡器到 EC2 实例防火墙规则的主要内容,如果未能解决你的问题,请参考以下文章