如何配置ALB将流量转发至私有API Gateway?
实现ALB向私有API Gateway转发流量的方案
前提条件
- 应用负载均衡(ALB)与私有API Gateway处于同一VPC(或通过VPC对等连接、Transit Gateway打通网络)
- ALB的安全组允许出站访问API Gateway的443端口
- 私有API Gateway的VPC端点策略/资源策略允许ALB所在VPC的流量访问
具体配置步骤
1. 确认私有API Gateway的VPC端点配置
私有API Gateway仅允许VPC内部资源访问,需确保其关联正确的VPC端点:
- 进入API Gateway控制台,选中目标私有API,打开VPC Endpoints配置页
- 关联已存在的VPC端点(或新建),确保端点的子网、安全组允许ALB所在子网的流量进入
2. 创建ALB目标组
- 进入EC2控制台的目标组页面,新建目标组:
- 目标类型选择IP地址
- 协议选HTTPS,端口填443
- VPC选择与ALB、API Gateway一致的实例
- 注册目标:添加私有API Gateway对应VPC端点的私有IP(可从VPC控制台的端点详情中获取)
3. 配置ALB监听器规则
- 进入ALB的监听器配置页,选中对应域名的HTTPS(443端口)监听器
- 添加规则:
- 条件:匹配目标域名(如
Host header等于your-domain.com) - 动作:选择转发到目标组,指定刚创建的目标组
- 可选:添加路径匹配规则,将不同路径转发到API Gateway的对应资源
- 条件:匹配目标域名(如
4. 配置API Gateway资源策略(可选)
为进一步限制访问范围,可在私有API Gateway的资源策略中添加允许ALB所在VPC访问的规则:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:region:account-id:api-id/*/*/*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-xxxxxx" } } } ] }
5. 验证流量转发
- 配置域名解析:将业务域名指向ALB的DNS名称
- 向域名发送请求,检查是否能正常访问API Gateway资源
- 查看ALB访问日志和API Gateway执行日志,确认流量转发链路正常
注意事项
- 私有API Gateway的VPC端点建议启用私有DNS,也可直接使用IP地址配置目标组
- 若为公网ALB,需确保其安全组允许公网HTTPS流量(如0.0.0.0/0的443端口访问)
- ALB需配置对应业务域名的SSL证书,API Gateway私有端点默认使用AWS提供的证书,无需额外配置
内容的提问来源于stack exchange,提问作者Chuong Nguyen
相关产品推荐
相关产品推荐

