【问题标题】:Secure Amazon S3 bucket to only allow facebook access保护 Amazon S3 存储桶以仅允许 facebook 访问
【发布时间】:2024-05-18 07:50:02
【问题描述】:

我正在利用 Facebook 的 instagram messenger API 向我们的用户发送图片。在他们的docs 中,他们指定我们需要向他们发送图片的 url。在我的情况下,该 url 指向具有图像的 S3 存储桶。 Facebook 必须有权访问资源。

我的问题是;我如何确保只有 facebook 的 api 可以访问此存储桶上的 READ?

AWS 的 iam 策略允许我将一些 ip 列入白名单,或根据 Referer 标头或 userAgent 过滤请求,但这些对我来说似乎都不可靠,因为 facebook 有广泛的 ip(经常更改)并且 referer/userAgent 可以很容易被欺骗。

每个人都如何保护他们的资源?

【问题讨论】:

  • 生成一个预签名的url!?

标签: amazon-web-services facebook amazon-s3 facebook-graph-api amazon-iam


【解决方案1】:

您的后端应用可以生成一个Amazon S3 pre-signed URL,这是一个提供对私有对象的临时访问的限时 URL。

基本上,当您想向用户(或 Facebook)提供对私人文件的访问权限时,您的应用可以生成一个在给定时间段(例如 5 分钟)内有效的预签名 URL。过了这段时间,链接就失效了。

【讨论】:

  • 就是这样。这样做,效果很好!感谢约翰的回答