AWS Kinesis Firehose无法连接私有API Gateway问题咨询
问题结论
AWS Kinesis Firehose 支持 调用私有API Gateway作为HTTP目标端点,你遇到的Unable to connect to the destination endpoint报错是缺少以下必要配置导致的,逐项排查即可:
遗漏配置项
1. Kinesis Firehose VPC交付配置
Kinesis Firehose默认通过公网环境发起请求,无法直接访问VPC内部的私有API端点,必须先为Firehose开启VPC交付配置:
- 选择和API Gateway VPC端点同属一个VPC的私有子网
- 为Firehose配置独立安全组,开放出方向443端口访问权限
- 为Firehose的执行角色添加以下VPC操作权限:
ec2:DescribeVpcs、ec2:DescribeSubnets、ec2:DescribeSecurityGroups、ec2:CreateNetworkInterface、ec2:DeleteNetworkInterface
2. API Gateway VPC端点安全组配置
你为私有API创建的接口型VPC端点的安全组,必须开放入方向443端口的访问权限,来源设置为Firehose的安全组ID或者Firehose所在子网的CIDR段即可。
3. 私有API Gateway资源策略配置
私有API默认拒绝所有非白名单来源的访问,需要在API Gateway的资源策略中添加允许VPC端点访问的规则,示例配置如下:
{ "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:<替换为实际region>:<替换为实际账号ID>:<替换为实际API ID>/*/*/*", "Condition": { "StringEquals": { "aws:SourceVpce": "<替换为实际VPC端点ID>" } } }
注意:修改资源策略后必须重新部署API Gateway对应stage,配置才会生效。
4. VPC DNS配置校验
确认你的VPC已经开启两个DNS选项:
enableDnsHostnamesenableDnsSupport
未开启的情况下无法正确解析私有API的VPC端点域名。
5. API类型校验
确认你的API Gateway类型已经设置为私有,且已经关联了对应VPC端点,未关联VPC端点的私有API无法被VPC内部服务访问。
内容的提问来源于stack exchange,提问作者Mr.Pramod Anarase
相关产品推荐
相关产品推荐

