配置了mTLS的AWS API Gateway如何对接Route53健康检查?
可行解决方案
以下是几个针对AWS API Gateway mTLS场景下Route53健康检查的有效方案:
方案1:Lambda代理健康检查请求
- 创建一个Lambda函数,内部携带mTLS所需的客户端证书(证书可存储在Secrets Manager或S3,Lambda通过IAM权限读取),调用目标API的
/health端点,返回对应的健康状态。 - 为Lambda配置Lambda URL(无需mTLS),或搭建一个不带mTLS的轻量API Gateway来触发该Lambda。
- 将Route53健康检查指向这个Lambda URL或轻量API Gateway的端点。
- 优点:成本低、配置灵活;缺点:需要维护Lambda代码和证书存储。
方案2:CloudWatch Synthetics Canary + Route53告警联动
- 创建CloudWatch Synthetics Canary,编写脚本(如Node.js)在请求中携带mTLS客户端证书与密钥,定期调用
/health端点并验证响应。 - 配置Canary的失败告警(当连续几次请求失败时触发)。
- 在Route53健康检查中选择「CloudWatch Alarm」类型,关联该告警,当告警触发时标记健康检查失败。
- 优点:完全基于AWS原生服务,无需额外代理;缺点:Canary有一定运行成本,需编写脚本。
方案3:独立无mTLS的健康检查自定义域名
- 在API Gateway中创建第二个自定义域名,不启用mTLS。
- 配置该域名的基础路径映射,仅指向API的
/health资源(或专门创建一个仅包含/health的健康检查API)。 - 通过WAF规则限制该域名的访问:仅允许Route53健康检查的官方IP段,拒绝其他所有流量。
- 将Route53健康检查指向这个新的自定义域名的
/health端点。 - 优点:隔离性强,主API的mTLS配置不受影响;缺点:需要额外管理一个自定义域名和WAF规则。
方案4:Network Load Balancer(NLB)作为中间层
- 创建NLB,配置TLS终止并启用mTLS(上传信任的CA证书),将目标组指向API Gateway的自定义域名端点。
- 配置NLB目标组的健康检查:在请求中携带mTLS客户端证书,确保能正常访问
/health端点。 - Route53健康检查直接指向NLB的端点,依赖NLB自身的健康状态判断后端API的可用性。
- 优点:适合复杂流量架构,可同时处理其他路由需求;缺点:配置相对复杂,NLB有额外成本。
内容的提问来源于stack exchange,提问作者leszczu450
相关产品推荐
相关产品推荐

