You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS负载均衡器对接EC2实例防火墙规则配置最佳实践咨询

配置方案与最佳实践

解决负载均衡IP动态变动的流量放行问题

你当前手动同步负载均衡网络接口私有IP配置防火墙的方式完全不可持续,ALB/NLB的网络接口IP会随着负载扩缩容、可用区故障自动调整,没有静态IP的承诺。推荐优先用以下两种方案:

  • 如果用AWS原生安全组做访问控制(优先推荐,比EC2内部的系统防火墙更易维护):直接配置后端EC2安全组的入站规则,源地址填负载均衡关联的安全组ID,开放对应的80/443端口即可。安全组ID是固定值,不需要跟随IP变动调整。
  • 如果必须使用EC2内部的系统级防火墙(iptables/firewalld/ufw等):可以调用AWS API拉取当前区域ALB的前缀列表(Prefix List)com.amazonaws.<你的区域>.alb的IP段,写定时脚本自动更新本地防火墙规则,不需要手动维护IP。

注意:前缀列表的ID在同一区域是固定值,也可以直接将前缀列表作为源配置到安全组规则中,不需要手动维护IP段。

仅放行通过Cognito认证的请求

要实现这一点,建议做两层校验,完全避免未认证请求到达后端服务:

  • 第一层(负载均衡层拦截):在ALB的监听器规则中配置AuthenticateCognito动作,关联你用的Cognito用户池。未通过认证的请求会被ALB直接拦截返回重定向到登录页,不会转发到后端EC2,从源头过滤大部分未认证流量。
  • 第二层(后端服务校验):在Apache服务中增加校验逻辑,验证ALB转发请求携带的x-amzn-oidc-data请求头是否存在,以及头中的JWT令牌是否是Cognito签发的有效令牌。哪怕出现安全组配置错误、恶意请求绕过ALB的情况,也会被后端直接拦截。

Apache的简单配置示例如下:

<VirtualHost *:80>
    ServerName yourapp.example.com
    RewriteEngine On
    # 无Cognito签发的OIDC头直接返回403
    RewriteCond %{HTTP:x-amzn-oidc-data} ^$
    RewriteRule ^ - [F,L]
    
    # 其他原有Apache配置
    DocumentRoot /var/www/yourapp
    <Directory /var/www/yourapp>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

如果需要更高安全等级,可以安装mod_auth_openidc模块,直接对接Cognito做JWT签名校验,避免令牌被篡改。

额外优化建议

  • 非必要不使用EC2内部系统防火墙,优先用AWS安全组+网络ACL做访问控制,和AWS云服务原生集成,维护成本更低,规则变更实时生效。
  • ALB侧开启HTTPS监听,ALB到后端EC2的内部通信也建议启用HTTPS,避免请求头在传输过程中被篡改。

内容的提问来源于stack exchange,提问作者Yogesh Chawla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 21:06:03