AWS CDK绑定Route53自定义域名到API Gateway返回403如何解决
AWS CDK 绑定APIGateway自定义域名403问题修复方案
核心配置错误
- RestApi实例的
domainName参数配置为根域名findtechjobs.io,和你实际要绑定的api.findtechjobs.io不匹配,导致域名映射规则失效 - 未配置自定义域名的基础路径映射,默认需要在访问路径中携带阶段名(你配置的阶段为
dev),直接访问https://api.findtechjobs.io/search无法命中对应阶段的资源,返回403
代码修改方案
修改buildAPI方法中RestApi的配置项,其余代码无需改动:
private buildAPI(certificate: acm.Certificate) { const api = new apigateway.RestApi(this, "techjobapi", { domainName: { // 修正为实际要绑定的子域名 domainName: 'api.findtechjobs.io', certificate: certificate, // 配置基础路径为空,访问时无需携带阶段名 basePath: '' }, defaultCorsPreflightOptions: { allowOrigins: apigateway.Cors.ALL_ORIGINS, // 生产环境建议限制允许的来源 }, deploy: true, deployOptions: { stageName: 'dev', }, endpointTypes: [apigateway.EndpointType.REGIONAL] }); // 后续原有逻辑保持不变 }
验证步骤
- 重新部署CDK堆栈,等待自定义域名配置生效(通常需要1-2分钟)
- 先调用API Gateway原生默认域名验证接口可用性:
https://<你的API_ID>.execute-api.<区域>.amazonaws.com/dev/search,确认返回正常 - 再测试自定义域名
https://api.findtechjobs.io/search的访问情况
可选检查项
- 确认你使用的REGIONAL类型端点对应的ACM证书和API Gateway在同一AWS区域
- 用DNS解析工具验证
api.findtechjobs.io的A记录已正确指向API Gateway自定义域名的IP地址
内容的提问来源于stack exchange,提问作者Alex Fallenstedt
相关产品推荐
相关产品推荐

