API网关和Lambda的地理限制

3
我们有一个映射到 API Gateway 的 AWS Lambda 函数。
我想在我们的 API 上启用地理限制,这是 CloudFront 中的一项功能。希望我的 Lambda 不会受到我们没有提供服务的国家的影响。
我相信 API Gateway 默认使用 CloudFront,但我没有看到任何相关的 CloudFront 分配。
想知道如何在使用 API Gateway 和 AWS Lambda 时启用地理限制。
2个回答

3

虽然API网关似乎使用了CloudFront。但是目前无法在API网关本身上配置地理位置限制。您可以使用CloudFront创建分销,将源指向API网关并启用地理位置限制。

此外,您还可以启用x-API-key以保护终端点免受来自CloudFront的API-Gateway攻击。

通过分析CloudFront-Viewer-Country标头,还有一种通过代码来控制的方法。


2
为了澄清上一条评论,CloudFront-Viewer-Country头信息会自动注入到所有API Gateway请求中,您可以在方法请求中访问它并在集成请求中进行映射,或者如果您使用代理集成,则它将自动可见。 - Michael - sqlbot
1
您需要在CloudFront中将CloudFront-Viewer-Country列入白名单,该值由AWS自动注入以供Lamba或其他应用程序使用。 - Kannaiyan
不,我指的是没有外部配置CloudFront分发(只有API Gateway拥有和控制的隐式分发)的标准API网关行为。该标头会自动出现在每个API Gateway请求中,无需进行任何配置。 - Michael - sqlbot
很高兴知道。我真的很想看到它作为一个独立的分发与CloudFront一起使用。AWS将两者整合在一起并以不同的形式提供相同的功能,这让人感到混乱。 - Kannaiyan
嗯,我猜他们看到了CloudFront基础设施中已经有多少堆栈可用,并决定在创建API Gateway时利用其中一部分...但是可以推测,在API Gateway前面的内容并不完全像直接提供给客户的那些CloudFront分发一样--但幸运的是,他们确实打开了这些自定义标头。 - Michael - sqlbot

0

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接