限制 Lambda 函数 URL 访问 CloudFront

Mic*_*ael 7 amazon-web-services amazon-cloudfront amazon-iam aws-lambda

AWS 最近发布了 Lambda 函数 URL 功能,该功能允许通过 URL 调用函数。

我希望允许通过 URL 但只能通过 CloudFront 调用我的函数。

我不希望人们能够绕过 CloudFront 并直接调用该函数。

有没有办法配置这个?我知道我可以通过将身份验证类型设置为来限制函数 URL AWS_IAM,但不清楚如何允许 CloudFront 调用它。

man*_*ana 5

目前,我看到的唯一选项与您如何通过限制访问 CloudFront 的方式保护 ALB非常相似:

  1. 配置 CloudFront 以将自定义 HTTP 标头添加到发送到Application Load Balancer lambda 函数 URL的请求。

  2. 将Application Load Balancer Lambda配置为仅转发 包含自定义 HTTP 标头的进程请求。

我对使用 lambda 函数 URL 时可能不起作用的方法的看法:

  • IAMauth(因为我看不到如何签署这些源自 CloudFront 的请求,也许将来当 lambda 函数 URL 成为像 S3-origins 这样的一等公民时,情况会发生变化)
  • 通过安全组限制访问(因为 lambda func URL 没有 SG)


小智 -3

这是我为了让它在我这边发挥作用所做的事情:

  1. 进入CloudFront页面

  2. 单击创建新发行版

  3. 在“原始域”部分中,您必须粘贴 lambda 函数 URL

    源域设置

  4. 确保根据您的 lambda 函数消耗的内容调整缓存策略

    缓存策略

您可能想要创建一个专用策略,希望缓存键依赖于查询字符串、cookie等...对于我的用例,我创建了一个新策略来考虑查询字符串

  • 这是有关如何使用 lambda 函数 URL 作为 CloudFront 源的说明;但这并不是如何限制 CloudFront 对此函数 URL 的访问这一问题的答案。 (9认同)